muharmutation harness
Pages

Roadmap

Everything on this page is coming, not shipped. Each item is an open issue in the medici-finance/assay tracker; follow the link for its current state. The rest of this site documents only what released muhar does today.

Speed

ItemIssue
Cut the build cost of each mutant: overlay the mutated file instead of copying the tree, share the build cache across workers safely, and size -j from measurements rather than a fixed cap.assay#2635
Coverage-guided test selection: run only the tests that reach the mutated code, instead of the whole suite per mutant.assay#2636
A diff-scoped mode, -diff, that runs only the mutations whose files a change touches.assay#2640

Install and CI

ItemIssue
A standalone muhar README and a one-line install that fetches muhar alone, not the whole desk-tools bundle.assay#2638
A reusable CI composite action: install a pinned muhar, run a sharded sweep, apply the Totals: gate.assay#2642

Until these land, use the release bundle and the CI recipes.

Verdicts

ItemIssue
Report a mutant that does not compile as unviable instead of CAUGHT, and add a per-mutant timeout.assay#2639

Known issues

These are defects in released muhar. Each page that is affected says so where it matters.

IssueEffect todayWorkaround
assay#2641SIGINT or SIGTERM exits 130 without restoring the file under test (sequential runs) or removing worker copies (-j above 1).Run on a clean tree; after an interrupt, check git status and the temp directory (signals).
assay#2643An absolute file with -j above 1 edits the original tree while the suite runs in a copy, giving false NOT_CAUGHT verdicts.Use relative file paths (spec reference).
assay#2644A flag-parse error exits 2, the same status as HARNESS BROKEN.Fail on any non-zero exit; a flag error prints nothing on stdout (exit codes).
assay#1382With -j 4, a spec has been seen to report false COULD_NOT_MUTATE for entries that -j 1 plants and catches. The cause is not fully diagnosed; the worker copies appear to lack files the spec names.Treat a COULD_NOT_MUTATE from a parallel run as suspect and confirm it with -j 1; keep every file the spec names and the suite reads under root.