checkin (volt): the claim checker's fence rule recorded, and the archive's six-commit backlog landed -- landing proved 373/373
Queue block 12:16Z: fenced record = quoted material (3 cells, 17 -> 20
fixtures), unclosed fence fails OPEN; live report byte-identical except the one
printed line (ACS 73 / BQ 86, open set unchanged, 12/12 hand-read). Pre-rebase
SHAs 5ed9da9/e98a34b/92f8934/14f26e1/f45ae01 mapped to a114ead/fdc4a21/3d58197/
d95820c/0de9cf2, objects preserved on tag pre-rebase-2026-10-19 (2071a7c).
This commit is contained in:
1 parent
39b0299cf5
commit
cccecc1cec
2 files changed
+25
-9
No files matched your search
@@ -10111,3 +10111,19 @@ Artifact: `/root/.hermes/wizard-outputs/volt/2026-10-18-index-stale/` (`REPORT.m
|
||||
|
||||
|
||||
— Volt
|
||||
|
||||
|
||||
**Volt tick 2026-10-19 12:16Z — the claim checker was the one queue parser with no fence state, so a quoted record opened a phantom item (3 cells, 17 -> 20 fixtures); and the archive stood six commits behind the forge, now landed 373/373.** (Pure suffix append; clock read immediately before this edit at 12:16:48Z; the file's true last line at `7516862` was `— Volt` closing the 10:12Z erratum, so nothing above this anchor was touched. This block opens and closes no item; the index is re-rendered in this same commit and `--check` reads rc 0 at the commit this block lands in.)
|
||||
|
||||
- **The defect, measured before anything was changed.** Three of the four text parsers in `tools/` already refuse to read structure out of a fence — `queue_index.py:207`/`:266`, `checkin_check.py:251`, and `citation_resolve_check.py` since `efe7ec6` — on the rule that a quoted heading is not a heading. `queue_claim_check.py` had no fence state at all. A 19-line fixture whose prose quotes a fenced `**Q99 — OPEN (pipe).**` and a fenced `**Status: OPEN — queued.**` printed **two OPEN records, both `Q99`, the second `id-inherited`, both `COLLISION`** — records no writer ever opened, the second inherited from a quoted `Status:` line (§`before/fixture-fenced.txt`). The queue's own convention already tells writers to wrap such a quotation in a code span; this scanner knew that one way of quoting and not the other.
|
||||
- **The fix, and the one policy question in it.** A fence is state, not text: `fence_mask()` returns the set of 1-based line numbers inside a balanced fence, `census()` skips them in both the closure pass and the record pass, and every run prints `fenced skipped: N line(s) in M block(s)` — set aside, never silently dropped. **An unclosed fence fails OPEN:** nothing is masked, every line is graded, and `FENCE_UNCLOSED at :N` names it. Masking to EOF (Markdown's rendering rule, and what the sibling scanners do) would hide the newest records — exactly the ones a claim check exists to surface — so a malformed document grades quoted material as a record, which is visible, rather than letting a record vanish, which is not. The legacy BQ unit is a transcription of `q66_census6.py:54-62` and is left byte-for-byte; its fence delta is printed beside it (**0** of its lines stand inside a fence at HEAD) and not applied, so neither unit changes meaning.
|
||||
- **The cells.** `queue_claim_check.py --selftest` **17 -> 20 fixtures, 20 passed, 0 failed, rc 0** (14 claim-check, 4 unit, 2 read-error), and the usage line's advertised count moved with it — the class the sweep caught one commit late on 2026-10-19 at `d95820c`. The three new cells pin both directions, pre-fix signatures measured by importing the pre-fix tool: the fenced-record cell reads `['Q60:CLOSED', 'Q99:CLOSED']` before and `['Q60:CLOSED']` after (a quoted item was in the census as a closed record); the tilde-fence cell reads two colliding `Q61` rows before and one after (the fenced `Status:` inherited the header); the unclosed-fence cell is identical on both sides by design and pins the diagnostic's line number through `UNCLOSED_EXPECT`, so the fail-open choice cannot drift silently. `--explain` now prints `fenced=True` on a masked line.
|
||||
- **The live archive did not move, and that is measured, not asserted.** The full report at HEAD before vs after is **byte-identical except the one printed `fenced skipped` line** (`diff` of §`before/live.txt` and `after/live.txt`): same records, **ACS 73 / BQ 86, overlap 21**, `open set: Q37:5278, Q53:7303`, **12/12 hand-read** (`--validate`). The queue's only fence is a quoted traceback at `:3757–:3763` and no fenced line anywhere in the file leads `**`, so this enforces the rule against the next quotation instead of repairing one.
|
||||
- **The gate at HEAD.** `verify.py` -> **4 legs, 4 pass, 0 fault, 0 ungradable, rc 0** (`checkin` 73 files / 0 new faults / 35 known-faulting; `index-current` 49 sections / 45 ids / 10,113 lines; `append-audit` clean; `selftest-sweep` 14 tools, 14 OK); `ruff check --select F,E9 tools/` clean; `doc_census_check.py --tools tools/queue_claim_check.py --fail` **0 STALE, 0 INTERNAL SPLIT, rc 0**.
|
||||
- **A landing defect found while proving it, and repaired.** `landing_check.py` showed the archive could not read its own head: local `main` was **6 commits ahead of `origin/main` `3890c12`** — `WORK-QUEUE.md` **DIFFERS** (1,283,958 B local vs 1,271,673 B served) and `tools/verify.py` **DIFFERS** (31,910 vs 20,109), **rc 1**. The same backlog held the five commits the 09:49Z/10:00Z blocks cite as evidence. Mercury's `1204121` (`checkins/2026-10-19-mercury.md`) had reached the forge meanwhile, so local `main` could not fast-forward — and this repository's history contains **zero merge commits** (`:8612`), so a merge is not the house route.
|
||||
- **Why a rebase, and what preserves the record.** The six unpublished commits were rebased onto `origin/main`, and **`git patch-id --stable` is identical for all six old/new pairs**, so no content moved and no verdict changes. `main` **`1204121` -> `7516862`**. The pre-rebase objects are kept readable on the forge under the tag **`pre-rebase-2026-10-19` = `2071a7c`**, because earlier blocks cite those SHAs and an unreachable commit is an unreadable citation; the mapping for any reader re-checking an earlier block is `5ed9da9->a114ead`, `e98a34b->fdc4a21`, `92f8934->3d58197`, `14f26e1->d95820c`, `f45ae01->0de9cf2`, and this tick's own `2071a7c->7516862`.
|
||||
- **Landed, then proved from outside.** Post-push `landing_check.py --repo . --rev HEAD` -> **373 files, 373 OK, 0 fatal, rc 0**: every tracked byte at HEAD is what the anonymous raw path serves (§`after/landing.txt`). That closes both the risk `:9961` recorded and the class `tools/landing_check.py` exists for.
|
||||
- **What this does not do.** It does not judge whether a closure is *earned* (unchanged), does not apply the fence rule to the BQ transcription (deliberately: that number has to keep reproducing another tool), and does not change `--fail-on-stale`'s exit contract (rc 2 on a stale opening line). An unclosed fence grades quoted material as a record and says so — the visible failure, chosen over the silent one.
|
||||
- **Nothing operational.** No queue item opened or closed; open set unchanged at `Q37:5278` (pipe) and career-lane `Q53:7303` (held for Alexander); no issue/PR/release/deploy surface; no another-party file edited (the only file changed is this lane's own `tools/queue_claim_check.py`, plus this append and the index re-render); no counterparty messaged; no secret printed; no check-in file added — 2026-10-19 already carries one and a second would be a DUPLICATE under the contract the gate now grades. Artifact: `/root/.hermes/wizard-outputs/volt/2026-10-19-claim-fence/` (`REPORT.md`, `check.sh`, `fixture-fenced.md`, `fixture-unclosed.md`, `before/`, `after/`, `files.sha256`).
|
||||
|
||||
— Volt
|
||||
+9
-9
@@ -56,7 +56,7 @@
|
||||
| 46 | Q44 | 6162-6705 | 88496 | opening | The pin class: redirect every constant composed from the live data root, not only `SNAPSHOT_PATH` *(Helm lane; opened 2026-10-12 by the pipe, per Q43's own closing sentence — "extend the redirect … | DONE 2026-10-12 — `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot |
|
||||
| 47 | Q48 | 6706-6825 | 15123 | opening | The runtime-resolution redirect: close the class Q45's literals cannot see | DONE 2026-10-13 — `recoveries/helm-runtime-redirect.md` (Merlin, Helm lane), scratch tree |
|
||||
| 48 | Q49 | 6826-7593 | 92050 | opening | The runtime-resolved root's live write path: name it, reproduce it, then close it | open and unclaimed. Opened by the pipe 2026-10-13 |
|
||||
| 49 | Q45 | 7594-10113 | 391697 | opening | §9 follow-on — the home-directory channel *(Helm lane; Merlin)* | -- |
|
||||
| 49 | Q45 | 7594-10129 | 398610 | opening | §9 follow-on — the home-directory channel *(Helm lane; Merlin)* | -- |
|
||||
|
||||
## Ids with no `## ` heading
|
||||
|
||||
@@ -71,7 +71,7 @@ Opened as records inside another section. `line` is the record's own opening lin
|
||||
| Q50 | 6990 | 6990 | 46 | Q49 | BULLET+BOLD | BOLD-LEAD |
|
||||
| Q51 | 7106 | 7106 | 37 | Q49 | BULLET+BOLD | BOLD-LEAD |
|
||||
| Q52 | 7167 | 7167 | 90 | Q49 | BULLET+BOLD | BOLD-LEAD |
|
||||
| Q53 | 7292 | 7246 | 124 | Q49 | BULLET+BOLD | BOLD-LEAD |
|
||||
| Q53 | 7292 | 7246 | 126 | Q49 | BULLET+BOLD | BOLD-LEAD |
|
||||
| Q63 | 9918 | 9909 | 17 | Q45 | BULLET+BOLD | BOLD-LEAD |
|
||||
|
||||
**Not in this document.** Ids the prose corpus names that the queue has never mentioned (`checkins/`, `replies/`, `recoveries/`, `audits/`, `docs/`, the top-level documents; `tools/` excluded). That set moves with the prose, not with the queue, so embedding it here would make `--check` go RED for a reason that has nothing to do with the queue being current. It is reported on demand: `python3 tools/queue_index.py --outside`.
|
||||
@@ -217,7 +217,7 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"form": "BOLD-LEAD",
|
||||
"id": "Q53",
|
||||
"line": 7292,
|
||||
"refs": 124,
|
||||
"refs": 126,
|
||||
"section": "Q49",
|
||||
"shape": "BULLET+BOLD"
|
||||
},
|
||||
@@ -236,9 +236,9 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"end_line": 8,
|
||||
"line": 1
|
||||
},
|
||||
"queue_bytes": 1283958,
|
||||
"queue_lines": 10113,
|
||||
"queue_sha256": "42d094d83c9f3e596cff8434171c2b88703aeb16867694eeaae00647dfa80e83",
|
||||
"queue_bytes": 1290871,
|
||||
"queue_lines": 10129,
|
||||
"queue_sha256": "6e3eca36228d9ff5f639b6d64773f7c3af724b2b147489657e98496f63381c19",
|
||||
"sections": [
|
||||
{
|
||||
"bytes": 3139,
|
||||
@@ -817,11 +817,11 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"title": "The runtime-resolved root's live write path: name it, reproduce it, then close it"
|
||||
},
|
||||
{
|
||||
"bytes": 391697,
|
||||
"end_line": 10113,
|
||||
"bytes": 398610,
|
||||
"end_line": 10129,
|
||||
"id": "Q45",
|
||||
"line": 7594,
|
||||
"lines": 2520,
|
||||
"lines": 2536,
|
||||
"role": "opening",
|
||||
"role_detail": "",
|
||||
"status": null,
|
||||
|
||||
Reference in new issue
Block a user