Skip to content

chore(repo): run the mutation lane on the released 12.1.0 CLI - #119

Closed
systemfsoftware-maker wants to merge 2 commits into
mainfrom
fix/main-mutation-infra
Closed

systemfsoftware-maker wants to merge 2 commits into
mainfrom
fix/main-mutation-infra

Conversation

@systemfsoftware-maker

@systemfsoftware-maker systemfsoftware-maker commented Sep 26, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The Mutation workflow on main has failed since #117 with "infrastructure failure": every shard either exits 3 with No files to instrument or is killed at the 30-minute cap with zero completed mutants.

The lane dogfoods the published CLI through catalog:stryker (latest), but the lockfile still pinned @systemfsoftware/stryker-js 11.0.0 and the TypeScript checker 7.1.0. Both predate the fixes the lane depends on:

This PR refreshes the lockfile to the versions released by #116: stryker-js 12.1.0, typescript-checker 7.1.2, vitest-runner 7.3.0 and test-contribution 4.1.1. The catalog specifiers stay latest.

It also fixes a flaky e2e scenario, "failing checker emits structured StageError". Its test file src/service.vm.test.ts was a CommonJS assert script written for the deleted node:vm harness. Vitest registers no tests from that file, so the dry run failed with "No tests were executed" and raced the checker's missing-tsconfig failure. The scenario passed only when the checker failed first: CI was green on main at a1057e2aa, red on this PR, and red on every local run, including on a1057e2aa. The file now contains the same three assertions as Vitest tests, so the checker failure is the only failure left. tests/typescript-checker.e2e.test.ts passes 7/7 locally.

Validation

Local runs of the checker package's pnpm mutation, the same command the lane runs:

CLI Shard Result
11.0.0 (main's lockfile) 1/1, 157 mutants 0 completed after 900 s, killed
12.1.0 (this PR) 1/1, 157 mutants 157 completed in 29 s: 114 CompileError, 25 Killed, 9 Survived, 9 Ignored
12.1.0 (this PR) 2/3, no files exit 0, empty report

The 12.1.0 run exits 1 because its score (73.53) is under the shared break: 100 threshold. scripts/mutation-job.ts fails a job only when a package leaves no report, so this is reported as a score, not a job failure.

The Mutation workflow runs only on pushes to main, so it runs for the first time after this merges.

The dogfood catalog says latest, but the lockfile still pinned stryker-js 11.0.0 and the typescript checker 7.1.0. Those predate the empty-shard and checker-scoping fixes, so every checker shard with no files exited 3 and every other shard checked the whole program per mutant until the 30 minute cap killed it

The lockfile now resolves stryker-js 12.1.0, the typescript checker 7.1.2, the vitest runner 7.3.0 and test-contribution 4.1.1; the catalog specifiers stay latest
src/service.vm.test.ts was a CommonJS assert script written for the deleted node:vm harness. Vitest registers no tests from it, so the dry run fails with "No tests were executed" and races the checker's missing-tsconfig failure. The scenario passed only when the checker lost the race: green on main at a1057e2, red on #119 and on every local run

The file now holds the same three assertions as Vitest tests, so the dry run passes and the checker failure is the only one left
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.

2 participants