Skip to content

Research consolidation: post-merge retention receipt for the nine PRs integrated at 51122344 (no kappa) - #2046

Merged
Mister-Meeseeks merged 2 commits into
CrocSwap:mainfrom
navinor:research/agent-36-overlap-receipt-66879550
Oct 15, 2026
Merged

Mister-Meeseeks merged 2 commits into
CrocSwap:mainfrom
navinor:research/agent-36-overlap-receipt-66879550

Conversation

@navinor

@navinor navinor commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Post-merge retention receipt for the nine research PRs integrated at 5112234 (no kappa)

Research consolidation: credit and provenance only. No kappa, supplier, certificate, selected-frontier, ledger-disposition or closure change. Prepared by Aaron Wang, with help from opencode (substantial AI assistance; no independent human review claimed). Apache-2.0.

Scope

Assignment: consolidation track, card overlap-receipt (scope key 757723e3fd38f20fa774), chooser OS-draw nonce 66879550e1fc7c124e80fcde11281b4d, priority revision 3. Scope refined (reason recorded in TASK.json): the card names no family, so this takes one existing integration receipt, the maintainer merge commit 5112234 ("Integrate reviewed research PRs PR 1805, PR 1806, PR 1808, PR 1810, PR 1811, PR 1812, PR 1814, PR 1815, PR 1827"), the newest small named set whose post-merge retention had no receipt.

Base main 51122344de9382e784c7f89953456d8cd55513ef; pre-merge main (first parent) d33f15be91438e3de512fa544c3f5a7cb832588f; branch research/agent-36-overlap-receipt-66879550, head d498dbd0. Selected-record SHA-256 10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32 unchanged.

Object and question. The scoped review research/community-efficient800-audit/DISPOSITIONS.json predates the merge: it records each of the nine PRs as partially_reviewed with github_state: OPEN and names each integration location. Does the merged tree retain every reviewed head's own changed content byte-identically, did any head change since review, and is author credit recorded?

What this is not. It does not re-review the nine packages' mathematics, re-run their checkers, change any disposition, or request any closure. Concurrent mathematical work that names #1805 as a predecessor (an independent audit of that PR posted by Ross Richardson, and a composition claim in #1166) addresses mechanisms, not merge retention; nothing there is duplicated.

Method

All facts except the pinned GitHub observations are re-derived offline from the local Git object store by the package verifier (research/merge5112-retention-receipt/verify.py).

  1. The merge commit's parents must be exactly pre-merge main plus the nine reviewed heads recorded in the scoped review.
  2. Each head's own changed-path set is the three-dot diff from its merge base with pre-merge main, so paths where a head merely lags main do not count as its changes.
  3. Each changed path's Git blob at the reviewed head must equal its blob in the merge tree. Modified or missing blobs are reported separately and never folded into "retained".
  4. Authors, titles, states and merge times were pinned on 2026-10-14 via gh pr view; the offline verifier does not re-check them.

Seven in-memory rejection controls (corrupted head blob, corrupted merge blob, wrong verdict, dropped path, fabricated path, false changed-head flag, wrong totals) must all be rejected; the identity comparison against fresh Git facts is the positive fixture. SOURCES.json pins the scoped review and provenance files by Git blob and SHA-256.

Result

All nine reviewed heads are retained completely and identically: 77 of 77 changed paths carry the same Git blob in the merge tree as at the reviewed head (0 modified, 0 missing, 0 deletions by the nine PRs). No changed heads: each PR's headRefOid equals its recorded reviewed_head and is a merge parent. Every changed path lies inside its PR's recorded integration location. All nine authors appear in CONTRIBUTORS.md.

PR Author Integration location Changed paths Retained identical
#1805 VictorLiwentao research/h2sem-copyshare-priced 10 10
#1806 mtpsl research/r439-abc-hosted-invoice 9 9
#1808 JosieElliston research/plane-port-copy-budgets 6 6
#1810 RossRichardson research/r439-dirty-workspace-frame-bound 8 8
#1811 1337isnot1337 research/five-source-parity-hyperplanes-seed595e 12 12
#1812 nedveder research/two-connector-eight-transfer-threshold 8 8
#1814 1337isnot1337 research/complex-gather-child-seed7a6d 11 11
#1815 jmbarrancoml research/polarized-p112-code-bound 5 5
#1827 mightyOil research/p112-joint-support-loss-audit 8 8

