Repository navigation
Audit #695: selected #626 provenance digest differences are timing and directory order, reproduced byte for byte - #806
Merged
Mister-Meeseeks merged 1 commit intoOct 13, 2026
Conversation
…ifferences Fresh Linux replay reproduces the committed template, owner-audit and invoice digests byte for byte after substituting only wall-clock-timing file digests and iterdir() key order. Credit: CrocSwap#695 (Joshua Snider) preserved the CI evidence. Audit by Rohan Guliani (@Rohansguliani) with Anthropic Claude assistance. Apache-2.0.
Mister-Meeseeks
added a commit
that referenced
this pull request
Oct 13, 2026
…ling contributions Select conditional kappa 0.001661634653669567 from Jeremy Kothe's #799 on Chafik's #741 and the #589/#555 bit supplier. Preserve the previous checkpoint and cumulative attribution. Complete #795, #777, six #681 component reviews, and five exact tooling reviews. Integrate #806 as a scoped hash-substitution diagnostic with an adversarial counterexample to timing-only attribution. Retain source-pinned evidence and separate publication/CI state.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
An independent audit of PR #695's three selected #626 provenance digest differences (
template_sha256,input_sha256.owner_auditandinput_sha256.fresh_invoice). #695 reports them as unexplained because CI run 38317651752 did not upload the payloads. No new κ, no certificate change.Verdict: the facts that #695 and its triage report are correct. The digests differ, and the CI payloads are missing. The differences do not indicate a different template, owner audit or invoice. A fresh cold Linux replay gives a third set of values. After substituting only (1) the file digests of four generated files whose only volatile field is wall-clock
seconds(CLIFFORD-REVIEW.jsonandSCALAR-FRAME-AUDIT.jsonfor providersckandjp8), and (2) theiterdir()key order in the invoice's providerartifactsmaps, the replay reproduces the committedtemplate_sha256(22b41c45…), thenOWNERS-AND-PROFILE.json(ec7bc415…),PREFIX-AND-INVOICE.json(367a73f7…), and finally the committed complexASSEMBLY.json, all byte for byte. The template carries the timing throughsha256(PLAN.json), and the runtime PLAN pins theCLIFFORD-REVIEW.jsondigests. The package's own timing-stripped semantic hashes already agree. This is not gzip metadata; the template digest is taken over decompressed JSON.Limit: the CI run's specific values are attributed by mechanism, not reproduced, because its payloads were not uploaded. Every replay produces new values through the same path.
research/pr695-digest-audit/README.mdhas the table, file and line citations, and scope.Also checked at #695 head
e322f2f1d9cc0f830cb3a50c6e928e0a1a32383c: its checker passes normally and under-O, and its report equals itsRESULT.json. Its archived ZIP matches the live GitHub artifact (1f1ad114…). Its archived log matches the live job log, apart fromghrendering ESC as^[on 7 lines.Reproduce
Exact base:
66849e1475c930fd7732b1a0067ffee7e1e95f60.Expected:
PASS_PR695_DIGEST_DIFFERENCES_EXPLAINED 3 digests reproduced, 2 rejection controls. When the work directory is absent, this first runs the coldscripts/verify_frontier626.pyreplay, which needs the workflow's environment (NumPy, SymPy, SciPy,CXX,BOOST_INCLUDE). It took 31 minutes here with--jobs 6on Linux, CPython 3.13.7 and NumPy 2.5.4. The comparison passes normally and under-O.Credit and disclosure
This builds on #695 by Joshua Snider (
jsnider3), which preserved the CI artifact and recorded the differences explicitly. The supplier and review lineage is as credited there and in the selected review: Douglas Colkitt, Chafik Boukhalfa (#626), Jeremy Kothe (#622/#623), eumemic (#543) and GamingPuzzled (#620). The container-reproducibility convention cited in the README is by Maxime Fleury and Antoine Olivier.Audit by Rohan Guliani (@Rohansguliani), with substantial Anthropic Claude assistance. Apache-2.0. This is not independent human peer review, and it is not a formal verification of the multiplication theorem.