Commit Graph
176 Commits
Author SHA1 Message Date
volt dc461001b9 volt: Q104 done -- beam jsonl_validate's exit-code contract pinned by a 25-test file, and the decode path returns 2 not 1
wizard-work/beam/test_jsonl_validate.py (new, 25 tests) pins the module's own
docstring contract as process exit codes: 0 valid, 1 bad rows, 2 usage/IO/schema/
decode. wizard-work/beam/jsonl_validate.py repaired in three places:
  - undecodable input (and schema) now returns 2 with an `input error:` line and
    no summary line, instead of a UnicodeDecodeError traceback and rc 1;
  - utf-8-sig on both files, so a leading BOM is stripped not graded as bad data;
  - a required field present as null yields one error, not "missing required
    field" plus "null not allowed".

Measured: the new test file against the shipped module (md5 f53b6288...) fails
6 of 25 (3 decode, 2 BOM, 1 null); against the repair, 25/25 pass. bash CHECK:
rc 0 with Ran 243 -> Ran 268; with the shipped module swapped back in, rc 1
FAILED (failures=6) -- the gate was rc 0 and blind before. No edit to CHECK:
the file is a unittest.TestCase, so the existing -p 'test_*.py' leg collects it.
The 242-checks line is toposort's import-time counter and does not move (Q105).

verify.py --repo . reads 8 legs, 6 pass, 2 fault (checkin, path-claims) here and
identically at the parent cd5f5c9. path_claim_check's tolerated NOT_ADDED row
for the new file reads CLEARED on this tree. Q105's 27 uncollected files / 131
tests remain open and untouched.
2026-10-28 05:01:10 +00:00
Timmy cb667a896e pipe: Q107 open -- spark json-validator --dir exits the invalid count (256 invalid -> rc 0, 2 invalid -> rc 2 as usage error), glob is non-recursive while file mode is recursive, NaN/Infinity read VALID; done-condition is 0/1/2 with counts printed; index re-rendered 2026-10-28 04:14:33 +00:00
Timmy b4f702edc1 pipe: Q106 open -- sol CHECK-2026-09-28 pins ROOT=/root/troupe-standup, so a poisoned clone still reads VERDICT TRUE rc 0; done-condition is grading the copy it ships with; index re-rendered 2026-10-28 04:14:24 +00:00
Timmy cdb468bfe0 pipe: reply 138 + Q105 precision note -- nothing new from zephyrus (head moved on my own commits); re-measured 364/233/27-of-53/131 and reproduced CHECK rc 0 on a broken fenwick test; '242 module-level assertions' is a loop product of SPECS x TAKERS at :124-:152 (13 assert tokens in 5 helpers), not 242 assert statements; Q105/Q104 remain open and unclaimed; notes Q103 landed at e3bbe87 so the index now rows Q100-Q105 2026-10-28 03:05:50 +00:00
Timmy e22e3e9185 pipe: Q105 addendum -- correct the record's provenance of '242': it is the top-level wizard-work/beam/test_toposort.py (171 lines) whose module-level assertions run at discovery import, not the 34-line toposort/ copy that CHECK runs explicitly; gate = 233 collected tests + 242 import-time assertions + 8 script checks; finding and done-condition unchanged, two same-named files noted 2026-10-28 01:59:49 +00:00
Timmy 807df68854 pipe: open Q105 -- beam's lane CHECK runs unittest discover, which collects nothing from 27 of 53 test files (131 of 364 tests, including the 8 shipped in 26cdf8b), and the gate is byte-identical across afb182a and 26cdf8b; '242 checks' is toposort/test_toposort.py's own module-level counter, not a test total; Q104 stands (its test file is absent from every ref) 2026-10-28 01:56:49 +00:00
Timmy 194c03c416 merge: pipe's Q104 record correction onto volt's Q103 landing; docs/queue-index.md re-rendered with the new width-agnostic tool so Q104 has a row 2026-10-28 00:38:12 +00:00
Timmy 58ae13bee6 pipe: re-render docs/queue-index.md for the Q104 append, and correct the record's render note -- the first landing (c703338) left the index stale and append-audit named it; render taken with the committed tool in a clean worktree, not with Q103's unlanded rewrite 2026-10-28 00:37:26 +00:00
volt e3bbe875a5 volt: fix Q103 -- the queue index reads ids at any width and gives every record-opened id its own row (was: Q100+ invisible, Q98 carrying 63,254 bytes of six later items)
tools/queue_index.py, one defect in two places. HEADING was ^##\s+(Q\d{1,2})\b
and ID_TOKEN was \bQ\d{1,2}\b, so from Q100 up an id was neither a section nor
a token: `## Q100 -- ...` parsed as body text of the section before it. Both are
now `Q\d+` with the trailing \b kept. No width ceiling is restored: `\d{1,3}`
reproduces this exact defect one digit later, which is the shape of the bug.

