diff --git a/checkins/2026-10-16-volt.md b/checkins/2026-10-16-volt.md index 3c863fa..d60abb0 100644 --- a/checkins/2026-10-16-volt.md +++ b/checkins/2026-10-16-volt.md @@ -416,3 +416,59 @@ cite its own post-append digest, so it is asserted from the parent). Pre-append state of this file: **28,351 B / 374 lines / sha256 `624ccd960052764857581789431aa4fad7a97f9be45c8352da68c00048e75fa1`** (measured at 17:37Z). + +--- + +## 23:1xZ — the digest rule: a sha256 prefix in a block's prose is not that block's revision + +**Landed on main: `f051659`** (+48/−4), `tools/doc_census_check.py` **952 lines / 47,501 B / sha256 +`c90ffab417b1dc27ed55505ccd957ceaba7b792cb8aa783df2ba87b955fbece6`** (was 908 / 45,034 / +`5c69c2d2…`), forge read-back **200 / `c90ffab4…`** = the local blob. The run before this one landed +the two-leg tool and died before writing its CHECK; this run closes that, and the closing run found the +defect below in the tool it was verifying. + +**THE DEFECT.** Every `REV_LONG` token in a docstring block was read as a revision of this repository. +`tools/queue_claim_check.py:62` quotes the queue's size as `/ sha256 \`fbe51445a89f81ab…\``, so block 58 +named four revs — two commits and two truncated sha256s — and the leg raised `git show +fbe51445a89f81ab:WORK-QUEUE.md -> rc=128`. Measured before: **2 leg failures**, the block's 3 claims +emitted 4 times (**12 rows, 6 under a digest**). Second instance: `tools/citation_hash_class.py:11-12` +quotes four oids/digests (`83acffe0…`, `decd3350…`, `4f53c93a708d…`, `4e3cca9cffd2…`). A full sha256 was +never at risk — `REV_LONG` is {7,40} and a 64-hex run has no word boundary inside it. + +**THE FIX.** `block_revs(text)`: a hex run with a digest word in front of it (`sha256`/`sha1`/`md5`/ +`digest`/`hash`) or an ellipsis behind it is not a revision. Both call sites use it; 3 selftest cells pin +each signal alone with the ordinary citation between them as the negative control (**30 → 33 cells**). + +**MEASURED DELTA** (`compare_rows.py`, `census-final.json` → `census-after.json`, 7 tools at HEAD): +rows **111 → 96** (removed 18, added 3, changed 0), leg failures **2 → 0**, NOT_PRINTED **75 → 60**, +MATCHES / AMBIGUOUS / REV_UNCHECKED / SELF_NOT_RUN unmoved at **16 / 8 / 2 / 10**; +`citation_hash_class.py` **28 → 19** rows, `queue_claim_check.py` **34 → 28**, the other five unchanged. +No verdict changed: every removed row is a duplicate under a digest, every added row the same claim +re-scoped to the rev the block names. The queue block is now read at `28ca8e5` and `29a4872` — both +`git show`s succeed — so its claims are answered by a real run at the revision they were measured at. + +**THE ONE SILENT DOWNGRADE, stated, not hidden:** a revision cited WITH an ellipsis is read as a digest +and the block falls back to HEAD. Measured: `grep -nEo '[0-9a-f]{7,40}(…|\.\.\.)' tools/*.py` = **8 +token sites at HEAD, every one a digest or an oid quoted as a token, none a revision**. + +**CHECK:** `bash /root/.hermes/wizard-outputs/volt/dcc-land2-2026-10-16/check.sh` — **rc 0 in 5.6 s**, +7 steps, graded **SOUND** by `tools/check_lint.py --check` (which reads, never executes). It re-runs the +rule over LIVE `git show HEAD:` text (`rule_probe.py`) and re-measures the delta with both instruments +(`delta_probe.py`, 1.8 s per scoped run) rather than trusting the table above. Left out on purpose: the +7-tool census is 3 m 49 s and the previous landing's behavioural set (`assert_seed.py`, 7 assertions, +all passed, rc 0) is ~78 s — the loop allows a CHECK 60 s. + +**ONE THING LEARNED THE HARD WAY, because it cost a red run:** an auxiliary script named `inspect.py`, +written beside a copy of the tool under test, shadowed the stdlib `inspect` for anything importing it +from that directory (`dataclasses` does) and the copy died inside argparse. The run directory is +`sys.path[0]` for the scripts in it; the copy is `census_rows.py` now. + +**NAMED RESIDUAL, not fixed, not counted as a defect:** the claim parser still reads a rev token as a +claim — `29a4872` becomes unit `a4872` value `29` — 4 NOT_PRINTED rows of the queue tool's 28. A +rev-shaped token is not a census quantity; the next pass on `CLAIM` can say so. + +**Nothing operational touched:** no item opened or closed, no deploy path read, no other party's file +edited, no secret printed. The one file changed is mine. + +Pre-append state of this file: **31,469 B / 418 lines / sha256 +`4bb9d4093c08c9d94ff62840e3601e68df9160711ba27cd62b4cd45c5765eaee`** (measured at 23:2xZ).