Repository navigation
build(mutation): gate each package on a break threshold derived from its baseline - #60
Conversation
|
@codex security review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
🛡️ Codex Security ReviewSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
90cfe94 to
83b906c
Compare
|
@codex security review |
🛡️ Codex Security ReviewSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
A target sits at packages/targets/<package>, one level shallower than the packages in the other layers, so neither upload glob matched it and the command line's and the bundle's HTML reports never reached the artifact.
The Vite plugin's compiler evaluates a .css.ts module to emit its stylesheet and class names, so the instrumented copy never runs in the test process and every mutant in it reports no coverage, which no test can change. Mutating it only pulls the score of every package with styles down. The shard planner's comments no longer claim to mirror the mutate globs exactly, since they leave out more than unit tests.
Its unit tests render the screens in happy-dom with the Vanilla Extract plugin, as the UI packages' do, and those packages already run under Stryker, so nothing kept the app out of mutation testing. Its store worker and style modules stay out through the shared mutate globs.
breakThresholdFromBaseline takes a completed run's killed, timed-out, survived and no-coverage counts and returns the score with every timeout counted as survived, floored to a whole percentage. A timeout depends on runner load and the other verdicts do not, so this is the lowest score the same code and tests can produce, and the gate needs no hand-picked margin. The shared config also names the package left out of mutation testing and why.
83b906c to
4152332
Compare
|
@codex security review |
🛡️ Codex Security ReviewSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
Draft: each package's break threshold is set from this branch's own mutation run, which also measures the web app and the packages with style modules under the new mutate globs. Thresholds, measured scores and the follow-up issues land before this is marked ready.
breakThresholdFromBaselineinstryker.shared.tsderives a threshold from a completed run's counts: the score with every timed-out mutant counted as survived, floored to a whole percentage. Whether a mutant times out depends on runner load; killed, survived and no-coverage verdicts do not, so this is the lowest score the same code and tests can give and needs no hand-picked margin.Also in here:
.css.tsmodules leave the mutate set (the Vanilla Extract compiler evaluates them outside the test process, so every mutant in them was no-coverage on main), graph-web gains a Stryker run, and the report upload now matches the targets' directories, which it missed.Refs #43