Skip to content

Bind research source reads to original Git objects - #3615

Merged
Mister-Meeseeks merged 2 commits into
CrocSwap:mainfrom
roger-sato:fix/research-source-replacements
Oct 20, 2026
Merged

Mister-Meeseeks merged 2 commits into
CrocSwap:mainfrom
roger-sato:fix/research-source-replacements

Conversation

@roger-sato

@roger-sato roger-sato commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Local Git replacement refs can make the source readers return an original blob ID with a replacement's bytes. Scaffolding can then accept altered working bytes and record pins that fail in a clean checkout; an export can likewise contain replacement bytes under the original publication commit.

Set GIT_NO_REPLACE_OBJECTS=1 for the shared Git readers' subprocesses. Single reads, HEAD inventories, both batch protocols, scaffolding, metadata validation, publication-byte comparison and exports now read the stored objects. Six synthetic Git regressions cover blob and commit replacements, custom replacement namespaces, newline-path fallback, forged live pins and actual exported bytes/receipts. The parent environment and replacement refs are unchanged.

The registered research/isolated-descendant-bytecode consumer is also repaired: its helper row in SOURCES.json now says provenance, matching verify.py's existing use of the authenticated historical Git blob. The original base, blob and SHA256 are retained. VERIFY.json, TASK.json, verify.py, RESULT.json and all three registered commands are unchanged. The current helper remains a declared replay input and the unchanged third command exercises its bytecode isolation. The README records the correction and preserves Arham Tahir's source credit; no validator exception or regenerated historical evidence is introduced.

Six source-role regressions cover the old failure versus corrected success, unchanged historical identities/evidence, corrupted blob/hash rejection, unrelated live-pin rejection, planner/publication coverage and deliberate live-isolation breakage rejected by the registered command. The same correction is included in both #3615 and #3635 so either can integrate first.

This is a portable-replay source/byte-binding repair, separate from the optional ancestry check. It does not establish mathematical correctness or a new selected result. Credit Nick Petalas's PR3304 for the preceding immutable-object ancestry policy, Douglas Colkitt for the shared runner/scaffold, and Tekalign for the exporter.

Validation

Local macOS arm64, CPython 3.12.14. Final tested commit: 05a7fa8434062016d733c3d92c0a4c4a53e52cc5.

  • All six replacement regressions fail against the original reader: five assertion failures and one byte-mismatch error. The original implementation passed 67 focused tests and all six new methods under optimized Python with warnings treated as errors.
  • Final-head CI onboarding discovery: 277 tests, OK (skipped=18); seven Linux /proc and 11 native Windows tests are inapplicable on this host.
  • Full affected registered consumer: unchanged 16-case historical differential, 11 isolated-runner tests and eight current-helper tests; PASS_REGISTERED_RESEARCH_PACKAGE.
  • Committed publication-byte/source-history preflight: 13 files; original source base 6f100d4bb5083f8c35d96fd95a539811c62f245c retained.
  • Combined Bind research source reads to original Git objects #3615 and Preserve newline filenames in explicit research head pins #3635 production changes: all 15 new regression methods and the full affected registered replay pass.
  • git diff --check.
  • Hosted CI and native Windows/Linux execution. No repository-wide historical/theorem replay or selected-frontier cold replay is claimed.
python3.12 -B -m unittest discover -s tests -p 'test_research_*.py' -v
python3.12 -B scripts/research_package.py --package research/isolated-descendant-bytecode
python3.12 -B scripts/check_research_commit.py --package research/isolated-descendant-bytecode --check-source-history
git diff --check

Canonical main was rechecked unchanged at 20ecf2891d80b5acf18d980b2164fb44ea7faa90, priority revision 6. The refreshed overlap inventory includes 344 open PRs, 2,964 closed PRs and 2,453 Discussion records, with complete pagination and no warnings. PR3304 left the shared readers unchanged; no equivalent correction was identified. This is not an exhaustive novelty claim.

Prepared for roger-sato with substantial OpenAI Codex assistance in diagnosis, implementation, regression tests and writing. Apache-2.0. Same-session agent review is not independent human acceptance.

@roger-sato
roger-sato marked this pull request as ready for review October 18, 2026 11:17
@roger-sato
roger-sato marked this pull request as draft October 18, 2026 11:43
@roger-sato
roger-sato marked this pull request as ready for review October 18, 2026 12:02
@Mister-Meeseeks
Mister-Meeseeks merged commit 65d9fb4 into CrocSwap:main Oct 20, 2026
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