Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
1.7 KiB
REPORT — controller v0.271.0: automatic app updates (night 2026-09-25)
What shipped: 09 §6.4 part 7 — the automatic update leg (stacks/unattended.go), chained after the off-site
leg in the offbox-backup job on every path (chainUpdateLeg); the full-system gate waits for it until W+5h
(quiesce.Options.UpdateLegFn, decisions 20 + 31); the per-box switch app_update.unattended (absent = ON) with a
card on /settings; R-680 (failed_update_step), R-678 (fresh steps-left at done); the page line last_auto_update;
the report's update_leg; the self-update waits for the whole leg (decision 32); stacks.update_window removed.
Commit 9cf13a3, image gitea.dooplex.hu/admin/felhom-controller:0.271.0, floor 0.271.0 (MinAgent 0.131.0), CI job
974 success.
Red-proofs: 11, each seen failing under its mutation and the tree restored — felhom.eu/documentation/audits/ night-2026-09-25/B/redproofs/SUMMARY.txt.
Live: six simulated nights on 9202 (one step per app, a failing step undone and not re-pressed until re-tested,
needs_person skipped, files_may_change with a whole copy taken, a kill during a step put back, a power cut
during a verify resumed and finished, switch off = nothing pressed; data read back after every night). The demo
boxes' first real night: demo-felhom opengist 1.13 → 1.15 done in 20 s; demo-hp nothing to do; both summaries in the
hub. Record: felhom.eu/documentation/audits/DRILL-night-2026-09-25.md.
Open: R-686 (the leg is not resumed after a restart), R-687 (live-proof gaps: W+5h live, a failing off-site leg
live, files_may_change without a copy live, the gate's wait live; "steps": null for an empty leg), R-685's page
half, R-671 / R-670 / R-677 (not started — each needs a release).