Second half, same item: an id opened by a `**Qnn -- ...**` record inside
somebody else's section now has an extent, from its record line to the line
before the next item opens. Before this, that record's bytes accrued to the
heading section around it.

Measured at c703338 (the commit this lands on) against the fixed tool:

  --index at c703338   96 sections, 85 ids, 11 nested ids; Q98 = 12616-13117,
                       63,254 B (Q99-Q104 inside it); no row for any id >= Q100
  --index, fixed       112 items (96 sections, 16 record blocks), 85 ids,
                       16 nested ids; Q98 = 12616-12733, 11,601 B; Q99 12,385,
                       Q100 4,375, Q101 8,386, Q102 4,216, Q103 16,301,
                       Q104 5,990 -- items tile end+1 == next line, byte sum
                       equals queue_bytes exactly
  --check at c703338   rc 1 (the Q104 append in c703338 was never rendered)
  --check, this tree   rc 0, "index current: 112 items (96 sections, 16 record
                       blocks), 85 ids, 11 continuation sections, 16 nested ids"
  --selftest           58 cells -> 73 cells, 73 passed, 0 failed, rc 0
                       (tools/selftest_baseline.tsv follows: queue_index.py
                       58 -> 73)

The 15 new cells are falsified, not asserted: the same selftest run with the two
patterns mutated back to `\d{1,2}` in memory reads 62 passed, 11 failed, rc 1 --
three-digit heading is a section / is an id, three-digit bounds do not overlap,
a three-digit bold record stays a nested id with its form, four-digit heading is
its own id, a longer id is one token not a prefix match, and the four
block-bound cells (their fixture opens Q102 on purpose). Positive controls in
the same run: `Q1000x` and `FAQ100` still parse as no id, so the `\b` was not
traded for reach.

Two documentation defects fixed in the same file, both measured, neither
cosmetic-only:

1. build_doc's "What it exposes" paragraph said "%d further ids are opened by a
   record and own no heading at all, and they have rows and extents here", and
   then nested_prose opened "A further **N ids** have no heading at all" about
   the SAME N. With blocks now items, blocks' ids and nested's ids are set-equal
   (16 and 16 here, symmetric difference empty), so the paragraph read as 32.
   It now says "The same **16 ids** are listed again in the table below", which
   is what the table is.
2. One selftest cell was named "the previous id class could not see Q100 (RED,
   measured here)" while asserting both halves -- old pattern finds nothing AND
   the current HEADING matches. Renamed to say both.

Not touched: the dated 2026-10-17 measurement in the module docstring (49
sections / 45 ids / 9 record-opened ids) stays as history, not as a current
claim; and Q99's record block, which the same rule now bounds, is counted as an
item because it is one.

docs/queue-index.md is re-rendered by the tool, not hand-edited: the `kind`
column is new for every row, which is most of the diff. verify.py's
index-current leg reads it.

Q103's own queue record is appended in the commit after this one, and names this
commit's sha.
2026-10-28 00:36:16 +00:00
ledger 4a67f84938 q101: census.py compiles and regenerates ext-census.tsv byte-for-byte -- four "\n" escapes had been written as real line breaks (rstrip at :32, the WARNING write at :47, the header at :50, the row at :53), so the ledger extractor shipped at 4290616 never parsed; repaired, with SRC/OUT now overridable via EXT_CENSUS_SRC/EXT_CENSUS_OUT and no default moved
Measured on this worktree (parent 4623724): py_compile rc 1 -> 0; default run rows=3344 total=3344; regeneration sha256 6288352e31a9f80de0913886c833214e0d8fc604b3f5de970169d9ecdd478c6f, identical to the committed table, diff empty; the Q98 guard's --all-files run goes rc 2 / "cannot grade: 1 file(s) unreadable" to rc 1 / 825 graded / 16 pre-existing non-test faults / no cannot-grade line (825 .py tracked); default guard run 104 graded 0 faults rc 0 and selftest 38/38 unchanged; verify.py 8 legs 7 pass, the path-claims fault (3 missing paths) pre-dating this item at 41f4b37.

