queue: Q45 closed and verified (gate 2bbca218 105,477 B / 1,942 lines; 21/21 rows delta 0; diff classes now correct); live-pin ctime trace disclosed; adoption pair = 4e45021d + 2bbca218

This commit is contained in:
timmy committed 2026-10-12 23:32:43 +00:00
1 parent 3cb1562c0c
commit 50328d3ccb
1 file changed
+29
+29
View File
@@ -6430,3 +6430,32 @@ Measured by the pipe from `/root/crucible/q45z/` on the fixture `/root/crucible/
**Done means:** a subject that does not parse is refused with **exit 2 and a dated message naming the parse failure**, on every gate from Q39 up; the discriminator is the fixture run against Q39, Q43, Q44 and Q45 with each rc measured (the tracebacks above become dated refusals); and the sandbox a crashed run leaves behind is either not created or removed by the refusal path — with `leftover()` extended to the directory the sandbox is actually created in (C2: the glob is anchored at `ROOT`, while the sandbox root is `Path(__file__).resolve().parent`), or the claim scoped to the glob it measures. **If the class is better handled at the admission's crash detector than by a parse guard, say so and the item is reframed as a documented limit rather than a task** — that reframing is a valid closure, the same escape hatch Q45 carried. Not gated on Alexander: Merlin's lane, and the defect is inside the gates he owns.
**Open and gated beside it:** Q9 (audio handover), Q13 / Q19 (Alexander), Q42 (zephyrus's), Q37 (the pipe's), and the §4 adoption `cp` of the Helm pair — now collector `4e45021d…` + gate `2bbca218…` — which is the same human call. Merlin's §9 follow-on (resolve every path the subject declares **at runtime**, rather than rewriting the literals it declares statically) is unclaimed beside Q46.
**Q45 closed and verified independently; the live-pin integrity event disclosed; the adoption pair moves to gate `2bbca218…`. 2026-10-12 23:32Z (control plane).**
- **Q45's evidence reproduces on my own reads.** Gate `2bbca218871b…` = **105,477 B / 1,942 lines** against Q44's
`18580c10…` at 94,819 / 1,731; my own `diff -u` classes are **2 file / 7 hunk / 284 added / 73 removed / 60
context = 426**, and the identity 1,731 + 284 − 73 = 1,942 holds. That also closes the C2-class complaint this lane
raised against Q43: the decomposition convention is now correct. Collector byte-identical `4e45021d…` (29,954 / 720);
deliverable `recoveries/helm-resolved-redirect.md` 22,619 B / `0e3d8fd9…`; `out/Q45-NEGATIVES.json` 88,622 B /
`3b317c56…` with **exactly 21 rows, all 21 carrying `live_delta` = 0 and `live_held_delta` = 0** — that is the
acceptance claim, and it holds on my count. Five green runs at 13,312 B each, digests `c02adfda` / `10972472` /
`51b42c96` / `389a04e4` / `deef0ded`, "169 passed, 0 failed", `VERDICT: ALL GATES PASS`.
- **The sharp claim is a measurement, not rhetoric.** Four rows in the harness carry `protected_held_delta: NONZERO`,
one of them at **rc 0 with "169 passed, 0 failed" and `VERDICT: ALL GATES PASS`** — the Q45 rule catches a write that
Q44's two-rule form passed clean. The monitor's "six NONZERO rows" refers to the **overwritten incident run**; the
corrected file on disk shows four, and four is what this block records.
- **One integrity event, disclosed rather than discovered: this run wrote the LIVE held pin and restored it
byte-exact.** It now reads 120 B / `5b6d7071…`, mtime_ns `1791478687099553071` (intact), **ctime_ns
`1791846636217687791` = 23:10:36Z** — moved and not recoverable. That is the same shape as this lane's own 07:18Z
snapshot clobber-and-restore, and the same rule applies: the value is intact, the dated identity is not, and the
durable trace is the ctime. The pinned value was already stale (`f27326e8…` pinned against a live body of
`e40308e5…`), so nothing correct was lost. The live snapshot reads `aa842b0f…` / 14,039 B unchanged.
- **Two limits, neither a contradiction.** (1) The cited `python3 /root/crucible/q45/readback.py` no longer reproduces:
it hardcodes `REV = "57895b2"` at line 16, so against the advanced check-in it prints `VERDICT: READBACK MISMATCH`
with `disk=True git=False` for the two files that moved. Pinning the revision per file, or to the post-append
commit, is the one fix owed. (2) The incident's per-row evidence was overwritten by the corrected run, so that
sentence rests on the ctime trace above.
- **§4 ask, corrected from this lane's own 21:09Z block: the pair is collector `4e45021d…` + gate `2bbca218…`.** Gate
`18580c10…` (Q44) was superseded within the day — if Alexander read the earlier line, that gate is not the one to
copy. The deployed gate `7ed1bca8…` still reads `HELM_COLLECTOR` zero times, so none of Q31–Q45 is in production.