diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index 1d8f353..6688786 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -7000,3 +7000,42 @@ a digest-verified backup; both live objects byte-identical at session end - **Pipe-side correction logged, not deleted:** reply 33's negative ("live root named → redirect fires → delta 0") was a property of the subject I chose, not of the gate; the correction and its measurement are in reply 34 and stay there. + +**Q49 verified independently, with the erratum it needed — plus a live finding: the ctime trace the lane treats as a write record is being moved by a foreign lane running the Q49 fixture. 2026-10-13 09:22Z (control plane).** + +- **The gate's figures, confirmed on my own reads.** `/root/crucible/q49/helm-selftest-q49.py` = **128,948 B / 2,445 lines + / `085ddf4f42ae80ea…` / 123 `check("`** (Q48's `a590170f…` = 122,186 / 2,287 / 120), so the census 120 → 123 holds and + the suite's 171 → 174 step is the same three additions. Landing rows at the cited revision reproduce: + `recoveries/helm-resolved-root-live-path.md` 15,220 B / `a64f26e7…`, check-in 36,515 B / `cdfed86a…`, queue 823,541 B + / `d0bf9080…`, byte-identical at `main` over the anonymous path. Five green runs at 13,863 B, "174 passed, 0 failed", + digests `13cf5cf7` / `d4666b9f` / `0abd28cd` / `5ed81c37` / `bbbd1901` — all five byte-exact on disk. + `Q49-GREEN.json` 5,169 B, `Q49-WITNESS.json` 13,785 B, `Q49-ATTRIBUTION.json` 6,495 B; fixture `env-root-v1.py` + 5,634 B / `76b55b8a…`. Deployed gate still `7ed1bca8…` reading `HELM_COLLECTOR` 0 — nothing deployed. +- **The six-vs-seven erratum is confirmed by enumeration, and it is a carried figure.** Counting the artifacts' own rows: + `Q49-ATTRIBUTION.json` holds **four** rows with `live_moved_any: true` (`R1-v1-fixture-dry-run`, `-skip-tests`, + `-deploy-out`, `R2-v1-driver-first-armed-row`) and `Q49-WITNESS.json` holds **three** (`B-nodefault`, `C-inproc-off`, + `D-disarmed`) — **seven**, exactly as the monitor reports, while the record's sentence "Six live writes occurred under + guard (R1a/R1b/R1c/R2, rows B/C/D)" enumerates seven in its own parenthetical. It recurs in the queue block and the + closure commit. It does not touch the closure: every move is the pin going `120 B → 14 B` with a restore, both live + objects byte-identical at start and end, and the witness's `A-armed` plus the three `N1-*scratchroot` rows are + `live_moved_any: false` — the discrimination working, measured rather than asserted. +- **A live finding, measured twice.** Both live objects now carry `atime_ns == ctime_ns == 1791883301449254278` + (09:21:41.449Z), while my first pass this tick read them at `1791883300.011Z` — **so they moved between my two calls.** + In the same tree, `Q34-NULL-EVIDENCE.txt`, written by another lane and naming the Q49 fixture + (`collector: /root/crucible/q49/env-root-v1.py`), carries an mtime of **09:21:41.167Z — 0.28 s earlier**. That fixture's + whole subject is a collector whose *default* root is the live root, so a foreign invocation with no redirect writes the + live objects; §5's residual ("the live pin still moves with no spawn the traced instrument can attribute") fits that + well: **attributable, just not to the Q49 harness's own traced spawns.** Recorded as a hypothesis with the adjacency as + its evidence — no write against the live path was run to prove it. +- **A hypothesis of my own, refuted before it was recorded.** I suspected the movements were read-induced: `/` is ext4 + `rw,relatime`, and both live files' atime sits 4.7 days behind their mtime. So I tested it on my own scratch file, with + the `relatime` precondition set and exactly one plain read: **atime moved, ctime did not.** A read is therefore not the + cause, and the live objects' `atime == ctime` is the fingerprint of something that touched their metadata. Recorded + because the opposite claim would have been plausible and wrong. +- **The scratch tree's writers need declaring**, as the monitor says: `Q34-NULL-EVIDENCE.txt` appeared in + `/root/crucible/q49/` at 09:21:41Z (the brief read 09:19:46Z — it has been rewritten since) with the live pin verified + intact afterwards. That tree is the record's reproducibility claim, so this block records the foreign write rather than + removing it. +- **§4: the pair is collector `4e45021d…` + gate `085ddf4f…`**, and the `cp` remains Alexander's with no approval + artifact in this repo or in `decisions/`. §5 is a named *open* unit in Merlin's lane, not a closed one. Standing + unchanged: the `manifest_match` pin stale since 2026-10-08, and the Q13 publication call.