Migrate the pair runner to go test -json event verdicts - #7
Merged
Conversation
The pair runner was the last text-output parser, and it carried a live false-refutation path: "err != nil" trusted the exit status, so an infra failure outside the couldNotRun marker list was recorded as Ran=true/Passed=false — a refutation that would block a merge over a broken fixture. The single runner's migration fixed exactly this class; the pair kept the old trust surface. Both runners now share one discipline: the pair passes only on an explicit pass event for EACH name (a skipped or single-matching side exits 0 and must not confer T2), a failing side refutes with that side's own output (refutation dominates the other side's state), and skip/missing/build-failure/cancellation are all Ran=false. The verbose text path (runGoTest, couldNotRun markers, testPassedIn) is deleted — dead code in a verdict path is a trust hazard, not a spare part. Measured on the live pair corpus: evidence byte-identical old-vs-new. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015GeUG1gboWiZSnFyzQghyp
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.
Closes the deferred backlog item and a live defect found on the way: the pair runner's
err != nilbranch trusted the exit status to mint a refutation, so an infra failure outside thecouldNotRunmarker list recordedRan=true/Passed=false— a false refutation that would block a merge over a broken fixture. This is the reverse of the skip-laundering class the single runner's event-stream migration fixed; the pair kept the old trust surface.Both runners now share one verdict discipline (
go test -jsonevents, exit status deliberately unused):Ran=false.The verbose text path (
runGoTest,couldNotRunmarkers,testPassedIn) is deleted rather than kept as a spare: dead code in a verdict path is a trust hazard. The deleted helpers' protective tests are re-expressed at the event layer (exact-name matching, build-failure-is-not-a-refutation).Measured live: the real corpus's pair probe produces byte-identical evidence old-vs-new; new real-module tests pin pass/pass, fail-side, skip-side, renamed-away-side, and non-compiling-package outcomes.
🤖 Generated with Claude Code
https://claude.ai/code/session_015GeUG1gboWiZSnFyzQghyp