Repository navigation
Preserve newline filenames in explicit research head pins - #3635
Merged
Mister-Meeseeks merged 2 commits intoOct 20, 2026
Merged
Conversation
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
A canonical Git filename containing LF works with
base_commit:<path>but is rejected by the documentedhead:<40-hex sha>:<path>form. The parser's.+excludes LF, even though the Git readers support newline filenames. An actual temporary Git publication reproducesPASS_RESEARCH_COMMIT_BYTESfor the base form and exit 1 for the head form with identical source bytes and commit.Match LF as part of the exact path while retaining the lowercase 40-hex head, nonempty path and exact row-path equality requirements. Actual metadata and publication CLI regressions cover LF, CRLF, trailing LF and a later source commit, plus malformed-pin, wrong-blob, wrong-hash and working-drift controls. The documentation explains JSON escaping.
The registered
research/isolated-descendant-bytecodeconsumer is also repaired: its helper row inSOURCES.jsonnow saysprovenance, matchingverify.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.jsonand 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 source declaration compatibility, separate from #3615's original-object binding, #3629's export containment and #3628's CI glob matching. No mathematical result or selected frontier changes. Credit Aaron Wang's head-pin support in #2737, Douglas Colkitt's package runner, and Arham Tahir's newline-preserving Git reader work in #1595.
Validation
Local macOS arm64, CPython 3.12.14. Final tested commit:
cff9aac252b4bd9968a39c7cd0d12fce19fefab2.PASS_REGISTERED_RESEARCH_PACKAGE.6f100d4bb5083f8c35d96fd95a539811c62f245cretained.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. Predecessors and disjoint pending fixes were retained as context; no equivalent parser correction was identified. This is not an exhaustive novelty claim.Prepared for roger-sato with substantial OpenAI Codex assistance. Apache-2.0. Same-session agent review is not independent human acceptance.