From d00a103f204d821f95341d355f34cb0bc834c69f Mon Sep 17 00:00:00 2001 From: volt Date: Sat, 24 Oct 2026 21:21:15 +0000 Subject: [PATCH] volt: census names the rev it read, and re-emits at 2843d50 The census had no rev, so its classes read as current forever -- the archive rule it exists to enforce. emit_baseline now writes the short sha into the header. Re-emitted after the four graded rows landed: gate-run 71, wired-invoke 4, declared-one-off 8, undeclared 5 (88 rows, 88 committed verifiers at 2843d50). The 5 undeclared are the TIMEOUT rows: executed, no rc, so not graded and not tolerated as clean. --- wizard-work/volt/q63_unwired_baseline.tsv | 7 ++++--- wizard-work/volt/q63_verify_scan.py | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/wizard-work/volt/q63_unwired_baseline.tsv b/wizard-work/volt/q63_unwired_baseline.tsv index 2030df4..28ada65 100644 --- a/wizard-work/volt/q63_unwired_baseline.tsv +++ b/wizard-work/volt/q63_unwired_baseline.tsv @@ -1,5 +1,6 @@ # Q63 verifier census -- one row per COMMITTED verify_*.py at the rev the # scan read, class plus the evidence the class rests on. +# rev: 2843d50 (the tree these classes were read at) # row: TAB TAB (three tab-separated columns) # class gate-run = q65_runner.py executed it and recorded an rc (Q65); # class wired-invoke = a committed line invokes it (the ref is the evidence); @@ -30,7 +31,7 @@ gate-run wizard-work/forge/verify_path_claim_dry_refactor.py q65:FAIL gate-run wizard-work/forge/verify_pdf_refactor.py q65:PASS gate-run wizard-work/forge/verify_queue_append_audit_dry_refactor.py q65:FAIL gate-run wizard-work/forge/verify_reply_check_dry_refactor.py q65:PASS -undeclared wizard-work/forge/verify_roundtrip_refactor.py no invocation, no declaration, no graded run +gate-run wizard-work/forge/verify_roundtrip_refactor.py q65:PASS gate-run wizard-work/forge/verify_selftest_sweep_dry_refactor.py q65:FAIL undeclared wizard-work/forge/verify_selftest_sweep_refactor.py no invocation, no declaration, no graded run gate-run wizard-work/forge/verify_served_drift_summarise_dry.py q65:PASS @@ -38,11 +39,11 @@ gate-run wizard-work/forge/verify_tool_map_dry_refactor.py q65:PASS gate-run wizard-work/forge/verify_write_probe_dry_refactor.py q65:FAIL gate-run wizard-work/ledger/verify_arxiv_csai.py q65:PASS gate-run wizard-work/ledger/verify_arxiv_csai_fresh.py q65:PASS -undeclared wizard-work/ledger/verify_arxiv_csv.py no invocation, no declaration, no graded run +gate-run wizard-work/ledger/verify_arxiv_csv.py q65:PASS gate-run wizard-work/ledger/verify_arxiv_fresh.py q65:PASS gate-run wizard-work/ledger/verify_catalog.py q65:PASS gate-run wizard-work/ledger/verify_gitea_repos.py q65:FAIL -undeclared wizard-work/ledger/verify_github_python_repos.py no invocation, no declaration, no graded run +gate-run wizard-work/ledger/verify_github_python_repos.py q65:FAIL declared-one-off wizard-work/ledger/verify_github_repos.py in-file declaration gate-run wizard-work/ledger/verify_issues.py q65:PASS gate-run wizard-work/ledger/verify_python_org_repos.py q65:FAIL diff --git a/wizard-work/volt/q63_verify_scan.py b/wizard-work/volt/q63_verify_scan.py index 1970211..30f8772 100644 --- a/wizard-work/volt/q63_verify_scan.py +++ b/wizard-work/volt/q63_verify_scan.py @@ -429,10 +429,18 @@ def _short(line, limit=96): return s if len(s) <= limit else s[:limit - 3] + "..." -def emit_baseline(rows, path, gate=None): - """Write the census: one row per verifier the scan saw, with its evidence.""" +def emit_baseline(rows, path, gate=None, rev=None): + """Write the census: one row per verifier the scan saw, with its evidence. + + `rev` is written into the header as a short sha. A census is the class a + file held WHEN THE SCAN READ THE TREE; without the rev the same row set + reads as current forever, which is the one thing this archive does not + allow (Q63 reply: any closure must state its commit). + """ gate = gate or {} + rev = rev or "unknown" out = list(BASELINE_HEAD) + out.insert(2, "# rev: %s (the tree these classes were read at)" % rev) for r in sorted(rows, key=lambda r: r["path"]): if r["path"] in gate: cls, ev = "gate-run", "q65:%s" % gate[r["path"]] @@ -591,7 +599,11 @@ def main(): return 2 if a.emit_baseline: gate, _ = read_gate(a.gate) - emit_baseline(rows, a.baseline, gate) + try: + sha = git(a.repo, "rev-parse", "--short", a.rev).strip() or a.rev + except RuntimeError: + sha = a.rev + emit_baseline(rows, a.baseline, gate, rev=sha) return 0 gate, ungraded = read_gate(a.gate) faults = report(rows, read_baseline(a.baseline), a.rev, a.verbose, gate, ungraded)