burn-down night: decoy exemptions emptied (R-426 closed); R-889 opened (disk percent vs df); ctrl-d rows recorded; decision 136; section counts recounted (164)

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 02:12:31 +02:00
parent e6fe731987
commit d41ea5486b
6 changed files with 40 additions and 25 deletions
@@ -938,6 +938,10 @@ its length, and both fixes cost something the household would notice — operato
**Chosen (b)**: the operator closed R-424 as accepted on 2026-10-05, so the exemption's reason („blocked by an open
hole") no longer holds. Reversible by re-adding one entry. felhom.eu scripts.
136. **How the hold panel shows the log a hold kept (R-621).** Options: (a) inline on the household's app page — up to 400
raw lines of app output per service on a household panel; (b) a sentence and a link to the logs page, which already
serves the kept log. **Chosen (b)**: one click, no raw output on the panel. Reversible by a template change.
### 2026-10-05 (~21:00) — three rulings, the reviewer's picks given to the operator (recorded before the work; the burn-down night)
128. **R-126 — a `.fab` export onto a network drive.** **Refuse an export WITHOUT a password to any network drive; with
@@ -103,3 +103,11 @@ cherry-picks onto `main`, writes CHANGELOG, closes rows, pushes and watches CI.
| fixed without a row | `test_golden_currency_gate.py` used the local date, the gate UTC — red between 00:00 and 02:00 CEST (red-proved) |
| R-426 | felhom.eu side done: 16 → 12 exemptions; 3 foolable gates fixed (hostinstall R-185 count, age install, one-register leading verdict); decision 135 | 25 | felhom.eu night/gates ×4 |
| R-426 | agent + catalog decoys (8 exemptions removed; image-pins: 3 holes closed); 4 left (controller); agent go test red 21:25–01:55 from the installer change — fixed (test reads ISO first-boot files the installer only names) | 35 | agent `b2b82ae`, catalog `75f35842` |
| R-585 | the rest fixed on controller main (all producers) | 40 | controller `ff1758a` |
| R-621 | hold panel fixed on controller main (decision 136) | 25 | controller `0f2eab7` |
| R-127 | leg (b) moved to D | 10 | — |
| R-516 | items 7–10, 12 fixed on controller main; item 11 → new row R-889 | 60 | controller `e4774e6`, `2e5ef7e` |
| R-426 | CLOSED — exemption list 20 → 0 (controller decoys `7044b11`) | 30 | this batch |
| R-889 | OPENED — disk percent is used/total, not df's; moving it moves every fill alarm (a decision) | 10 | this batch |
| (agent, no row) | `go test ./internal/osupdate` red on DooPlex 21:25–01:55 (bundle test read the installer's new KEPT names as written files) — fixed | 10 | agent `b2b82ae` |
| (register) | section headings recounted (they still carried the 199-row counts) | 5 | this batch |
+8
View File
@@ -26,6 +26,14 @@
---
## 2026-10-06 (night) — the burn-down night: the decoy exemptions emptied
The full text of every row below: `git show e6fe7319:documentation/backlog/OPEN-ITEMS.md`.
| Row | What | Closed | Evidence |
|---|---|---|---|
| **R-426** | **The decoy-coverage exemption list — 20 registered gates that ship WITHOUT a decoy test, each named.** (P4) | CLOSED 2026-10-06 — FIXED (the burn-down night): the decoy-coverage exemption list is EMPTY | 20 → 0 in one night: felhom.eu (`68df84bc`, the night/gates commits — hostinstall, due-checks, one-register; three foolable gates fixed), felhom-agent (new `scripts/test_gate_decoys.py`: published against a fake Gitea, release-complete, the shared reuse-refs/instructions/observations), app-catalog (image-pins — three holes closed — image-resolvable, volume-persistence through PATH-stub docker), felhom-controller `7044b11` (docker-v + the three shared scripts). Each decoy red-proved by disabling the gate's check. `scripts/decoy_coverage_gate.py` EXEMPT = {}; the gate prints STALE EXEMPTION if an entry ever outlives its decoy. Decision 135 (one-register). Seen, not changed: image-resolvable reads `no such host` as GONE — a DNS outage would cry wolf. |
## 2026-10-06 (night) — the burn-down night: fixed and delivered in release window 1
The full text of every row below: `git show d4f8efa1:documentation/backlog/OPEN-ITEMS.md`.
File diff suppressed because one or more lines are too long
+4
View File
@@ -1,3 +1,7 @@
## 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).
## gates — decoy coverage: 8 exemptions removed (agent + catalog suites exist now; R-426) (2026-10-06)
- `decoy_coverage_gate.py` EXEMPT: the five felhom-agent and three app-catalog entries are gone — each repo's `scripts/test_gate_decoys.py` COVERS them. 4 left, all felhom-controller.
+1 -10
View File
@@ -33,16 +33,7 @@ import sys
# Dated 2026-09-01. This list is DEBT, not a settled state: R-426 owns it and names every entry.
EXEMPT = {
# felhom.eu
# felhom-controller
("felhom-controller", "docker-v"):
"COVERED IN THE SWEEP, not yet in a suite: an unallowlisted `-v` host path in a new Go file "
"was REJECTED (it uses os.walk). R-426 tracks moving it in.",
("felhom-controller", "reuse-refs"):
"shared script; its decoy lives in felhom.eu/scripts/test_gate_decoys.py.",
("felhom-controller", "instructions"):
"shared script; see felhom.eu. R-426.",
("felhom-controller", "observations"):
"shared script; its decoy (R-419) lives in felhom.eu/scripts/test_gate_decoys.py.",
# felhom-controller: covered by controller/scripts/test_gate_decoys.py since 2026-10-06 (R-426)
# felhom-agent and app-catalog: covered by their own scripts/test_gate_decoys.py since 2026-10-06 (R-426)
}