### RED-PROOF scheduler late-fire guard dropped
    scheduler_test.go:128: a 6-hour-late fire ran the job (the app-update leg would start at noon)
--- FAIL: TestDaily_LateFireIsSkipped (0.00s)
    --- PASS: TestDaily_LateFireIsSkipped/on_time (0.00s)
    --- FAIL: TestDaily_LateFireIsSkipped/after_a_suspend (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/scheduler	0.004s
FAIL
### restored
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/scheduler	0.456s
### RED-PROOF 1 Missed returns nothing (the old behaviour: no catch-up)
    nightchain_test.go:99: no catch-up was scheduled for a box off across W (missed [])
--- FAIL: TestCatchUp_OffAtWThenOn_OneCatchUpAfter15Min (0.00s)
    nightchain_test.go:135: the catch-up never finished
--- FAIL: TestCatchUp_TwoMissedNights_One (3.00s)
    nightchain_test.go:151: the catch-up never finished
--- FAIL: TestCatchUp_PowerCutMidChain_FinishesTheRest (3.00s)
    nightchain_test.go:178: missed [], want tier2 + offsite of the night of the 4th
--- FAIL: TestCatchUp_LegAboutToRun_LeftToNormal (0.00s)
    nightchain_test.go:189: the catch-up never finished
--- FAIL: TestCatchUp_NeverRunsAnythingButBackupLegs (3.00s)
    nightchain_test.go:206: the catch-up never finished
--- FAIL: TestCatchUp_WaitsForAWholeGuestBackup (3.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	12.015s
FAIL
### RED-PROOF 2 a leg that ran is not checked (Ended ignored)
    nightchain_test.go:121: a normal night was made up again: [db-dump tier2 offsite]
--- FAIL: TestCatchUp_NightRan_DaytimeRestart_None (0.00s)
    nightchain_test.go:140: after the catch-up nothing is missed any more, got [db-dump tier2 offsite]
--- FAIL: TestCatchUp_TwoMissedNights_One (0.00s)
    nightchain_test.go:153: ran [db-dump tier2 offsite], want only tier2 + offsite
--- FAIL: TestCatchUp_PowerCutMidChain_FinishesTheRest (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	0.009s
FAIL
### RED-PROOF 3 the 15-minute delay dropped
    nightchain_test.go:103: the catch-up must wait 15m0s first, slept []
--- FAIL: TestCatchUp_OffAtWThenOn_OneCatchUpAfter15Min (0.00s)
    nightchain_test.go:208: slept [1m0s 1m0s 1m0s] — want the 15 min delay then 3 one-minute waits for the quiesce
--- FAIL: TestCatchUp_WaitsForAWholeGuestBackup (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	0.008s
FAIL
### RED-PROOF 4 a pending catch-up does not block a second one
    nightchain_test.go:133: a second catch-up was scheduled while one was pending: [db-dump tier2 offsite]
--- FAIL: TestCatchUp_TwoMissedNights_One (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	0.009s
FAIL
### RED-PROOF 5 the quiesce wait dropped
    nightchain_test.go:208: slept [15m0s] — want the 15 min delay then 3 one-minute waits for the quiesce
--- FAIL: TestCatchUp_WaitsForAWholeGuestBackup (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	0.009s
FAIL
### RED-PROOF 6 the leave-to-normal rule dropped
    nightchain_test.go:174: the dump due in 20 minutes was put in the catch-up: [db-dump tier2 offsite]
--- FAIL: TestCatchUp_LegAboutToRun_LeftToNormal (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	0.009s
FAIL
### RED-PROOF 8 a fresh ledger counts history as missed
    nightchain_test.go:161: a freshly seeded ledger made up [db-dump tier2 offsite]
--- FAIL: TestCatchUp_FreshLedger_None (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	0.007s
FAIL
### restored
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	0.008s
### RED-PROOF 7 the resume watch compares wall with wall (compiles)
    nightchain_test.go:241: a 7-hour suspend was not seen
--- FAIL: TestResumeWatch_SeesASuspend (2.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	2.010s
FAIL
### RED-PROOF 9 the catch-up runs whatever Legs holds (not only the missed chain legs)
    nightchain_test.go:153: ran [db-dump tier2 offsite], want only tier2 + offsite
--- FAIL: TestCatchUp_PowerCutMidChain_FinishesTheRest (0.00s)
    nightchain_test.go:191: an app update ran inside a catch-up
--- FAIL: TestCatchUp_NeverRunsAnythingButBackupLegs (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	0.008s
FAIL
### restored
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	0.009s
### RED-PROOF 10 the whole-guest cycle does not wait for a running catch-up
    r871_catchup_test.go:21: the backup started while a catch-up ran: start=1 stopped=[nextcloud]
--- FAIL: TestR871_ScheduledCycleWaitsForCatchUp (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/quiesce	0.005s
FAIL
### restored
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/quiesce	0.005s
### RED-PROOF 12 the update leg inside the shared off-site body
--- PASS: TestR871_CatchUpWiring (0.01s)
    r871_catchup_wiring_test.go:44: the update leg is inside the off-site body the catch-up runs
--- FAIL: TestR871_CatchUpRunsNoUpdateLeg (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/cmd/controller	0.019s
FAIL
### restored
ok  	gitea.dooplex.hu/admin/felhom-controller/cmd/controller	0.019s
### RED-PROOF 11 the start trigger not wired (test now keyed on the argument)
    r871_catchup_wiring_test.go:37: the catch-up's START trigger (Evaluate(ctx, "controller start")) is called 0 times, want 1
--- FAIL: TestR871_CatchUpWiring (0.02s)
--- PASS: TestR871_CatchUpRunsNoUpdateLeg (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/cmd/controller	0.031s
FAIL
### restored
ok  	gitea.dooplex.hu/admin/felhom-controller/cmd/controller	0.026s
### RED-PROOF hub: backup_catchup_done not allowed
    r871_catchup_event_test.go:10: backup_catchup_done is not an allowed event type — the box's catch-up line would be dropped with a 400
--- FAIL: TestR871_CatchUpEventIsAllowed (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-hub/internal/api	0.020s
FAIL
### restored
ok  	gitea.dooplex.hu/admin/felhom-hub/internal/api	0.019s
