Files
felhom.eu/documentation/audits/update-night-2026-09-21/08-capacity.txt
T
admin da20722e76
gates / gates (push) Successful in 27s
Update night 2026-09-21: Phase 0 and Phase 1 evidence, the drill method, and two instrument fixes
INTERIM CHECKPOINT — evidence off the machine at the end of the phase that produced it (R-320),
not at the end of the session. Phases 2-5 follow in a later commit.

Phase 0, all three mechanisms proven with their controls:
- the fleet floor to 0.261.0 with its declared MinAgent — both demo boxes in 13 s, the hub
  logging `managed floor SERVED ... from declared (golden 0.258.0)`.
- a PRIVATE DRILL CATALOG (admin/app-catalog-drill), so that broken, dummy, cross-repo and
  engine-major edges can be measured without the live catalog ever carrying one. Positive
  control quoted, and two negative controls: the live catalog's main and both real boxes'
  caches unchanged.
- a throwaway image store on the scratch guest, which is what makes an UNATTENDED HOLD
  measurable at all: an edge that PASSES the within-a-major test and still fails.
  CompareImageRefs was proven to order host:port/ references by RUNNING it (4 positive cases
  + 1 negative control), not by reading it.

Phase 1: real within-a-major upstream edges walked on guest 9202 through the product's own
guarded Update, each app seeded and read back through its OWN front door (R-156), with a
per-edge verdict record in 09's shape. `inconclusive` is never collapsed into `failed`.

TWO INSTRUMENT FIXES, both in this repo's own evidence code:
- 00-api-recipe.md said the app page is /app/<n>; it is /apps/<n>, and every call it described
  404s. Corrected, with the session-expiry note that cost the same time.
- unattended-caller.py's follow() read update_phase/updating off the API ENVELOPE, so both were
  always None and EVERY followed update ran to its 900 s timeout and was then recorded
  `timeout` and never-press-again. Fixed before B1 relied on it. R-623.

No controller, agent or hub code was written. The live catalog carries no broken reference.

Gates: repo_gates.py --fast — all 15 OK, exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-21 21:17:46 +02:00

45 lines
2.1 KiB
Plaintext

=== CAPACITY 2026-09-21T20:12:53+02:00
--- demo-hp host
total used free shared buff/cache available
Mem: 29 4 6 0 18 24
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/pve-root 39G 32G 5.4G 86% /
Name Type Status Total (KiB) Used (KiB) Available (KiB) %
felhom-pbs pbs active 0 0 0 0.00%
local dir active 40453376 32791380 5574880 81.06%
local-lvm lvmthin active 56487936 27018179 29469756 47.83%
nvme-scratch dir active 983379700 19190616 914162472 1.95%
VMID Status Lock Name
9201 running demo-hp
9202 running demo-hp-scratch
--- guest 9202
total used free shared buff/cache available
Mem: 25898 408 22139 8 3358 25489
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 32G 1.9G 28G 7% /
/dev/loop0 32G 1.9G 28G 7% /mnt
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 26 7 9.033GB 5.53GB (61%)
Containers 7 7 53.11MB 0B (0%)
Local Volumes 8 8 16.02MB 0B (0%)
Build Cache 0 0 0B 0B
--- where 9202's disks live
cores: 7
memory: 25898
mp0: nvme-scratch:9202/vm-9202-disk-1.raw,mp=/var/lib/felhom,backup=1,size=70G
mp8: /mnt/hdd_1/scratch-drives/scratch_hdd,mp=/mnt/felhom-drives/scratch_hdd
mp9: /var/lib/felhom-agent/guests/9202/bootstrap,mp=/etc/felhom-bootstrap,ro=1
rootfs: nvme-scratch:9202/vm-9202-disk-0.raw,size=32G
--- 9202 docker data root + free space
/var/lib/docker
Filesystem Size Used Avail Use% Mounted on
/dev/loop1 69G 9.3G 56G 15% /var/lib/felhom
/dev/nvme0n1 938G 19G 872G 3% /mnt/felhom-drives/scratch_hdd