Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -1,17 +1,18 @@
|
||||
# REPORT — controller v0.294.0 (2026-10-05): the night's fixes
|
||||
# REPORT — controller v0.295.0 (2026-10-05, afternoon): a box that is not always on
|
||||
|
||||
Brief: the 2026-10-05 night-fixes brief (operator), Parts A, B, D. Full session report:
|
||||
`felhom.eu/REPORT-night-fixes-2026-10-05.md`. Architecture read: `07-backup-architecture.md` (§6.1, the Tier-3 row),
|
||||
`audits/offsite-append-only-2026-10-03/DESIGN.md`, `09` §3 decisions 53 and 68–74.
|
||||
Brief: the 2026-10-05 catch-up brief (operator), Parts A and B. Full session report: `felhom.eu/REPORT-catchup-2026-10-05.md`.
|
||||
Architecture: `felhom.eu/documentation/architecture/07-backup-architecture.md` §6.1.1 (new), `09` decisions 109–110, 112–114.
|
||||
|
||||
| Row | Fix | Proof |
|
||||
|---|---|---|
|
||||
| R-867 | the off-site guard's "young" line = keep-daily CALENDAR days, from the policy's own constants | restic 0.14.0's policy simulated in tests, proven identical to the binary over 92 snapshots; 5 red-proofs; live windows on demo-felhom (16 → 14) and demo-hp (145 → 127) — exactly the predicted snapshots |
|
||||
| R-863 | no image clean-up while any compose command can pull (`dockerexec.BeginImageWork` / `TryImageCleanup`); the one-time pass retried every 2 min, its marker only after a pass that ran | the night's shape in a test (2 red-proofs); live on 9202: the clean-up met BookStack's install at minute 3, skipped, install OK first time; retry 2 min later ran |
|
||||
| R-864 | failed compose logs the TAIL of stderr (`tailStr`) | the night's first stderr line in a test; red-proof |
|
||||
| R-869 | move-aside log line names the destination | test; red-proof |
|
||||
| What | Proof |
|
||||
|---|---|
|
||||
| `internal/nightchain`: the night ledger + ONE catch-up 15 min after a start or a host resume, backup legs only (R-871) | 9 tests + 9 red-proofs; live on 9202 (twice) and demo-felhom |
|
||||
| `scheduler.DailyLateLimit`: a daily timer firing > 60 min late is skipped | test + red-proof |
|
||||
| the whole-guest cycle waits for a running catch-up (`quiesce.SetCatchUpFn`) and the catch-up waits for a quiesce | test + red-proof |
|
||||
| wiring (`catchUpLegs`, start + resume triggers, no update leg) | 2 tests + 2 red-proofs (one test strengthened after its first red-proof did not convict) |
|
||||
| the missed-backup banner (decision 110): rule, page, durable dismissal | 8 rule tests + 2 page tests; 7 red-proofs; served live on 9202 |
|
||||
| the household's timeline line `backup_catchup_done` | live: reached the hub from demo-felhom, no mail |
|
||||
|
||||
Delivered: image `gitea.dooplex.hu/admin/felhom-controller:0.294.0` (commit 7861bf9); floor 0.294.0 with MinAgent 0.131.0
|
||||
for customers demo-hp, demo-felhom, tester-1 (running on both demo boxes within ~2 min); 9202 set by hand (scratch);
|
||||
global floor unchanged (Tester 2 not moved). Golden 0.294.0 baked and vouched. Tests: `go test ./...` rc 0,
|
||||
`controller_gates.py --fast` all OK. Red-proofs: `felhom.eu/documentation/audits/night-fixes-2026-10-05/part{A,B,D}/`.
|
||||
Delivered: image `felhom-controller:0.295.0` (commit 635c33d); floor 0.295.0 (MinAgent 0.131.0) for demo-hp, demo-felhom,
|
||||
tester-1 — all three run it; 9202 by hand. Golden 0.295.0 baked + vouched. `go test ./...` rc 0; `controller_gates.py`
|
||||
OK (after registering six new Go-side keys as "born as a key"). Red-proofs: `felhom.eu/documentation/audits/
|
||||
catchup-2026-10-05/part{A,B}/red-proofs.txt`. Found: R-878 (P4, a daytime catch-up stops a volume app ~1 s for its dump).
|
||||
|
||||
Reference in New Issue
Block a user