2.4 KiB
REPORT — controller v0.335.0 (2026-10-19 evening/night brief, Part 1 + Part 9)
What changed
R-921 — no app stop for an off-site (or any whole-guest) tier the agent will refuse because its host is busy.
Before any app is stopped the quiesce loop reads the agent's new host_busy answer on GET /backup/status
(felhom-agent, Unreleased 56aabc7, operator answer „add one field" 2026-10-19). Held → no app stopped, no backup
asked, each due tier recorded as contention (skip 15 min, one „BLOCKED" alarm after 3 h). Free, an older agent, or a
failed read → the old order (stop, ask, resume at once on 409). The window's own tier in flight attaches as before.
The race (free at the read, busy at the start) keeps the old behaviour: one short stop, resumed at once.
Tests (red-proved)
TestR921_NoStopWhileTheHostIsBusy— without the branch: 3 apps stopped, the start refused.TestR921_HostBusySkipsStillAlarmAfterTheCeiling— a gate that never lets go still alarms once.TestR921_HostBusyOtherAnswersKeepTheOldOrder— free / older agent / failed read / own tier in flight.TestHostBusy_ReadsTheAgentsGate— the wire shape; no field = „not known", never „free".
Release (decision 250)
0.335.0-rc.1on demo-hp 9201 by hand (18:08 UTC): healthy, 0[ERROR]. The live agent'sGET /backup/statuscarries nohost_busy(read inside 9201) — so until the agent release every box keeps the old order.0.335.0imagesha256:262831f97cec39ecc3fad9bd198de5cb4ee59fc398cdf828604df5de84d4daae(from15ea002).- Per-box floors 18:22:21 UTC; all three moved by 18:37:36 UTC (demo-hp from rc.1).
- Box walk 18:38–18:39 UTC: 0 unhealthy, 0 allow-list refusals, catalog in sync on all three; https-only 28 OK, 0 FAIL; „Fájlok ↗" with no second sign-in on demo-hp and Tester 1.
- Global floor 0.335.0 / MinAgent 0.158.1 at 18:39:26 UTC, read back from hub.db + WAL; per-box floors cleared.
- Evidence:
felhom.eu/documentation/audits/night-2026-10-19/P9/. - i18n: no page changed, no fixture changed.
Also tonight (tooling, no release): the security-scan gate (R-986)
controller_gates.py registers the shared felhom.eu/scripts/security_scan_gate.py (fast set: hook and CI),
warn-first; .security-accepted holds the first scan's 4 accepted hits (test constants, decoy values); decoys in
controller/scripts/test_gate_decoys.py (55 cases OK). Commit a03c25a, CI 2109 success.