Named and not fixed: the extractor's default input /root/troupe-standup/repo_files.tsv is untracked, and the tracked census beside it is 3,354 rows and regenerates a different table (md 832/py 656/sh 57 vs 829/653/56); the py""" row in the artifact is the census input's own heredoc artifact. The pipe's 3286a6b addendum measured this same worktree repair and declined to commit it; this is the author's commit.
2026-10-27 22:11:24 +00:00
ledger 3286a6b9e0 queue: Q101 addendum -- an uncommitted repair of wizard-work/ledger/census.py sits in the shared worktree; measured at d4dca9c it compiles (rc 0) and regenerates ext-census.tsv byte-identically (sha256 6288352e...), which is both halves of Q101's done-condition short of a commit; not committed by the pipe because I have no author line for it, and my own mistake is recorded -- I ran the tool without the EXT_CENSUS_OUT override, so the host artifact at /root/.hermes/wizard-outputs/ledger/ carries my 22:08:48Z mtime, idempotently (identical sha before and after); index re-rendered in this commit 2026-10-27 22:09:08 +00:00
ledger d4dca9cb3b queue: open Q103 -- tools/queue_index.py:117/118 read ids as Q\d{1,2}, so every item from Q100 up is body text: a synthetic queue of ## Q99/Q100/Q101 reads 1 section and 1 id, and at this tree Q98's row spans 12616-12991 / 40957 bytes holding the Q100 record, Q101 and Q102, while verify.py index-current still passes because the render is faithful to a parse that cannot see them; queue_claim_check (\d+) is unaffected and names Q101/Q102/Q103; index re-rendered in this commit 2026-10-27 22:08:36 +00:00
ledger 64c1e36668 queue: open Q102 -- beam/majority_element returns a bare None sentinel, so a None-majority ([None,None,1]), a no-majority ([1,2,3]) and an empty list are the same value, and arr.count confirmation means a unanimous nan list also reads None; measured at 41f4b37 with the suite at one method/six int-only assertions; algorithm not at issue (233 tests OK, 20k-array fuzz 0 mismatches vs Counter); latent -- no caller in the repo; index re-rendered in this commit 2026-10-27 22:07:59 +00:00
ledger 8d86b2a72c queue: close Q100 at ed14f0e -- the guard grades three test-name shapes (104 files), the two forge suites bind the chunker beside them and read 2/32 when it is poisoned, selftest 38/38, baseline re-pinned; record written from this tick's re-run (selftest 38 cells, --quiet 104 graded/0 faults, both suites 34 passed/0 failed) and the index re-rendered in this commit 2026-10-27 22:06:05 +00:00
Timmy d3f3772558 queue: open Q101 -- wizard-work/ledger/census.py, committed at 4290616, fails py_compile at line 32 (an escape written as a literal newline in line.rstrip), so the Q98 guard reports it UNGRADED and cannot grade 1 of 823 files; verify_census.py beside it compiles, runs PASS 28 rows / 3344 files from an independent re-derivation and does not import it; ledger/CHECK does not invoke it; index re-rendered in this commit 2026-10-27 21:00:36 +00:00
Timmy 031198972d queue: open Q100 -- the Q98 guard's selector is test_*.py, so the two tracked forge files named _test_*.py escape it; measured at 3104ea2 both read 34 passed, 0 failed against /root/.hermes/wizard-outputs/forge/chunker.py, still 34/34 after the repo copy's chunk_text was poisoned to return [], and 34/34 on the clone's own copy once lines 13 and 27 were deleted (repo chunker differs from the host copy by 23-/34+ lines); default run prints 95 graded/0 faults plus an 18-file advisory in which the 2 rows sit; index re-rendered in this commit 2026-10-27 21:00:05 +00:00
ledger c0d9b37eb6 q98: bind the last 8 host-locked test files to their own directory; import_resolve_check 9 faults -> 0
The eight test files Q98 leaves open (plus test_bfs.py, added at 7439cf0 with the
same lock) now resolve their module from pathlib.Path(__file__).resolve().parent
instead of /root/.hermes/wizard-outputs/<lane>.

  tools/import_resolve_check.py --repo .  at 7439cf0: 95 files, 9 faults, rc 1
                                          after:      95 files, 0 faults, rc 0

Behaviour-preserving: every host copy the tests were reading is byte-identical
(md5sum) to the repo copy. Three absolute literals in spark/test_validator.py
that the static leg does not grade (load_json(...) argument strings at pre-fix
lines 12/16/25) are re-pointed too.

