Base 89fd2d6fe. r1's build.patch on the new base gives the r2 tree byte for
byte, so delta.patch is empty; the interdiff shows only index lines and hunk
offsets. Mutants 5/5 killed with controls passing, targeted gate rc 0.
Candidate manifest sha256 1c0e6f8f260ae51b31c2235193c36ed1c005faefe317e1452a351a3bb5690ef0.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
1.9 KiB
Row 133 (#1627) mutants (round 1 table; round 2 run appended)
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 |
Round 2 run, on 89fd2d6fe
Same five faults on the rebased candidate. Run 2026-10-15T17:55:54Z to 17:55:58Z, in the slot Sage granted in sage-0353: controls 2/2 passed, 5/5 killed. Each mutant failed the same tests as in round 1 (01: 1, 02: 3, 03: 4, 04: 1, 05: 3). Afterwards the worktree's changed files matched the candidate manifest (RESTORED_MATCHES_MANIFEST in mutants-run.log).