CHANGELOG: R-444 hub half (unreleased), R-502 full-run gate
gates / gates (push) Successful in 2m41s

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:
2026-10-06 11:31:12 +02:00
parent a411cde7c4
commit f5400268a7
2 changed files with 5 additions and 0 deletions
+1
View File
@@ -1,5 +1,6 @@
## unreleased
- hub: R-444 — the System page shows each box's 'Last disk trim' (from the agent's guest_disk_trim stanza): last successful trim and the GiB freed; amber when the newest attempt failed (its error shown) or the last success is older than 14 days; '—' when the agent sends none. wire_contract_gate checks guest_disk_trim field by field both ways against hub sysfacts.DiskTrim (SUBTREE_MIRRORS), with decoys (decision 139).
- **Fixed without a row (R-872 night watch):** the 05:00 deadline check's down-box judgement returned early in silence for a box never bound or first seen under 48 h ago, so the log read only „1 skipped (down)" and a night watch could not tell „too young to judge" from „judged, nothing missed". Each early return now logs why. `TestR872_DownButTooYoungIsLogged`; red-proved (without the line: the test fails).
## v0.138.0 — secrets sealed at rest, a cookie no sibling can plant, the box's own claim state, agent-binary drift (burn-down night: R-879, R-136, R-283, R-349, R-276) (2026-10-05)
+4
View File
@@ -1,3 +1,7 @@
## gates — the ISO first-boot test is a gate, full runs only (R-502, `09` §3 decision 147) (2026-10-06)
- scripts: R-502 — new gate `iso-bootstrap` (scripts/iso_bootstrap_gate.py) runs the ISO first-boot harness in felhom-iso-assistant:trixie on FULL runs only (fast=False: never the pre-push hook, never CI); no docker/no image/docker error = exit 2 'not checked', never a pass; every green run is followed by a built-in decoy (a pairing banner that never paints) the harness must fail. Docker-free decoys in scripts/test_iso_bootstrap_gate.py, covered in test_gate_decoys.py (decision 147).
## gates — decoy coverage: the exemption list is EMPTY (controller decoys landed; R-426 closed) (2026-10-06)
- `decoy_coverage_gate.py` EXEMPT: the four felhom-controller entries are gone (`controller/scripts/test_gate_decoys.py` COVERS docker-v, reuse-refs, instructions, observations).