G2/G4/G5/G6/G7 -> LIVE-VALIDATED; G1 -> DONE (armed-key round-trip proven, manifest bump confirmed); G9 -> deferred to GL-7; G10 -> GL-7 prereq. Findings F1/F2/F3/F6/F7 filed for a v1.11.4 installer follow-up (none block Peti). REPORT.md = the GL-6 drill. Next: GL-7. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
3.9 KiB
felhom.eu — task reports
Overwrite this file with a summary of the most recent task only (uniform with the other repos; not cumulative). The cumulative hub history lives in hub/CHANGELOG.md; the scripts history lives in scripts/CHANGELOG.md.
RUNBOOK GL-6 — supervised go-live drill (demo box, two full cycles) — 2026-07-08
Full per-phase record: documentation/pilot/DRILL-GL6-2026-07-08.md. Supervised, Viktor gating
every phase; destructive (guest 9201 destroyed + rebuilt twice on felhom-pve). Go-live item G7
and the live-validation landing zone for GL-1…GL-5b. Ended with the demo healthy on normal life.
Baselines: felhom.eu bd97bc34 → 87ba30ae (host-install v1.11.1 → v1.11.3 — two
fixes shipped mid-drill). felhom-agent 7f073936 (v0.76.0). Manifest confirmed vouching agent
0.76.0 + golden 0.103.0.
Result: DRILL COMPLETE — all gates GO
- Key-pin chain (GL-1's whole point) — legs 1–4 all green: box==repo==password-manager
fingerprints; signers ARMED from first boot (byo + appliance); the pinned operational key
authorized a real signed
agent_updateround-trip 0.76.0→0.76.1→0.76.0 (verify vs pinnedfelhom-op-1+ nonce, A/B swap, dwell, commit, crash-guard silent), throwaway 0.76.1 deleted. - Two full destroy/rebuild cycles + two clean uninstalls. Uninstall: busy-drive prop handled
(warn+guidance, never
-l/-f, statement=retry), KEPT/WIPED statement verbatim, host audit clean, drive data intact on all three checks (witness hash matched). byo (Phase 2) + appliance (Phase 6) installs both green; appliance's 4b vaulted the root@pam recovery credential to the hub. - C7 live-validated: an induced pool-membership drop made
step_verifylog_error+ WITH-WARNINGS (read-only); repaired via--adopt-pool→ green. - Drive re-enrollment via the real UI (Chrome bridge) — additive, pre-drill data reappeared;
restore-test
mount_parity: okon both PBS (5m35s) and local tiers.
Two fixes shipped mid-drill
- host-install v1.11.2 (Gate-0 ruling, G3): empty customer git creds → anonymous artifact
fetch (the Felhom artifacts are world-readable by operator ruling; the hub-vouched sha256 stays
the integrity root). All 12 installer fetch targets 200-anon-verified first. Harness
+GL6-ANON. - host-install v1.11.3 (finding F4, HIGH — Viktor HOLD):
--resumefully skipped completed producer steps (should_skip X || step_X), but token/enroll/grows produce in-memory outputs later steps consume → a resumed install wrote a config missinghub.host_id/proxmox.token(daemon crash-loop) and passed-rootfs-grow ""(flag parse error). Fix: those three re-run every pass (idempotent); golden's volid re-derived from local. Live-proven (crafted dry-resume + the subsequent appliance install ran single-shot). Harness+GL6-F4; 27/27; shellcheck clean.
Findings filed (small installer follow-up, none block Peti)
F1 config .bak residue on uninstall · F2 per-drive mnt-*.mount residue · F3 byo fresh install on
a populated host needs --allow-new-leaf (guard counts any guest) · F6 leftover broken dnsmasq
breaks LAN-client DNS on a byo host · F7 pool re-assert is bring-up-only (no continuous heal;
--adopt-pool repairs). (F5 was a self-corrected misdiagnosis — the public DNS wildcard works.)
Deferred to GL-7 (with Peti)
Dashboard password (operator-set via hub — G9) + geo-restriction; G10 (public dashboard is open until the operator sets a password) is a GL-7 prerequisite. Full demo app redeploy + LAN-DNS alignment (re-provision changed the guest DHCP IP) are Viktor's return-to-normal.
Honest leftovers (unchanged)
S5 customer-data DR drill; G12 parity-on-real-drift + PBS-tier runtime; CGNAT retest; Impl-3; OOB spike. Next: GL-7 (Peti's day-0 runbook + tester agreement).