One observation, deliberately not changed here: the nine docs/research/pr-ledger.md rows still read "partially reviewed" and cite the pre-merge scoped review. Moving a disposition is a maintainer action; the package records it as an open question.

Reproduce

From the repository root (needs Git history; standard library only):

python3.12 scripts/research_package.py --package research/merge5112-retention-receipt
python3.12 scripts/research_package.py --package research/merge5112-retention-receipt --check-only

Observed output (Python 3.12.14 on Windows):

PASS_MERGE5112_RETENTION_RECEIPT
prs=9 changed_paths=77 retained_identical=77 retained_modified=0 not_retained=0 changed_heads=0
source_pins=ok controls_rejected=7/7
PASS_REGISTERED_RESEARCH_PACKAGE research/merge5112-retention-receipt outcome=completed

and PASS_PACKAGE_METADATA_AND_PINS (not a mathematical acceptance check) for the check-only run. The repository research suite (python3 -B -m unittest discover -s tests -p "test_research_*.py") passes: 53 tests, OK (5 skipped).

Obligations not checked

Git blob identity is identity of file content and mode as Git records it; this is not a ZIP-container or Windows-checkout byte comparison. The mathematical content of the nine packages was not re-reviewed and their own checkers were not re-run. The GitHub-observed fields are pinned observations and may drift after 2026-10-14. The selected cold replay make frontier1094-verify was not run: it is unrelated to this receipt, and make is not installed on this host. No ledger row, disposition, PR closure or selected record was changed.

Credit

The nine packages and their claims belong to their PR authors: VictorLiwentao, mtpsl, Josie Elliston (JosieElliston), Ross Richardson (RossRichardson), Cinna Davis (1337isnot1337), nedveder, jmbarrancoml and Philipp (mightyOil), all already recorded in CONTRIBUTORS.md. The scoped review under audit is the maintainer's research/community-efficient800-audit, with its own merge, integrity and ledger-check receipts. The receipt style follows the PR 148 source-retention receipt (#1572) and the fourth100 family receipt (package research/pr636-family-witness-manifest-receipt/, recorded in #1166), which audited different PR sets. Overlap checks at entry and before submission (open PRs including drafts, discussions, local packages and ledger; complete pagination) found no concurrent work on this object.

