Repository navigation
Tooling: reject changed-base mixtures in PR file overlap snapshots - #3141
Merged
Mister-Meeseeks merged 1 commit intoOct 17, 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.
Change and scope
Bind changed-file overlap inventories to both PR head and base OIDs. Previously, a two-page response with identical head/count but a changed base was accepted as 200 complete paths. This PR rejects that mocked counterexample, retains both endpoints in cached inventories and exposes base mismatches when joining them to PR metadata—even when no path matches the query.
Legacy caches keep unknown bases unknown. Online path queries refresh only endpoint-incomplete sources; failed/offline refreshes retain evidence with explicit warnings. This is coordination-tool consistency, not an atomic GitHub snapshot, proof of novelty or a mathematical result. No live PR misreport is alleged.
Task and overlap
Base
997e6a9ca7b4f95d50e366f61412fd640d72a88a, refreshed before selection and publication. Verification engineering, session seed 87; precise source-binding audit rather than runtime optimization. Claim. Current open PRs, issues, recent hub comments and cached endpoint searches showed no overlapping claim. This extends the retained file-pagination and head-binding controls; it is independent of PR3138–3140.Validation
python3 -B -m unittest discover -s tests -p 'test_research_pr*.py' -v22 targeted tests pass on Python 3.14.7. The complete Python 3.12.14 research-tool suite passes 227 tests, 11 platform skips. Controls include base-only drift with stable head/count, missing base, every-page query fields, matching/mismatching/unknown endpoint joins, no-hit warnings, unchanged old caches and failed refresh. Existing head/count/pagination/truncation controls remain.
Live API smoke checks read PR3138 (
2a4a17457e21de2de684bd8ad19938e9aef2319f) and PR3139 (54bbb81cc884819154776900830eeb4d9db4dc5e) against the exact base above, yielding four and three paths respectively, neither truncated. No costly full file-index refresh or mathematical suite was needed.Credit and next questions
Tekalign, with substantial OpenAI Codex assistance. Apache-2.0. Builds on Douglas Colkitt's overlap tool and the retained contributor pagination/head-binding fixes; predecessor tests and attribution remain. See
docs/research/coordination.md. An atomic cross-request GitHub snapshot remains unavailable; consumers must still recheck live endpoints before acting.