Files
felhom-controller/REPORT.md
T
2026-06-15 20:42:05 +02:00

2.6 KiB
Raw Blame History

REPORT — storage lifecycle completion + acceptance sweep (controller half) → v0.68.1 (2026-06-15)

Type

Finished the storage lifecycle on the intermediary-mount model + drove a full live acceptance sweep (incl. a real host reboot). Built + Linux-gated + deployed to guest 9201 per commit. Pairs with agent v0.36.7. Full audit: felhom.eu/documentation/audits/storage-lifecycle-acceptance-2026-06-15.md.

What changed (controller)

  • v0.68.0 — H2/H3/M1/M3 + deterministic boot-id:
    • Boot-id determinism (processGuestBootChange + settings.LastGuestBootID): the agent reports guest_boot_id; on change the controller recreates drive-backed apps deterministically (replaces the fragile container-uptime sample, which missed apps stopped at the sample instant).
    • H2 decommission UI button (migrate / decommission-anyway type-to-confirm); H3 one-click re-enroll of a decommissioned drive (handleStorageReconnect decommissioned branch); M1 defaultPromotionTarget (auto-promote on decommission-of-default, BLOCK if it's the only drive); M3 migrate merge-walk re-asserts 2775 setgid on userdata dirs (isUserdataDir).
    • Fixed the H1 {path}/{where} JS body mismatch.
  • v0.68.1 — boot-id recreate ALL deployed drive-backed present apps state-independent (v0.68.0 filtered on container state and missed 5 apps docker hadn't auto-restarted yet — caught in the live host-reboot test).

Non-hollow tests + companions: TestShouldRecreateOnBoot (old sample missed a stale/stopped app), TestDefaultPromotionTarget, TestIsUserdataDir.

Acceptance sweep (live) — per-item PASS in the audit doc

HOST REBOOT ( ordering + auto-start + convergence, no manual intervention), guest reboot ×3, drive-yank fail-close (no leak), capability-proof fail-close, confinement, controller redeploy (rslave explicit), two-drive isolation, H2 decommission, H3 re-enroll (after the agent v0.36.1 raw-stays-mounted fix), M1 default reassignment, rapid eject/reconnect (single bind after the agent double-bind root-cause fix). E14/E15 migrate-all not re-run live (M3 unit-tested + 2775 convention verified live).

End state

Both external drives registered at /mnt/felhom-drives/<name>, felhom-flash default, 25 containers healthy. controller v0.68.1 deployed (golden/bootstrap image tag mechanism).

Known residuals

  • Boot-id first-sight bounce (fresh controller recreates apps once on first start — one-time per data-volume lifetime).
  • E14/E15 full migrate-all round-trip not re-run live (data-merge risk; M3 unit-tested).