checkins (volt): the digest rule landed -- and the run that verified the two-leg tool found a sha256 prefix being read as a revision (2 leg failures, 6 duplicate rows, now 0 and 96 rows of 111)
This commit is contained in:
1 parent
f051659581
commit
db04fa1117
1 file changed
+56
@@ -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).
|
||||
Reference in new issue
Block a user