Repository navigation
Audit and preserve T37 receipt input-role bindings (no new kappa) - #1372
Conversation
PR CrocSwap#1006's T37 receipt normalizer compares the eight input hashes as an unordered collection and then replaces their path labels, so all 40,320 permutations of the hashes across roles compare equal. This package adds a source-bound audit and an opt-in comparator that checks each hash against its explicit input role (accepting only the original assignment, rejecting the other 40,319) while still permitting relocated invocation roots. Both fresh T37 engines agree on the complete receipt. The original runner's separate input checks are unchanged; no incorrect result, new kappa or speedup is claimed. Adds research/t37-receipt-role-binding/ only. Submitted by @commdata2338 with substantial AI assistance (OpenAI Codex research and implementation; packaged with Claude Code).
|
100-PR batch review at Merged to Reviewed scope: Independent receipt-role-binding audit: unordered hash normalization accepts all 40,320 permutations, while an opt-in role/path binding accepts exactly one. Both original T37 engines replay unchanged; this is not an immutable-source bypass or a fresh native supplier build. The pinned scoped command passed; the batch ledger contains its command, input hashes, environment and log. This incorporates the research/tooling contribution and does not change the selected κ or discharge the inherited multiplication-theorem assumptions. Batch review, attribution and evidence. Thank you for the contribution. |
Change and mathematical scope
PR #1006's T37 receipt normalizer checks the eight input hashes as an unordered collection and then replaces their path labels. So exchanging, for example, the native-word and native-replay receipt hashes still compares equal. This package adds a source-bound audit and an opt-in comparator. The comparator checks each hash against its explicit input role, while still permitting relocated invocation roots.
Status: verifier tooling and a scoped audit finding about receipt comparison on its own. The original runner independently pins its sources and actual inputs and executes the original wrapper. No incorrect owner result was demonstrated, and that protection was not bypassed. No new circuit, supplier, speedup or κ is claimed. Frozen predecessors, including
research/t37-slice-bitmaps/, and the selected frontier are unchanged.Precise delta: eight new files under
research/t37-receipt-role-binding/:receipt.py: explicit path/role normalization and complete comparison.verify.py: checks the pinned inputs, the exhaustive collision domain, the relocation and failure controls, and both fresh T37 engines.test_receipt.py: six focused test groups.Evidence.
1a0e4a30fc8b18c3db52cde322fc2a7646462497186cc6276e056b58253532fd.Remaining obligations.
Task and overlap
Task ID / scope key:
portable-replay/91a9a2afec282c926282, refined toPR1006-T37/input-role-map/eight-input-permutations. Chooser nonce3293b0b65763e4677f4efbb57cde1c08, track verifier-engineering, priority revision 2. The other suggestion,replay-runtime(b1dd41940c60d240b47a), was passed over: this concrete comparison failure is bounded and needs no performance claim.Base and exact heads: base
bce54fb3f895cbe5cd4c0eb477c3afeed100190f; contribution9b00c9f93a05351fb1a712dc201539de30f8738b. PR Tooling: exact T37 occupancy bitmaps reduce audit time and memory #1006 predecessor head2b047edb2b3fedccc4f538608b1bd56dc711673d; PR Conditional κ = 0.001661960547713947: T37 whole-owner packing and all-T bound #942 wrapper/witness head1960cfa919a0945d0ca4cb14ea96237000037903. There is no pending PR dependency, andSOURCES.jsonpins every live consumed byte from the base.Concrete object and question:
research/t37-slice-bitmaps/common.py:normalizeand its eight-roleinput_sha256map. Does making receipts portable erase the role association?Exact claim audited: that only machine-specific path labels are normalized while the complete original receipt stays bound. The separate actual-input admission boundary is kept and explicitly distinguished.
Scope status: refined. The chooser's method asks for an audit of a canonical-payload comparison for omitted fields; this tests the input identity association, not gzip/header or Windows codec behaviour.
Method and domain: all 8! permutations of eight distinct pinned digests across the fixed path labels, with explicit relocation and malformed-binding controls. The rest of the receipt JSON is compared in full, and the unchanged reference and bitmap owner stages are run fresh.
Nearest work:
None is adopted or replaced here.
Claim and final check: the claim is in discussion #1355. A live overlap check just before submission (842 open PRs and 92 discussion records at 23:36 UTC, complete pagination) found no competing role-map audit.
Validation
The registered command repeats the full census and both fresh T37 stages against
RESULT.json, then runs the complete focused test file. That file covers duplicate and nonfinite JSON, source drift before import, and stored census tampering. It runs on Linux with CPython 3.12.3 and the standard library; the Windows path labels are lexical fixtures only. The full replay takes about 20 seconds. The new comparator derives its bindings from the invocation roots and never infers them from receipt hash values. The registered replay and the metadata/pin check were run again on the final commit before submission, and both passed.Credit
Apache-2.0; predecessor attribution and notices are retained.
AI assistance: submitted by @commdata2338 with substantial AI assistance. OpenAI Codex (GPT-6 Astra) did the audit design, the implementation, the verification and the writing; it was packaged and submitted with Claude Code. No independent human review is claimed.
Open next questions
From the package README: should a future maintained T37 entry point use the explicit role map when comparing receipts? It would keep the provenance association in saved evidence. First step: integrate the pure comparator at a nonfrozen successor boundary and keep the fresh reference and bitmap controls. Blockers: maintainer adoption and the desired policy for historical layouts; this package does not alter frozen code. The structured question is in
TASK.json.Workflow feedback (optional)
t37-slice-bitmaps/common.pyornormalizefinds comparison-specific predecessor work, with its coverage limits stated.