Source-bound consolidation receipt (card overlap-receipt, scope refined to one
existing integration receipt). Re-derives from Git that all 77 changed paths of
the nine reviewed heads (CrocSwap#1805, CrocSwap#1806, CrocSwap#1808, CrocSwap#1810, CrocSwap#1811, CrocSwap#1812, CrocSwap#1814,
CrocSwap#1815, CrocSwap#1827) are retained byte-identically in merge 5112234, that no head
changed since review, and that all authors are credited in CONTRIBUTORS.md.
Records the still-partial ledger dispositions without changing them. No kappa,
disposition, closure or frontier change. Aaron Wang, with help from opencode.
@Mister-Meeseeks

Copy link
Copy Markdown
Contributor

Thanks for the contribution. Review of d498dbd0a6536a0150b13f88845f6b86e0d37552 in the frozen 100-PR round found one remaining issue:

The historical retention check reads the live efficient800 disposition file and requires its old hash. That file has advanced. Bind the historical snapshot through its recorded Git commit instead of the current ledger; preserve newer dispositions.

The scoped replay evidence is retained in the batch review. Passing finite checks and the scope of the written claim are tracked separately. This PR is staying open for the focused revision; contributor and predecessor credit are retained.

@navinor

navinor commented Oct 15, 2026

Copy link
Copy Markdown
Contributor Author

Reproduced and fixed on research/agent-36-overlap-receipt-66879550 (new head d3d309b3, on top of the reviewed d498dbd0a6536a0150b13f88845f6b86e0d37552). This responds to the review comment on #2046 ("Research consolidation: post-merge retention receipt for the nine PRs integrated at 5112234 (no kappa)" by Aaron Wang), comment #2046 (comment).

Reproduction (before the fix). At the reviewed head the replay passes on the branch. Against current main d91f7378 (i.e. after integration) the registered package fails exactly as the review describes:

$ python scripts/research_package.py --package research/merge5112-retention-receipt --check-only
working source drift: research/community-efficient800-audit/DISPOSITIONS.json

Running the historical retention check directly against current main shows it reading the live disposition ledger and requiring its old hash (the same disk-hash defect also trips on the advanced task catalogue):

FAIL_SOURCE_PIN: sha256 pin mismatch: docs/research/agent-task-catalog.json
FAIL_SOURCE_PIN: sha256 pin mismatch: research/community-efficient800-audit/DISPOSITIONS.json
FAIL_SOURCE_PIN: input drift: research/community-efficient800-audit/DISPOSITIONS.json

The recorded pins still verify against their recorded Git commit; it is the live files that advanced:

research/community-efficient800-audit/DISPOSITIONS.json
  pinned blob/commit: d10a94133f2614cfb86a45d3a088967a56619be3 @ 51122344de9382e784c7f89953456d8cd55513ef
  pinned sha256: 7d6285385d910a50ff4f7926d960c4ef82ef9d2d41128e828e3ee9f2ac3338c1
  live   sha256: d97825a16961faa81b42c0a2007bef86c39572172f229a8a903a45664a1c6247 (DIFFERS)
  live blob on main: b1ffec4df832

The ledger has advanced with newer dispositions: 28 of its 100 rows changed since the recorded commit, including rows for PRs in this receipt that now record disposition: incorporated with merge closure at 51122344 and updated unresolved_question text.

Old vs new binding.

  • Old: SOURCES.json declared the live research/community-efficient800-audit/DISPOSITIONS.json ledger as usage: "input" (also the only VERIFY.json input), and verify.py's source_pins() hashed every pinned file read from the working tree, so the historical retention check required the old hashes of mutable live files.
  • New: the DISPOSITIONS row is usage: "provenance" and VERIFY.json inputs is now empty; verify.py binds every row through its git blob at the recorded commit 51122344de9382e784c7f89953456d8cd55513ef (rev-parse <base>:<path> must equal the recorded git_blob, and the sha256 must match the bytes of git cat-file blob at that snapshot), keeping a live-drift requirement only for rows still declared as live inputs (none remain). This matches the existing repo convention, for example the git show <ref>:<path> blob binding in research/pr210-head-reconciliation/verify.py and the 128 registered packages that pin docs/research/agent-task-catalog.json as provenance. Path, git_blob d10a94133f2614cfb86a45d3a088967a56619be3, sha256 7d6285385d910a50ff4f7926d960c4ef82ef9d2d41128e828e3ee9f2ac3338c1 and base commit are unchanged.

Newer dispositions preserved. The live ledger is not modified by this fix: research/community-efficient800-audit/DISPOSITIONS.json stays byte-identical to current main's blob b1ffec4df832, with all 28 newer disposition updates intact. No disposition is changed and no closure is requested, matching the receipt's own recorded scope. No mathematical content, numbers, or reproduction commands changed.

Verification (Python 3.12, registered replay against current main d91f7378 with the fixed package):

PASS_MERGE5112_RETENTION_RECEIPT
prs=9 changed_paths=77 retained_identical=77 retained_modified=0 not_retained=0 changed_heads=0
source_pins=ok controls_rejected=7/7
PASS_REGISTERED_RESEARCH_PACKAGE research/merge5112-retention-receipt outcome=completed
  • --check-only against current main: PASS_PACKAGE_METADATA_AND_PINS (not a mathematical acceptance check).
  • Package tests: the seven in-memory rejection controls all rejected (controls_rejected=7/7: corrupted head_blob, corrupted merge_blob, wrong verdict, dropped path, fabricated path, false changed-head flag, wrong totals); this package has no separate test file.
  • Previously retained results reproduce unchanged: the retained summary above (prs=9, 77/77 changed paths retained byte-identically, 0 modified, 0 missing, 0 changed heads versus the recorded reviewed heads) is identical to the pre-fix baseline run at the reviewed head; RECEIPT.json and TASK.json are untouched.

Remaining obligations. None for this finding. The receipt's scope statements and its open question (a maintainer updating the nine ledger rows while keeping the scoped-review limitations on record) are unchanged. The same live-file-versus-pinned-snapshot binding fix was applied separately on #1763 for the task-catalogue input; the two commits are kept separate on their own PR branches.

Aaron Wang, with help from opencode.

@Mister-Meeseeks
Mister-Meeseeks merged commit 7cfd2fd into CrocSwap:main Oct 15, 2026
40 of 61 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants