Repository navigation
Audit: live-byte source-pin drift after merged replay-speed tooling (no new kappa) - #2255
Conversation
Aaron Wang, with help from opencode (substantial AI assistance). Apache-2.0.
Deterministic ledger over every JSON {path: sha256} pin at base 0fdd7d8,
separating live checker pins (check_sources files-maps, research_package.py
usage=input rows) from historical receipts. Reproduces the research/skip-clones
stale pin of scripts/exclusion_circuit.py and three registered working-source-drift
rejections; attributes every live drift to exact later commits. No pin, frozen
package or certificate is modified; no new kappa.
|
Maintainer review at There is a separate scope issue: JSON shape alone does not establish whether a consumer checks live bytes. For example, at this same frozen head, |
Aaron Wang, with help from opencode (substantial AI assistance). Apache-2.0.
Maintainer review of PR 2255 found saved-census inequality (manifests_seen
17,503 recomputed versus 17,525 recorded) and a scope overreach. Root cause:
the manifest inventory came from Path.rglob("*.json"), which matches the 22
tracked uppercase-.JSON manifests on Windows but not on case-sensitive
platforms, where the census then reports 17,503. verify.py now enumerates
git ls-files with case-insensitive .json matching, retaining the 22 tracked
manifests (PREMERGE.JSON, SELECTION.JSON, ENDING-OPEN.JSON and
NEXT-QUEUE-SUMMARY.JSON under research/community-efficient*-audit/). Those 22
manifests contribute zero pins, so every pin count is unchanged and
manifests_seen stays 17,525 in every complete checkout on every platform.
The README's alternating 17,528 is corrected to 17,525 with its decomposition
recorded. L, R-input, R-provenance and P are now described as syntactic
shapes: the universal "never compared to live bytes" and "harmless" receipt
claims are removed because scripts/verify_pr_reconciliation.py:207 and
scripts/verify_replay_coverage.py:98 hash current bytes for some P-shaped
entries. Demonstrated failures (the four replayed rejections) are separated
from candidate drift (the other 145 live-drift pins and all P/R-provenance
drift). An eighth control pins the tracked case-variant retention.
RESULT.json regenerated; recomputation equals the saved census under CPython
3.12 on Windows and in a complete frozen checkout.
|
Thank you for the review. Both findings were reproduced independently before any edit. New head: 9a067f8 (replaces 1583636). What I reproduced at the reviewed headThe saved-census failure is real, and its root cause is case matching in the manifest enumeration, not untracked files. Running the package's own census twice against the saved RESULT.json (one run as written, one run with a case-sensitive So recomputation gives manifests_seen 17,503 versus 17,525 recorded exactly as you report, differing in that one field only; pins_seen 2,481,027, every count row and every drift list recompute equal. The 22 inputs are not untracked: they are tracked manifests with an uppercase The README's two numbers: 17,525 is the tracked external count above. The stray 17,528 equals 17,525 plus 3, and 3 is what this package itself carried at the time (RESULT.json, SOURCES.json, TASK.json; VERIFY.json is written last), consistent with a prose count that included part of this package. The frozen record cannot prove that decomposition, so the README now uses 17,525 throughout and records both the decomposition and the correction. What I changed
Fresh verification at the new head (CPython 3.12 on Windows)Registered replay, The same replay in a complete frozen checkout (detached worktree at 9a067f8, 43,088 tracked files, clean status — the scenario from your review): That run recomputes the whole ledger and requires exact equality with the saved RESULT.json, so the census equality holds in the frozen checkout: manifests_seen 17,525 recomputed against 17,525 recorded.
Aaron Wang, with help from opencode. |
Audit: live-byte source-pin drift after merged replay-speed tooling
Aaron Wang, with help from opencode (substantial AI assistance). Apache-2.0. No new kappa; no certificate, pin, frozen package or selected-frontier change.
Scope
Drawn card
replay-runtime(track verifier-engineering, chooser OS nonce5985f17ee9293abc98cbb69a85efb569), scope refined: the card asks whether one measured replay bottleneck can be sped up without dropping coverage. TheExclusionCircuit.verifyspeedups are already merged, so this audits their coverage-retention side effect and supplies the missing explicit dependency invalidation as a deterministic drift ledger with negative controls. Package:research/live-pin-drift-audit-seed5985/. Base0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2. Task card, scope status and reasons are inTASK.mdandTASK.json.What a pin means here
The audit enumerates every JSON
{repo path: sha256}entry (exact rule recorded inRESULT.json) and separates two populations that are usually conflated:check_sources-style"files": {path: sha256}maps (for exampleresearch/skip-clones/SOURCE.json), and shape R-input,scripts/research_package.pySOURCES.jsonrecords withusage: "input", which that validator checks against working bytes ("working source drift").usage: "provenance"records (shape R-provenance, bound to the immutable blob at the package's base commit) and all other{path: sha256}entries (shape P, for example the catalogue SHA-256 recorded in claims and ledgers). Drift in this population is expected and harmless.Established (all recomputed by
verify.py; full ledger inRESULT.json)Total 2,481,027 entries across 17,525 JSON manifests (2 manifests unreadable). The 149 live-drift pins touch 48 distinct files.
research/skip-clones/clone_io.py:check_sourcesraisesValueError: Pinned inherited source changed: scripts/exclusion_circuit.py. Its manifest recordedb253f9d7318b..., equal to the file's blob at the manifest's own last commitc02590dd; the current bytes hashf9fbcd6e85e4.... The bytes moved in exactly two later commits:d8029ee0("Tooling: faster ExclusionCircuit.verify leave-two-out supports", blob40bdb64670...) andd7d8bfcb("Tooling: fold ExclusionCircuit.verify_embedding reverse masks into PR 2001", blobf9fbcd6e85..., Tooling: faster ExclusionCircuit and DisjointTensor support masks with identical receipts #2001 ). The package'smake skip-clones-verifyreplay andtests/test_skip_clones.pycannot run at base. The speedups updated the shared certificate pins they touched (certificates/dyadic-central-factor.jsonand three siblings now recordf9fbcd6e85...and verify clean) but left older frozen packages' live pins stale.scripts/research_package.py --check-onlyfailsresearch/clean-selector-embeddingandresearch/complex-frame-plane-rail-seedca04ccwithworking source drift: docs/research/agent-task-catalog.json(recorded6686ad58f1..., currentd46eb6d5b3..., changed by priority revision 4) andresearch/complex-cartesian-grid-screen-seed506afwithworking source drift: docs/research/bottleneck-brief.md(recordeda5e3165696..., currentbbc9396c5c...). Of the 22 drifted R-input pins, 10 pin evolving documents (task catalogue, bottleneck brief or PR ledger) asusage: "input", so any later document update disables those replays; the other 12 pin tool scripts changed by the speedups above or later tooling.RESULT.json: for each (manifest, pinned path) pair, the manifest's last commit, the pinned file's blob digest at that commit, and every later commit touching the pinned file with its blob digest. Of the 149 pairs, 68 record a digest equal to the file's blob at the manifest's last commit; 70 record an older state (typical of vendored review snapshots); 11 pairs have no blob at that commit.Reproduce
Expected and observed under the registered Python 3.12 replay:
The run recomputes the whole ledger and requires exact equality with
RESULT.json. Seven controls pass: fixed headline digest; a matching pin reports clean (the refreshedcertificates/dyadic-central-factor.jsonpin ofscripts/exclusion_circuit.py); a corrupted digest registers as drift; a missing target is unresolved; a non-repository key is ignored; a malformed"files"map is not treated as a live manifest; and the--writemode's independent second enumeration is byte-identical.python3 -B -m unittest discover -s tests -p 'test_research_*.py'passes (65 tests, OK, 5 skipped).What this does not establish
No pin is repaired here: refreshing a frozen package's recorded digest would rewrite the evidence the pin protects, and vendoring freeze-time bytes would change frozen files. Both are maintainer decisions, so this PR stops at the exact ledger and the two reproductions.
research/shared-point-digestandresearch/mixed-point-scalar-digestalready record the decision as an open question ("Pin repair is outside this tooling change"), and this ledger is the data that follow-up needs. Drift disables replay checks; it does not falsify any mathematical certificate. The audit covers JSON{path: sha256}pins only, not Makefile targets, environment pins or non-JSON manifests. Two of 17,525 manifests were unreadable JSON and are counted, not audited. Drift counts for the receipt populations (P, R-provenance) are context, not defects.Open next questions (full versions in the package README)
research/skip-clonesalone, reruntests/test_skip_clones.py. Blocked by: maintainer authorization to touch frozen pins or bytes.usage: "input"be reserved for genuinely required live tools instead of evolving documents? Ten packages pin the catalogue or brief as live input, so every priority revision disables them. First step: one distinguishing sentence indocs/research/research-package-guide.md.Overlap, credit and limits
Entry overlap and a pre-submission refresh (2026-10-15 02:17-02:19 UTC, 482 open PRs, 961 discussion records, complete pagination, terms "source pin drift", "working source drift", "pin repair", "Pinned inherited source changed", "exclusion_circuit") found no open PR or claim on this object; matches were this package, the predecessor tooling packages and the two recorded pin-repair open questions. Coverage is not a novelty certificate.
Predecessors: Chafik Boukhalfa (
research/skip-clones, whose pinned replay is the smallest falsifying instance); Douglas Colkitt (scripts/research_package.pyand its input/provenance distinction); the authors ofresearch/exclusion-support-masks,research/exclusion-embedding-masks(#2001 ) andresearch/disjoint-tensor-support-masks(the merged speedups under audit, which already updated the shared certificate pins they touched); the authors ofresearch/shared-point-digestandresearch/mixed-point-scalar-digest(the recorded "Pin repair is outside this tooling change" open questions); woklerx (research/git-provenance-stream, pin-validation tooling precedent). No predecessor code was imported; the verifier only executesresearch/skip-clones/clone_io.pyandscripts/research_package.pyas black-box reproductions of their own checks. Not run: the full historical replay suite, any cold supplier replay, remote CI, and any repair of the drifted pins.