Repository navigation
Preserve authenticated initial intake heads during reconciliation - #3692
Merged
Mister-Meeseeks merged 1 commit intoOct 20, 2026
Merged
Conversation
roger-sato
marked this pull request as ready for review
October 18, 2026 15:33
This was referenced Oct 18, 2026
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.
Summary
20ecf2891d80b5acf18d980b2164fb44ea7faa90, the ledger retains each originalstarting_head, but mutable intake metadata describes a later head. The checker rejects these legitimate records, and a complete generator run incorrectly replaces their initial heads with the current heads.82d67beb,09fbc0f0and24db9bff. No ledger, intake, receipt, frozen source, selected result or source pin is changed.Credit Douglas R. Colkitt's reconciliation/intake infrastructure, roife's PR704 for metadata binding, and the retained Gonzalo Mier / rohanarun contribution records. This contribution repairs offline provenance checking, not scientific results or live GitHub state.
Test plan
CPython 3.12.14, macOS 27 arm64: all 7 new tests pass normally and with
-O, with warnings treated as errors. They execute the actual generator and checker metadata boundary, preserve current head/reviewed head/attribution, and reject forged initial/current heads, future revisions, metadata substitutions and changed receipt bytes.Independent complete generator comparison, with writes intercepted in memory: exactly three
starting_headvalues change across 3,028 rows; every other JSON value and the complete Markdown output remain identical. No generated artifact was written.Independent code/source-binding review; no live registered
SOURCES.jsonorVERIFY.jsonpin needs modification. Historical evidence remains unchanged.In a disposable complete integration tree with this change plus exact pending PR3648 (
a0d88d68), PR3686 (932f3b1) and PR3688 (3463ba61), all 38 reconciliation tests pass in both modes. Both new files are included in the tracked inventory used by the historical wrapper. Those other PR changes are not included here.Ran
python3.12 -B scripts/replay_historical_check.py tooling-ledgeronce on that combined tree, capped at 600 seconds. It passes the former initial-head failure and the family checks through batch1047, then exits after 29.76 seconds at the separate existing PR1048 review-completion mismatch: batch1099's historical flags/evidence differ from the later ledger record. The untouched canonical checker reproduces that failure directly. No validation bypass or data rewrite was added.Full tooling CI is not green: it needs the pending compatibility fixes above and separate resolution of the existing PR1048 mismatch. No complete historical-ledger replay success or Linux execution is claimed.
Prepared with substantial OpenAI Codex assistance for investigation, implementation, tests, execution, independent agent review and writing. Apache-2.0.
Hosted follow-up (2026-10-19 JST): the fork push run at
af040ab4passes the exact tooling and scoped owner/provenance steps, then stops before the reconciliation unit tests at the unchangeddocs/ci-verification.mdsource-admission guard addressed by PR3648. Thus the new reconciliation tests and combined 38-test result above remain local evidence. Upstream pull-request Actions require maintainer approval; no full Linux ledger success is claimed.