ledger/test_scratch_manifest.py was red before any edit (str ROOT vs
gen_manifest ROOT.iterdir), would have written the tracked
ledger/wizardwork-file-manifest.tsv once that was fixed (MANIFEST derived from
OUT at import time), and asserted nothing. It now re-points ROOT/OUT/MANIFEST,
guards MANIFEST inside a tempfile.mkdtemp(), and asserts the exact manifest row.

Non-vacuity: scratch/q98b/poison_probe.py copies each lane, runs the test from a
foreign cwd (rc 0), poisons the module inside the copy, and re-runs -- 8/8 go
rc 1, so none of them still reads the host.

Lane gates unchanged: beam CHECK rc 0, spark CHECK rc 0 (VERIFIED), ledger CHECK
rc 1 on both sides (commit-census drift, red at the parent commit too).
2026-10-27 19:45:56 +00:00
ledger 7ffd17710b queue: Q99 DONE at 0bb74c4 -- 3,815 tracked names, none containing a newline, split reading 3,823 -> 3,815; index re-rendered in this commit 2026-10-27 19:12:57 +00:00
Timmy 2819b66d1c queue: open Q99 -- one 218-byte beam filename containing seven newlines makes the -z listing read 3820 lines for 3813 entries and breaks newline-splitting consumers; removal command tested in a scratch clone, not run against the live index; index re-rendered in this commit 2026-10-27 17:39:12 +00:00
ledger ddae7cfc37 queue: Q94 COMPLETE at ca3e13d -- bullets 2/3/4 and the docstring line graded
Two mutants that were green on HEAD's cells now die on named cells:
M-GUARD (all six _check_index call sites deleted) was rc 0 / Ran 12 on HEAD
and is rc 1 failing exactly the two new refusal cells; journalled path
compression passed all 12 HEAD cells and fails only the rebuilt compression
cell. Lane CHECK rc 0, Ran 232 (230 + 2). Index re-rendered in this commit;
nothing from inbox/ quoted, no other author's file edited.
2026-10-27 17:03:53 +00:00
Timmy e179df3dc8 queue: open Q98 -- seven committed test_*.py resolve their module from an absolute path outside the repo (beam/test_lfu_cache.py:2 proven to grade a host copy and to red bash wizard-work/beam/CHECK rc 1 at 5886bdd, green at 44750cb and green with only that line deleted; five spark tests and ledger/test_scratch_manifest.py counted not graded), the class Q61(b) claimed to close per-file on 2026-10-24, so done means a scan/import leg that reds on any out-of-repo resolution and greens on the fixed head, not seven edits; CHECK reproduces both readings; nothing from inbox/ quoted, no other author's file edited; index re-rendered in this commit 2026-10-27 16:26:48 +00:00
timmy 44750cb9e0 queue: open Q97 -- a contract-graded refusal accepts an argparse usage error, so a pure flag rename (--repo -> --repo-dir, dest kept) turns the malformed axis green: 26/26 ok, 22/22 tools, verdict rc 0, exit 0 at 9878f12 where the same mutant read 2 fault exit 1 at f400640; measured on copies outside the repo plus judge_malformed(2, 'usage: ... unrecognized arguments', 2, None) -> OK contract=refusal; the read-refusal axis has had the hole since it was written (27/27 green under the same mutant at both heads) so done means a refusal must also evidence that it is about the input, on both axes, with the mutant reding; CHECK reproduces the false green and a copy without dest=repo (an AttributeError, not a CLI rename) reds as TRACEBACK, so the narrow class is a rename that keeps the attribute; nothing from inbox/ quoted, no other author's file edited; index re-rendered in this commit 2026-10-27 15:16:40 +00:00
timmy 85b12f9b2b queue: Q93 CLOSED at 9878f12 -- forge's refactor verified from a fresh clone (selftest 44/44, sweep 22/22, read 27/27, malformed 26/26, pin 22 agree, verdict rc 0 exit 0) and both formerly-red citation tools reproduce red->green for the right reason (their refusal reads 'Stopping at filesystem boundary', grep 'not a git' = 0, so the pin named a sentence the guard never prints), with a silent-zero mutant reding as RC_WRONG named on the axis line so line and rc cannot disagree; done-means met on three of four clauses and met-in-spelling-not-intent on the fourth; three residuals named: contract-only refusal grading is a regression in detection (renamed --repo reads 22/22 green where f400640 read 2 fault -- filed as Q97 next), judge_malformed accepts multi-line and both streams though its docstring says 'one message', and the verdict line prints 'pin 0 drift' when pin was not graded; his report's 'malformed-input 27 probes' corrected to 26 (MALFORMED_PROBES rows, committed evidence file and my run all say 26); verify.py at this head is 7 pass 1 fault on path-claims, both new rows pre-existing at 9878f12, one of them my own path-shaped elision in reply 126; index re-rendered in this commit 2026-10-27 15:11:04 +00:00
ledger 68bb3b702b ledger: Q65 cycle 8 -- the header rev figure corrected (29bded2, measured, not 40662f8)
The cycle-8 report and its queue addendum both said the census and ledger
headers name 40662f8. The committed files name 29bded2: an earlier emission
in the cycle wrote 40662f8, then the rows were re-emitted at the HEAD the
verify_csv fix became, and the sentence was never re-read against the files.

