Verified from source at head 5c759078c4a8: src/analysis.js:45-48 throws invalidFields for a NON-BLANK out-of-range value before the :49-56 blank abstention, and the abstention is preserved -- bristolType === null || color === null still returns needs_user_input / unusable_visual_fields. So blank-plus-out-of-range fails closed while glare (null/null) still abstains: option 1 of the recorded call, exactly. The comment at :36-41 states the rule and cites #73. Corpus at head declares 8 cases (dicts with id/caseClass/file/bytes), 7 at base a1777a72e80e. The manifest confidence change (out-of-range-fields 1.4 -> 0.9) and the byte/sha checks are the monitor's readings, not re-derived here -- the source check settles the contract. Blocker: / is 101 MB free / 100% (inodes 8%). act_runner aborted in "Set up Node.js" with no space left on device; the required check on #74 reads failure -- Quality gates / quality (pull_request), "Failing after 14s", 4 status entries with 1 failing. No PR can be gated until space is freed; two ENOSPC job failures today, none Oct 8-11. Largest trees: /root/sovereign-music-daily 39G (holds the live 12G cpu-render.swap -- never reclaim), /root/.hermes 24G, /var/lib/docker 1.7G, /var/lib/act_runner 603M. disk_space_watch.py exists with no cron job referencing it. The reclaim is Alexander's one word. PR #74: open, mergeable true, 0 reviews, 0 assignees. #72 merged with none of either, which is how #73 escaped. The acting account is the PR author, so no comment or assignment is made from this credential; the correction route is this queue plus Alexander. Three defects in the committed verification record (monitor's findings, none changing the pass/fail): "30/30 pass" reproduces as 21/21 (30 counted those three files plus analysis.test.js); the "RED first" line is a TDD narrative not reproducible from this commit; and artifacts/vision-refusal-blank-plus-out-of-range-mobile.png is byte-identical to the pre-existing vision-refusal-fail-closed-mobile.png (both e45724d1...), so it cannot discriminate the fix. Review route: Praetorian cannot take this -- provider route dead (403 wall) and its own forge gate is blocked by this same disk. The independent review for #74 is Alexander's call. Amendment to the 02:48Z hand-off: the brief's target is gate 74aba348..., and the question that matters most is now "does the gate write the live snapshot through its own admission path" -- the question my 07:18Z incident answered the hard way.
This commit is contained in:
1 parent
b63dd9e832
commit
f57c0e74fa
1 file changed
+35
@@ -5095,6 +5095,41 @@ independent copies of the original digest.
|
||||
admission path, so the limit is not cosmetic: the guard must be treated as unproven until the resolution check
|
||||
lands. No probe should be run again against any subject whose default destination is not sandboxed.
|
||||
|
||||
**PR #74 lands the #73 contract, and the disk is now blocking the forge's own CI. 2026-10-12 08:31Z (control plane).**
|
||||
Read from source and from the forge API, not from the PR's narrative.
|
||||
|
||||
- **The fix is option 1 of the recorded call, verified in the source at head `5c759078c4a8`.** `src/analysis.js:45-48`
|
||||
now throws `invalidFields` for a **non-blank** out-of-range value *before* the `:49-56` blank abstention, and the
|
||||
abstention itself is preserved — `bristolType === null || color === null` still returns `needs_user_input` /
|
||||
`unusable_visual_fields`. So `blank-plus-out-of-range` fails closed while `glare` (`null`/`null`) still abstains,
|
||||
which is exactly what comment 17247 asked for; the comment at `:36-41` now states the rule and cites `#73`. Corpus
|
||||
at head declares **8** cases (`cases[]` dicts with `id`/`caseClass`/`file`/`bytes`), 7 at base `a1777a72e80e`.
|
||||
The manifest's confidence change (`out-of-range-fields` 1.4 → 0.9) and the byte/sha verification are the monitor's
|
||||
readings, **not re-derived here** — I stopped after the source check, which settles the contract.
|
||||
- **The blocker is disk, and it is now stopping CI: `/` is 101 MB free / 100%** (inodes 8%, so inode pressure is not
|
||||
it). `act_runner` aborted in "Set up Node.js" with `no space left on device`, and the required check on #74 reads
|
||||
**`failure`** — `Quality gates / quality (pull_request)`, "Failing after 14s", 4 status entries with 1 failing. No
|
||||
PR can be gated until space is freed; two ENOSPC job failures today, none on Oct 8–11. Largest trees on this host:
|
||||
`/root/sovereign-music-daily` **39G** (which holds the live 12G `cpu-render.swap` — never reclaim),
|
||||
`/root/.hermes` **24G**, `/var/lib/docker` 1.7G, `/var/lib/act_runner` 603M. `disk_space_watch.py` exists with **no
|
||||
cron job referencing it**, so nothing is watching this. The reclaim is Alexander's one word; nothing here is mine
|
||||
to delete.
|
||||
- **PR #74's review state.** Open, **mergeable: true**, 0 reviews, 0 assignees. #72 merged with none of either, which
|
||||
is how #73 escaped unreviewed — so this is the same gap, one PR later. The acting account is the PR author, so no
|
||||
comment or assignment will be made from this credential (it would read as self-review); the correction route is
|
||||
this queue plus Alexander.
|
||||
- **Three defects in the committed verification record** (monitor's findings, none changing the pass/fail): the
|
||||
"30/30 pass" row reproduces as **21/21** — 30 counted those three files *plus* `analysis.test.js`; the "RED first"
|
||||
line is a TDD narrative not reproducible from this commit (the reproducible RED is the analysis row); and
|
||||
`artifacts/vision-refusal-blank-plus-out-of-range-mobile.png` is **byte-identical** to the pre-existing
|
||||
`vision-refusal-fail-closed-mobile.png` (both `e45724d1…`), so it cannot discriminate the fix. Fix the count and
|
||||
either drop or differentiate the screenshot. Not re-derived here.
|
||||
- **Review route.** Praetorian cannot take this: its provider route is dead (the 403 wall) and its own forge gate is
|
||||
blocked by this same disk. So the independent review for #74 is Alexander's call — fix its provider, or authorize
|
||||
the `hou3` fallback. Amendment to the 02:48Z hand-off: the brief's target is now gate `74aba348…`, and the question
|
||||
that matters most is no longer "does the gate refuse an ungated collector" but **"does the gate write the live
|
||||
snapshot through its own admission path"** — the question my 07:18Z incident answered the hard way.
|
||||
|
||||
---
|
||||
|
||||
## Q38 — The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin — Q36's candidate 2, on Alexander's direction to continue the Helm lane; **direction unrecorded in this repo — Testimony only**)*
|
||||
|
||||
Reference in new issue
Block a user