diff --git a/REPORT.md b/REPORT.md index 67bae3b..04c079a 100644 --- a/REPORT.md +++ b/REPORT.md @@ -239,7 +239,12 @@ published but **NOT vouched**; floor still **0.222.0**; all apps running; plante R-329 and R-386 closed and compressed; **R-387** (closed) and **R-388** (the notification-model product decision — open, operator's call) filed. -## 15. Observations — noticed, documented, NOT acted on +## 15. Observations + +> **Each item carries `FILED: R-NNN` or `NOT-A-FINDING: ` (gate 11, added 2026-08-23).** +> The markers were added retrospectively on 2026-08-24 when the gate was built: item 1 was the very +> finding that had no row, and adding its marker is the first thing the gate ever asked for. The +> observations' text is unchanged. 1. **The operator cooldown key has no app identifier, and it now bites.** PrivateBin's alarm four minutes after BookStack's was logged `suppressed — operator cooldown 1h, @@ -247,13 +252,20 @@ product decision — open, operator's call) filed. R-182's known cooldown-key shape; it was harmless while `app_start_failed` was undeliverable and is not any more. **Same pattern as R-329 itself: a known-broken thing moved from unreachable to load-bearing.** Not fixed here. + FILED: R-389 2. **The settings page grew 12 → 15 toggles in one session** — one new alarm, plus two compound toggles split into four. Recorded as the argument inside R-388. + FILED: R-388 3. `internal/notify/notifier.go` carries **pre-existing** gofmt drift in an unrelated const block, confirmed by stashing this session's work and re-running `gofmt -l`. Not touched (§12). + NOT-A-FINDING: cosmetic drift in an unrelated const block, predating this work and touching no + behaviour; §12 forbids nearby refactors, so filing a row would only queue a whitespace commit. 4. **The golden-bake runbook still lacks `pveam update`** — second consecutive bake to hit the stale index on the `virgin` snapshot, presenting as `400 … no such template`. + FILED: R-390 5. **Deliberately left open, untouched:** R-102, R-359, R-385, and R-388's redesign. + NOT-A-FINDING: this item is a pointer to rows that already exist, not a new observation; it is + here so their absence from this session reads as deliberate rather than forgotten. ### CI runs, confirmed by ID diff --git a/controller/scripts/controller_gates.py b/controller/scripts/controller_gates.py index be0b36f..ffb933c 100644 --- a/controller/scripts/controller_gates.py +++ b/controller/scripts/controller_gates.py @@ -47,6 +47,9 @@ REPO = os.path.dirname(CTRL) # — the root REUSE.md l SHARED_REUSE = os.path.join(os.path.dirname(REPO), "felhom.eu", "scripts", "reuse_refs_check.py") SHARED_INSTRUCTIONS = os.path.join( os.path.dirname(REPO), "felhom.eu", "scripts", "instructions_gate.py") +# R-389 — shared, like the two above: it lives in felhom.eu/scripts/ and is never copied. +SHARED_OBSERVATIONS = os.path.join( + os.path.dirname(REPO), "felhom.eu", "scripts", "observations_gate.py") # (label, absolute script path, args, fast) GATES = [ @@ -61,6 +64,8 @@ GATES = [ ("retrieval-promise", os.path.join(SCRIPTS, "retrieval_promise_gate.py"), [], True), ("reuse-refs", SHARED_REUSE, [REPO], True), ("instructions", SHARED_INSTRUCTIONS, [REPO], True), + # R-389 — a REPORT.md observation with no register row behind it. Fast: stdlib file reads. + ("observations", SHARED_OBSERVATIONS, [REPO], True), ] VERDICT = {0: "OK", 1: "FAILED", 2: "INCONCLUSIVE"}