fix(ci): select mutation fixtures when suites change - #1341
Conversation
Retrospective verdict: BLOCKExact head: I re-confirmed the live PR head immediately before the verdict. Current main What passedThe selector implementation and focused acceptance behavior are coherent:
Blocking evidence gapThe exact-head CI run does not prove the claimed 16-fixture repaired projection and does not close the live-only Completed mutation-reproof job It killed that fixture's seven mutations. That omission is decisive for this review because Count reconciliationApplying the original #1329 eight changed paths to the current-main corpus produces:
The nine suite-only fixtures are:
The reported sixteenth is Required evidenceAdd an exact CI job or checked-in acceptance case that invokes the fixed selector against the original #1329 changed-path set on the current-main corpus and executes all 16 projected fixtures. I did not read the peer verdict. I did not run mutation-proof in a shared tree, a local live or stack suite, |
|
Independent first-hand APPROVE of PR #1341 at 4d43c97. Head re-confirmed via git ls-remote. Parent main 5e635a2 is an ancestor. Three files. Isolated archive and scratch worktree, not the shared checkout. Selector is exact Ran:
Path probes:
Historical projection on the #1329 file set: 6 old + 9 suite-only = 15 unique. No |
Retrospective verdict update: APPROVEExact head: This supersedes my earlier evidence-hold BLOCK at the same SHA. I re-confirmed immediately before this update that both PR #1341 and proof PR #1342 point to the unchanged head above. Proof PR #1342 used temporary historical base Hosted job
The previously missing historical proof is now present: The two pre-red fixtures were:
For each, the runner refused to grade mutations because Together with my prior first-hand checks at this unchanged head, the completed historical proof closes the only remaining evidence hold. I did not rerun mutation-proof locally, install, build, start a stack, invoke a live suite, use the dev-tree CLI, or run |
|
Independent first-hand review of draft proof PR #1342 against frozen #1341 at 4d43c97. I downloaded and parsed GitHub Actions logs for run 34018253649 / changed job 101445886135 (pull_request, full skipped, BASE d6a61b5). I did not run -live, cotal up, or pnpm check, and did not move the shared checkout. Printed: 16 fixture(s) selected from 351 (diff 11 / 11 changed paths). Path list includes implementations/auth/smoke/mutations/events-remedy-user.json. That fixture ran: baseline green, 2/2 KILLED. Job conclusion success. MUTATION REPROOF OK (16 selected; 14 discriminated, 2 pre-red, 0 inconclusive). 66 padded KILLED verdict lines. No SURVIVED / UNGRADABLE / WRONG-RED / ERROR verdict tokens. No MUTATION REPROOF FAILED. PRE-RED (selected, then refused as already-red live suite, mutants not graded):
Selector arithmetic on the exact candidate tree holds. Those two already-red suites are a #1329/main quantity, not a #1341 selector miss. Independent APPROVE of #1341 at 4d43c97 still holds. Do not merge #1342. |
Retrospective verdict correction: BLOCKExact merged head: I retract my approval at this SHA. The unchanged-head historical proof closed the original selection-evidence hold, but a subsequent whole-result feedback-loop pass found a composition failure between the new suite selector and the existing ReproductionIn clean, committed synthetic repositories running the shipped
Both runs correctly selected the fixture through In these cases the suite failure is caused by the changed set itself. Calling it “not this diff's defect” and returning success is therefore a false green for the exact class this PR newly adds to selection. Why existing proof missed itThe exact-head selector smoke passes 12/12 and proves:
It does not test a fixture selected because the configured suite itself changed and became red or disappeared. The seven mutation controls likewise remove suite selection entirely, but do not mutate the attribution/classification boundary after suite selection succeeds. The hosted historical proof selected all 16 projected fixtures and reached 66 killed mutations, 2 pre-red fixtures, and no fatal or inconclusive verdicts. That proves the selector reaches the historical population. It does not exercise a suite-only diff that creates its own baseline failure. Required repairA selected fixture whose configured suite changed and is red at head must not be unconditionally dismissed as an unrelated pre-red. Attribute that state to the changed suite and fail, or compare base and head strongly enough to prove the red predates the diff. Add regression cells for both a changed suite becoming red and a configured suite being deleted, plus a mutation that removes the attribution check. For this whole-result rerun I also verified the public suite-only CLI path selects and kills its fixture, shared-suite fanout selects both fixtures, rename/delete old paths enter the changed set, unrelated suite names do not select, the real 351-fixture corpus parses, package dry-run includes all three changed files, release metadata is unchanged, and the hosted Linux, Windows, unit, smoke, live, analysis, and 16-fixture historical jobs completed successfully. None covers this newly reproduced false-green boundary. |
|
Independent retrospective BLOCK of merged PR #1341 at exact head First-hand on an isolated archive of that commit, running the shipped
The new suite selector is what admits these diffs. PRE-RED still treats a red baseline as not this diff's defect, including when the suite file is the only change. Shipped smoke covers suite-only green selection, unrelated-suite exclusion, and source-triggered PRE-RED. It does not cover suite-triggered PRE-RED or suite deletion. Ran, not only read. No merge. Corrective follow-up needed: classify a changed-suite baseline failure as attributable/fatal, or compare base vs head, with both regression cells and mutation. |
Summary
Validation