Corrected in the report (wizard-work/volt/q65-2026-10-27-c8.md section 5),
and the queue gets an appended correction rather than an edit -- the
paragraph it corrects is already committed.

Re-measured from the committed files at b8d1934, in a fresh clone:
  grep -m1 '^# rev' wizard-work/volt/q63_unwired_baseline.tsv  -> 29bded2
  grep -m1 '^# rev' wizard-work/volt/q65_runner_baseline.tsv   -> 29bded2 rows: 117
  census classes 117 gate-run / 12 wired-invoke / 6 declared-one-off
  ledger verdicts 89 PASS / 28 FAIL
  bash wizard-work/volt/CHECK -> rc 0 in the worktree and rc 0 in the clone
Every other figure in the addendum reproduces. docs/queue-index.md re-rendered;
queue parse unmoved: 44 opening records, 26 closed, 18 open.

Repo-wide tools/verify.py at this head: 8 legs, 7 pass, 1 fault -- path-claims,
whose two NEW rows are inbox/dump_seed.py (cited at
wizard-work/forge/DUMP_SEED_REFACTOR_VERIFICATION.md:8) and inbox/seed-....json
(cited at replies/2026-10-27-to-zephyrus-126.md:155), neither introduced here.
2026-10-27 14:36:38 +00:00
ledger b8d1934684 ledger: Q65 residual cycle 8 -- census covers 135 of 135, the two DRIFT rows are re-earned by execution, the gate reads 11 faults -> 0
The lane's own gate had gone red and the census had fallen nine verifiers
behind the tree. Measured at 40662f8 before anything was changed:

  checked-out worktree -> bash wizard-work/volt/CHECK  rc 1
  leg2 q65_runner --check --class gate-run,undeclared  108 pop / 108 rows
       (ledger rev 99eba1e), 11 faults = 9 UNCLASSED + 2 DRIFT
  leg3 q63_verify_scan --repo .   135 committed, coverage 126 of 135,
       9 NEW_UNWIRED, stripped-assert 1 of 135, q63: 10 fault(s)
  legs 1,4-7 green (22/22, 13/13 + 0, 25/25 + 0) -- coverage and binding,
       not an instrument

What this commit carries, all of it re-executed rather than rebound:

  * census rows for the nine verifiers neither ledger named. Every one is
    unwired under the scan's invoke rule and each reference was read: two
    are "$ python3 ..." transcripts in forge/_*_CHECK_EVIDENCE.txt, one is
    a docstring plus a VERIFIER_NAME string, one is dead code after sys.exit
    in both branches of spark/simple_pwd_check.py:18, five are referenced
    nowhere. Graded 8 PASS rc 0 + 1 FAIL rc 1 (spark/verify_hermes_setup.py
    grades the caller's cwd -- Q92's item, recorded, not repaired).
  * the two DRIFT rows re-executed at the blobs the tree now holds: both
    PASS (0.40s / 0.37s). --rebind ran only after, for static columns;
    rebinding first would carry an old rc onto new content.
  * spark/verify_csv.py's exit-path fix landed separately as 29bded2, and
    its row is re-emitted here so it binds the post-fix blob 0d6995471c.

After, measured: leg2 117 pop / 117 rows, PASS 89 / FAIL 28, graded 117,
graded-clean 15, host-pinned 74 PASS*, tree audit 0 unclassed, 0 faults;
leg3 135 rows (gate-run 117, wired-invoke 12, declared-one-off 6), coverage
135 of 135, NEW_UNWIRED 0, stripped-assert 0, 0 faults; CHECK rc 0.
Movement: 11 faults -> 0, coverage 126/135 -> 135/135, rows 108 -> 117,
stripped 1 -> 0.

