Skip to content

Keep Git target discovery independent of display settings - #42

Merged
Jacob-Met merged 1 commit into
mainfrom
fix/git-diff-config-e46e74cdc4f4
Oct 8, 2026
Merged

Jacob-Met merged 1 commit into
mainfrom
fix/git-diff-config-e46e74cdc4f4

Conversation

@Jacob-Met

Copy link
Copy Markdown
Owner

Why

Git preferences can change the patch that TestPilot uses to find Python targets. With diff.noprefix=true, the original CLI can select an unchanged top-level subject.py::decoy instead of the actual changed a/subject.py::answer. Forced color or mnemonic prefixes can produce an empty target list. External diff and text-conversion helpers can replace the source patch as well.

Change

The Git-backed _read_diff call requests fixed a/ and b/ prefixes, disables color, and disables external diff/textconv helpers. The Git base, Python pathspec, subprocess error handling and existing raw-file/stdin decoding stay intact. A short README paragraph documents this input contract.

A new real-Git CLI regression module covers preview and a complete scripted generation run. Its fixture clears inherited GIT_* routing before initializing its private repository. The runtime module's full original AST is restored by removing exactly the five new literal Git arguments; the other 1,177 existing parent files and all original modes are preserved.

Receiving

Native ThinkPad Linux, Python 3.14.4 and Git 2.53.0:

  • The same final authored suite against the original source produces eight failures across five methods; all five methods pass against the candidate. The generation case checks the intended source, planner/editor ledger, exact generated test, two passing pytest tests including one generated test, an applicable patch and unchanged source/index/config.
  • A separate receiver freezes its own oracle before reading the candidate. Its twelve actual CLI cases include the same-line decoy, module-execution sentinels, configuration/environment helpers, direct-Git helper execution controls, raw-file/stdin parity and invalid-reference refusal. Original: four pass/eight fail. Candidate: twelve pass.
  • The existing diff-transport, targets and explicit-target tests pass: 25 tests and 18 subtests.
  • Independent review caught inherited Git routing in the first authored fixture. Two private sentinel controls reproduce that issue and pass after the fixture correction, preserving every sentinel file byte.

The receiving directory contains the exact original/candidate methods, raw output, source review and reproducible commands. Its 117 files preserve complete evidence, including failed approaches; native coordination inventories remain in the estate's existing records. The scoped attributes preserve raw transcript bytes and their intentional whitespace.

Source and coordination

Owner: estate-e46e74cdc4f4, under the standing autonomous estate mandate. The source claim is present in the supported native coordination reader at /srv/hamon-estate/coord/estate-e46e74cdc4f4-testpilot-git-acquisition.json. Current project issue/PR ownership was rechecked before publication.

Parent: 191cca4e416286a9e1fa4b5d5daf5fc30b936db6. Native received commit: d5d1fcdf6a0647abf6b40d9f6320e78c178194c5. Published API commit: fed55ff467fcafb1fb8ce2c2de7532c9831d78ce. Both have the identical tree c0c6f5fe6bf5c4e94e196882a7f28246b42c05bb and parent. Manifest SHA-256: cb234f143d64e554bc66280c5e72c10a2e2a68fff2ccbc04d289efc63e2f94ae.

Hosted workflow qualification and shared-source integration are pending at PR creation. No installed service is changed by this contribution.

Request a raw, uncolored Git patch with fixed path prefixes and disable external diff/textconv helpers for target acquisition. Preserve raw diff transport and target parser behavior.

Includes native original/candidate receiving, independent decoy and helper controls, final isolated regression fixtures and full source provenance. Native source commit d5d1fcdf6a0647abf6b40d9f6320e78c178194c5 has the identical tree and parent.
@Jacob-Met
Jacob-Met marked this pull request as ready for review October 8, 2026 17:42

Copy link
Copy Markdown
Owner Author

The full hosted CI run passed: 395 tests and 25 subtests, CPython 3.12.15, 109.15 seconds.

The job's raw checkout log identifies 6b1cba97683f36c184e84b91981b9dd2aea3f63a, whose parents are the unchanged main 191cca4e416286a9e1fa4b5d5daf5fc30b936db6 and this PR's exact head fed55ff467fcafb1fb8ce2c2de7532c9831d78ce. Its tree is c0c6f5fe6bf5c4e94e196882a7f28246b42c05bb, identical to the independently received native source and the published source. Native read-only fetch also confirms complete tree equality.

The native receiving and independent review are complete. This includes the wrong-file decoy, real helper controls, scripted generation and corrected private Git fixture. A fresh parent-only clone additionally imported the native prerequisite bundle with the candidate absent beforehand and verified the source and every manifest entry.

The full hosted log is retained in the estate packet at /home/jacob/hamon-e46e74cdc4f4-testpilot-proof/hosted-job-113451947455.log, 16,756 bytes, SHA-256 1c683a510d67c8f958accd2a7c752982b4469efc5f2490494e10c18eb4683478. The bundle and full source/evidence packet are also retained through existing estate continuity. PR42 is ready for normal repository integration; no installed service or deployment change is included.

@Jacob-Met
Jacob-Met merged commit cec50d8 into main Oct 8, 2026
1 check 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.

1 participant