Validator refuses a messaging-limited arbiter; decision.raise refuses a route
that can't message the raiser (decision-route-refused). Candidate on e6e5b41bf,
manifest sha256 edb43aed. Targeted gate green, 5/5 mutants killed.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
1.5 KiB
1.5 KiB
Row 133 (#1627) round 1 mutants
One fault per check, applied to the candidate worktree one at a time by mutants.py, each run in its
own process group with DOCKER_HOST pointed at a nonexistent socket. A control run first runs each
distinct test set on the unmutated source; any failure stops the run. --dry checks every
mutation site matches and changes the source, and runs nothing.
| Id | File | Fault | Test |
|---|---|---|---|
| 01-validator-check | business.mjs | the arbiter messaging check never refuses (brief: drop the validator check) | business assistant.test.mjs |
| 02-raise-check | broker.mjs | decision.raise has no route check (brief: drop the raise check) | bus decision-route.test.mjs |
| 03-raise-direction | broker.mjs | checks raiser→route instead of route→raiser (brief: wrong direction) | bus decision-route.test.mjs |
| 04-within-role-exempt | broker.mjs | the within-role exemption is dropped (brief) | bus decision-route.test.mjs |
| 05-raise-own-code | broker.mjs | the raise refusal uses message-*-refused, not its own code | bus decision-route.test.mjs |
Results: mutants-run.log, mutants/results.json, mutants/control.json, one log per run under mutants/. See BUILD.md "Receipts".
Run 2026-10-15T17:31:07Z to 17:31:11Z: controls 2/2 passed; 5/5 killed.
| Id | Failing tests |
|---|---|
| 01 | the per-kind refusal test |
| 02 | the cross-role, gated and supersede refusal tests |
| 03 | those three, plus the allowed-route test |
| 04 | the assistant within-role test |
| 05 | the cross-role, gated and supersede refusal tests |