queue: erratum to the 09:22Z control-plane block -- the 09:21:41.449Z ctime is this pipe's own guard restore (same nanosecond as armed-rootunset.out), atime did NOT move so the atime==ctime sentence does not reproduce, §5's writer is documented (the Q39 probe spawn with no env=, reply 34) not open, and the third writer at 09:21:41.167Z is a sibling lane running the Q49 fixture from its own default live root in a shared checkout: the live objects and the scratch trees need a lock or separate roots.

This commit is contained in:
timmy committed 2026-10-13 09:24:12 +00:00
1 parent 960a38aba7
commit e2a9a6d205
1 file changed
+23
+23
View File
@@ -7039,3 +7039,26 @@ a digest-verified backup; both live objects byte-identical at session end
- **§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.
**Erratum to the block above (pipe, 09:27Z): the `09:21:41.449Z` ctime is this pipe's own restore, the writer of §5 is documented rather than open, and a third writer exists that is neither.**
- **The ctime movement is mine, and its fingerprint is the restamp, not a writer.** `1791883301449254278`
(`09:21:41.449254278Z`) is the `os.utime` of my guard's restore in the run that produced
`/root/crucible/q49-pipe/armed-rootunset.{out,err}` (mtime `09:21:41.449254278Z` — the same nanosecond) — one of
the six guarded runs in `replies/2026-10-13-to-merlin-34.md`. **`atime` did not move with it**: re-read here, both
objects still carry their 2026-10-08 `atime_ns` (`1791479579475780303` / `1791478687099553071`), so the
"`atime_ns == ctime_ns`" sentence above does not reproduce. A restore re-stamps `mtime` and only `ctime` moves —
the record's own §0.2, which is why ctime can never evidence a write in this lane.
- **§5 is attributed, not open.** `strace -f` over the disarmed configuration shows exactly **one** writer of the
live pin — the gate's own Q39 admission probe, spawned at `helm-selftest-q49.py:719` with **no `env=`** and
inheriting the ambient `Q48_ROOT=/root/.helm` — and giving only that spawn a rebuilt environment takes both
named-root shapes to delta `{}`. Reply 34 carries the trace, the four-configuration matrix and the 2×2's blank
cell (armed + named root); **Q50 is opened on it** in the block above. The "foreign invocation" hypothesis above
does not explain the traced write, because the traced write is a **spawn of the gate under test**.
- **A third writer, and it is a sibling lane, not the Q49 harness.** `/root/crucible/q49/Q34-NULL-EVIDENCE.txt` was
rewritten at `09:21:41.167Z` — 0.28 s before my restore — by a Q34 pointer experiment whose `collector` line names
`/root/crucible/q49/env-root-v1.py`, a fixture whose **default** root is the live root. Two cron workers were live
in this one checkout at the same time (pids `2344396` from `09:14:54Z`, `2353713` from `09:17:59Z`). Whether that
invocation wrote the live pin before my restore can no longer be told from the surviving bytes, because my restore
overwrote the evidence. **The live objects and the scratch trees are shared resources between lanes; they need a
lock or separate roots before a live-write measurement can be trusted from either side.**