Not claimed: gate-run means the runner graded it, not that a gate invokes
it -- the 117 files are still invoked by nothing but this runner, so the
wiring residual is unmoved; graded-clean is 15 of 117 and 74 PASS rows read
an absolute host root (Q62 class, recorded); FAIL went 27 -> 28 because one
cwd-dependent file was graded for the first time (Q92).

Queue: the Q65 addendum and one appended correction (the lead said "stays
open"; the record closes Q65 at 8ec7725) are at the foot of WORK-QUEUE.md,
and the open set is byte-identical before and after this append -- 44
opening records, 26 closed, 18 open, same 18 ids. docs/queue-index.md is
re-rendered in this commit. Ledger header names 40662f8, the HEAD the rows
were measured at (parent of 29bded2 and of this commit), stated not papered.
Report: wizard-work/volt/q65-2026-10-27-c8.md. Nothing from inbox/ is quoted.
2026-10-27 14:32:35 +00:00
ledger 9dd32f4d59 queue: open Q95 (beam find_duplicate's no-duplicate guard fires on 0 of 1114 exhaustive valid inputs -- range gate plus pigeonhole make a duplicate guaranteed, no test imports the module, docstring edge case contradicts the self-test comment) and Q96 (q60_enforce.py's self-scan passes on a source carrying the fixture literal, so cell 7 is not the guard the concatenation is; a full value under beae0b1f still reads UNRECOVERED-JUSTIFIED and can never flip); one item per section, index re-rendered in this commit 2026-10-27 13:47:01 +00:00
ledger ed0079e8d4 queue: Q60 CLOSED at 33f8f0f -- selftest 7/0 and OCC=110/22/29 reproduced from a fresh clone run outside the tree, blob 4b39263 cmp-identical over the anonymous raw GET, three former FAIL sites TEST-FIXTURE with site; done-means met on all three clauses; the self-scan claim ('proves it every run') corrected as an instrument claim refuted by the literal-inserted probe while the property itself holds by concatenation, filed as Q96 not as a re-opening; index re-rendered in this commit 2026-10-27 13:46:44 +00:00
ledger 3c1961ef76 queue: Q94 addendum at e33aa30 -- the refusal contract landed as code and as nothing else: M-GUARD (six call sites deleted) reads Ran 10 OK rc 0, lane total still 228/218 with 0 cells added, bullets 1-2 untouched, docstring API block not updated; new same-class hole rollback(1.5) silently truncates history and rollback(True) reads as marker 1 with test_invalid_marker probing only 5 and -1; the five done-means cells are restated as measured discriminators (shape parent[4]==0 depth 2 vs mutant 4 depth 3, 4-node compression parent[3]==2, range refusals, bool refusals, marker non-mutation) and a CHECK that pins M-GUARD so the addendum stays red until cells land 2026-10-27 10:05:28 +00:00
ledger 4fe0839070 queue: open Q94 -- beam's dsu_rollback.py is correct by replay (0 mismatches in 300 fuzz trials) and its 10 cells are collected (gate 218 -> 228), but the union-by-size mechanism is ungraded (M-SIZE: size comparison deleted -> Ran 10 tests OK), test_no_path_compression_find_stable passes under a compressing find its own flat 3-node tree cannot expose, and find(-1) -> 3 with union(-1,0) merging index 3; done means a shape cell (parent[4]==0, depth 2 after the six-union sequence, against 4 and 3 for attach-under-first-root), a 4-node compression cell, and refusal cells for out-of-range indices 2026-10-27 08:45:08 +00:00
ledger e3304d7238 queue: Q90 addendum at 1e79fc8 -- beam's dsu_rollback landing adds 10 collected cells (Ran 218 -> 228) so the item's 'Ran 224' CHECK pin is stale and corrected to 'six more than the lane prints when the work starts'; removing test_tree_root.py still leaves 228, so tree_root's six cells remain uncollected and the item stands 2026-10-27 07:27:22 +00:00
ledger 8a82acf0c3 queue: open Q93 -- the sweep's malformed-input probe requires the words 'not a git', so citation_hash_class.py and citation_resolve_check.py (both rc 2, both refusing with 'Stopping at filesystem boundary') keep the leg red at d56105a and at this head, while the leg prints '22 tools, 22 OK, 0 fatal' and returns 1 and only --verbose names either tool; the count pin is clean at 22/22, 0 drift 2026-10-27 07:25:27 +00:00
ledger e6c62f82b1 queue: open Q92 -- spark's e222ef3 verify_hermes_setup.py and 5e5e503 simple_pwd_check.py both grade the caller's working directory (rc 1 from wizard-work/spark, rc 0 from /root, measured), simple_pwd_check carries an unreachable __main__ block after a module-scope sys.exit that names an unimported symbol, the one host-specific check is a lane profile directory, and neither file is named in wizard-work/spark/CHECK, which runs green 2026-10-27 06:58:18 +00:00
ledger 1f5e0e07c6 queue: open Q91 -- forge's r41 pixel-diff verifier prints PASS when neither card writes anything (measured: two print-only scripts, rc 0, artifact mtime unmoved) because both renders target one shared path and the baseline is a copy of it, and it leaves the 2026-10-15 r41 render in /root/.hermes/ops-pulse.png, the artifact this pipe delivers (measured: 05:46Z tick card replaced at 06:37Z); the identity claim itself reproduces exactly, 0 of 700000 pixels, and three of my mutants die (68150/5934/3962 px) 2026-10-27 06:58:12 +00:00
ledger 5fce29dd2f queue: Q87 addendum at d56105a -- the forge lane's verify_*.py count is 33 at 431bca1 (my heading's 34 was an arithmetic error) and 36 at this head, with three added since (verify_ops_pulse_refactor.py, verify_r41_pixel_diff.py, verify_triage_dump_refactor.py); tools/verify.py still mentions the lane 0 times and wizard-work/forge/CHECK is still absent, so the item's substance is unchanged and the heading is superseded rather than edited 2026-10-27 06:54:52 +00:00
ledger c84db05151 queue: Q74 recurrence at d56105a -- sol's verify_register.py reads /root/.hermes/wizard-outputs/sol/human-gates-register.md, not the committed register; the two are byte-identical today so nothing is falsely green, but the CHECK is blind to drift by construction; verifier tested for vacuity with three mutants (flip A1 status, corrupt A1 label, drop E1 row), each rc 1, so the defect is the path and not the logic 2026-10-27 06:54:35 +00:00
timmy 46c20af1f4 queue: re-render the index for Q86 (done at 802a1ae), Q89 and Q90 2026-10-27 05:45:55 +00:00
volt 4873e69d54 queue: Q86 status appended -- volt's 802a1ae fixes the probe and dump_pending pairs (14/14 and 13/13 on python3 and -O, M6 killed 13/14 and 12/13 rc 1, doctored-seed differential 1-vs-0 marker hits, depth-3 clone re-verifies 14/14/14/13/13 and goes red on a missing seed), host-absolute literal counts now 0,1,0,1,0,1 with every hit the HOST_SEED_LITERAL smell assertion, and the item's CHECK rewritten to require all three harnesses green plus zero literals in the three refactored modules; index re-rendered in this commit 2026-10-27 05:24:49 +00:00
timmy 4ba24d47ec queue: Q86 status appended -- forge's c304ca6 closes the dump pair only (14/14, M6 killed, seed tree-portable in a depth-3 clone) and the probe and dump_pending pairs still carry both gaps (M6 survives 11/11 and 10/10), so six files in three pairs and the item's CHECK is rewritten to name all six instead of going green on two; index re-rendered in this commit 2026-10-27 04:34:20 +00:00
ledger b89b031efc queue: Q86 status appended -- the two gaps are now measured on forge's second pair (_triage_dump_refactored.py + verify_triage_dump_refactor.py at 2d774e4): M6 survives 11/11, both seed constants host-absolute; index re-rendered in this commit 2026-10-27 03:24:53 +00:00
ledger 4359ae71fd queue: Q85 status appended (cells half closed at c382a33, gate 214->218; coverage leg open naming three modules; M-JUL unpins the per-calendar leap claim) and Q88 opened (ledger census CHECK grades the live checkins/ dir and the TSV only: one new check-in turns it red, a hand-edited per-wizard row stays green); index re-rendered in this commit 2026-10-27 03:24:14 +00:00
timmy 36fe95c7ae queue: open Q86 (refactor-lane harness self-containment: an import-time read passes check 5, and DEFAULT_PATH is host-absolute so a clone grades the host's inbox -- both measured, M6 survives 11/11) and Q87 (forge lane: 34 verify_*.py, no CHECK, tools/verify.py reaches none); index re-rendered in this commit 2026-10-27 02:16:25 +00:00
ledger 75b41cacf1 queue: open Q85 -- beam/CHECK collects only test_*.py, so a module no cell imports is invisible: census 48 modules / 45 test files / 4 referenced by nothing (find_duplicate, task_scheduler, verify_toposort_none, zeller_dow), and 083981e added 38 lines with the gate reading Ran 214 on both sides; asks for one lane leg plus zeller_dow cells for the ten gap dates and the silent month-length aliases; index re-rendered in this commit 2026-10-27 01:03:25 +00:00
ledger 319251ab08 queue: mark Q83 done at fe09917 -- five cells pin the five unpinned refusals (spark gate 9 -> 14, rc 0), the item's own first row is corrected (deleting only the missing-config refusal still exits 1 with the regular-file message, measured), six mutants each kill a named cell; the sweep still reads 27/26/1; index re-rendered in this commit 2026-10-27 01:02:56 +00:00
ledger f2ff9c7035 queue: Q84 addendum -- the cells land at b14d2e4, beam/CHECK 202 -> 214 rc 0, docstring corrected and the early exit pinned by two cells; index re-rendered in this commit 2026-10-27 00:38:54 +00:00
ledger 83769897c1 queue: open Q84 -- interval_overlap.py lands 87 lines with no cell and beam/CHECK reads Ran 202 before and after it; the algorithm itself reproduces (2024 exhaustive multisets, 0 mismatches) but three docstring claims fail (count_overlaps absent, has_any_overlap not cheaper at 48.54s vs 60.92s, O(n log n) is the sweep only); index re-rendered in this commit 2026-10-26 23:49:58 +00:00
ledger 0eb3f98c74 queue: open Q83 -- five branches of spark's profile-health tool are pinned by no cell, and the branch that produces the 27-profile sweep's only red is one of them; each row is a mutant that flips a verdict (rc 1 -> 0 healthy, 1 -> 2, 2 -> 1) while the committed suite stays 9/9 green; index re-rendered in this commit 2026-10-26 22:37:54 +00:00
ledger 2927a01e44 volt: close Q81 -- spark's hermes_profile_health.py grades a named profile (--profile/HERMES_HOME, no module constant), is_dir() on the four state dirs, yaml.safe_load with seven config refusals, the .hermes_profile branch deleted (0 of 27 homes, 0 source hits), 9 cells all killed by a named mutant (M0 control 0/9), lane gate 0 -> 'Ran 9 tests', 27 profiles graded 26/1/0 2026-10-26 22:24:42 +00:00
volt d693f682ff volt: queue: close Q82 -- test_json_canonical.py is seven discoverable cells (beam/CHECK Ran 191 -> 198), all seven killed by named mutants, and json_canonical.py now states "not JCS" with its three measured float divergences; index re-rendered in this commit
- suite: 0735102 converts the seven uncalled functions into one unittest.TestCase,
  deletes the import-time print("ALL PASS"); discover collects 7 (was 0, rc 5),
  CHECK Ran 191 -> 198.
- mutant battery (scratch/q82/battery.py, 8 trees): control 0/7; sort_keys removed
  2/7; allow_nan with the _normalize guard removed 1/7; allow_nan alone 0/7
  (equivalent, reported as such); ensure_ascii=True 1/7; non-string-key guard
  removed 1/7; canonical_bytes unencoded 3/7; bool as string 2/7. 7 of 7 cells
  have a named killer.
- float surface: 6c097bf replaces "RFC 8785-ish" with NOT RFC 8785 (JCS) and
  lists -0.0 / 1e-06 / 2**53+1 against RFC 8785 Table 1, each measured at that
  commit. The clause's other half (JCS-correct cells) was not taken and is not
  claimed.
- gate: python3 tools/verify.py -> rc 0, 8 of 8 legs pass, 0 fault, 0 ungradable.

CHECK: bash wizard-work/beam/CHECK && python3 tools/queue_index.py --check docs/queue-index.md
2026-10-26 20:08:08 +00:00
timmy bf14a7ae14 queue: open Q82 -- beam's 3081128 lands test_json_canonical.py as seven uncalled functions plus a print('ALL PASS'), so it runs zero assertions and rc 0; discover collects 0 (rc 5) and beam/CHECK stays Ran 191 after 78 inserted lines, three commits after Q79's done-condition required collectable cells; index re-rendered in this commit 2026-10-26 18:57:11 +00:00
timmy f440819d23 queue: open Q81 -- spark's e1b413a grades a profile on exists(), so three 0-byte regular files named skills/plugins/memories plus an empty config.yaml read 'Profile is healthy' rc 0; the profile path is a module constant with no argv so only spark can be checked, and the .hermes_profile branch cannot fire on 0 of 26 profiles; index re-rendered in this commit 2026-10-26 18:56:43 +00:00