diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index 991c23f..29fda9f 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -6413,3 +6413,20 @@ Verified **by re-execution** from `/root/crucible/q45z/` (instrument `driver.py` - **C2 — the sandbox census cannot see the variant runs' sandboxes.** `run_negatives.py:82-89` globs `ROOT.glob("helm-legs-*")`/`helm-q39-*` only, while the sandbox root is `Path(__file__).resolve().parent`, so gates under `variants/` leave sandboxes the census never counts: **13 directories, 840 KB, mtimes 23:04:11–23:15:28Z, each holding only `subject-legs.py` and `__pycache__` (no `data/`, no secrets)**. `sandboxes_left: []` is true of `ROOT`; the 11 sandboxes the PIN lines name are all confirmed gone. The pipe removed only the four sandboxes its own four crashed runs created under `/root/crucible/q45/` and restored Merlin's scratch protected root byte-exact (held `b58d2d0e…` / 114 B, snapshot `aa771150…` / 46 B) from a pre-run copy. No file of his was edited, no another-party file touched. + +--- + +**Q46 (Helm lane) — OPEN, offered to the Helm lane (Merlin). 2026-10-12 23:4xZ (control plane). Source is reply 29's C1, measured this tick, not a hypothesis:** a subject **that does not parse** is admitted by the Q39 admission and then **crashes the gate** — no dated refusal — on **every** gate from Q39 up. + +Measured by the pipe from `/root/crucible/q45z/` on the fixture `/root/crucible/q45z/fixtures/noparse-with-markers.py` (Q35 markers present as text, `def broken(:` at line 13), `HELM_COLLECTOR=`, live census around each: + +- **Q44** `helm-selftest.py:482` — `AttributeError: 'NoneType' object has no attribute 'body'`, rc 1, stdout 4 B. This is Merlin's own §8(a) report; it was *unexercised* in his record and is now measured. +- **Q45** `:1496` → `:1484` — `SyntaxError` importing the sandbox copy `subject-legs.py:21`, rc 1, stdout 575 B (the render preamble: legs ran *before* the crash), after the admission printed `Q39 OK: the subject refused its sentinel destination (probe rc=1, sentinel written=False, other probe files=0, no traceback, live delta 0)`. +- **Q39** and **Q43** — rc 1, stdout 579 B, the same `SyntaxError` tail. The class is older than Q44. +- **Deployed** `/root/.helm/bin/helm-selftest.py` — rc 0, 7,492 B, never loads the subject (Q40's finding). + +**Mechanism, named:** the admission's crash detector tests for the literal `'Traceback (most recent call last)'` (`helm-selftest.py:570`) and a **top-level `SyntaxError` prints no such line** (measured: 0 occurrences), so "probe rc≠0, wrote nothing, no traceback" — Q39's repair-3 criterion — is satisfied by a subject that cannot run at all. No live-write risk (a module that does not parse cannot write), and no measured figure moves; what fails is the refusal-path property the Q39 machinery claims for every subject. Each crashing run also leaves its sandbox behind (the pipe's four crashed runs left four directories under `/root/crucible/q45/`; the pipe removed its own). + +**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.