row 271 (264d, #1776): BUILD.md run limits for the e567f949c gate (mos-1275, sage-2991); mutant lines moved one down past the B1 comment. Doc only.

This commit is contained in:
jason.woltje committed 2026-10-22 15:30:32 -05:00
1 parent e567f949cc
commit e8af389e6b
1 file changed
+32 -9
+32 -9
View File
@@ -571,20 +571,21 @@ the cancelled filter in #threadRows, the uncertain once-only branch at launcher.
### Mutants (round 1, defined, not run)
Each mutant is one edit on the 271 tree, and each kill is an assertion failure in a named test, not a timeout
(sage-2707). Lines are on gizmoduck/row271-r2, after the rebase onto 0cbe2e9b3 (launcher.mjs didn't move).
(sage-2707). Lines are on gizmoduck/row271-r2 at e567f949c, after the rebase onto 0cbe2e9b3 and the B1
fix, which put one comment line above broker.mjs:1194 (launcher.mjs didn't move).
| # | File:line | Edit | Expected kill |
| --- | --- | --- | --- |
| M1 | broker.mjs:5157 | drop `#sessionFence(s.session)` in role.claim | bus T4 B2 (claim on a clearing session gives session-clearing) |
| M2 | broker.mjs:6145 | drop the fence in thread.send | bus T4 D7 held default (send during the clear refuses session-clearing) |
| M3 | broker.mjs:6133 | drop the fence in thread.open | bus T4 D7 held default (open refuses) |
| M4 | broker.mjs:6286 | drop the fence in session.clear | bus T4 D7 repeat/conflict: a second op refuses session-clearing. The session_ops trigger (one open clear) is a second fence and would refuse with its own text, so the kill is the code check, not "refused at all" (mutant-masked-by-second-fence) |
| M5 | broker.mjs:5598 | receive returns [] without writing drained | bus T4 D7 held default (stages after receive) |
| M6 | broker.mjs:1318 | drop the drain at endLaunch | bus T4 D7 run ends before its next receive |
| M7 | broker.mjs:6297 | always skip the drain at accept | bus T4 D7 unheld session |
| M1 | broker.mjs:5158 | drop `#sessionFence(s.session)` in role.claim | bus T4 B2 (claim on a clearing session gives session-clearing) |
| M2 | broker.mjs:6146 | drop the fence in thread.send | bus T4 D7 held default (send during the clear refuses session-clearing) |
| M3 | broker.mjs:6134 | drop the fence in thread.open | bus T4 D7 held default (open refuses) |
| M4 | broker.mjs:6287 | drop the fence in session.clear | bus T4 D7 repeat/conflict: a second op refuses session-clearing. The session_ops trigger (one open clear) is a second fence and would refuse with its own text, so the kill is the code check, not "refused at all" (mutant-masked-by-second-fence) |
| M5 | broker.mjs:5599 | receive returns [] without writing drained | bus T4 D7 held default (stages after receive) |
| M6 | broker.mjs:1319 | drop the drain at endLaunch | bus T4 D7 run ends before its next receive |
| M7 | broker.mjs:6298 | always skip the drain at accept | bus T4 D7 unheld session |
| M8 | launcher.mjs:798 | drop the survivor wait | cli T4 D7 Q2 survivor (stage stays drained, no stop) |
| M9 | launcher.mjs:815 | CLEAR_HELD empty | cli T4 D8 held (start held, one log line) |
| M10 | broker.mjs:1208 | drop the message_cancels filter in #threadRows | cli T4 D7 running session (cancelled input would launch D again) or bus B1; the run decides which, both are named |
| M10 | broker.mjs:1209 | drop the message_cancels filter in #threadRows | cli T4 D7 running session (cancelled input would launch D again) or bus B1; the run decides which, both are named |
| M11 | launcher.mjs:788 | `stage === "drained"` becomes `true` | cli T4 D7 uncertain (one uncertain event); bus T4 D7 delivered-unread keeps its broker-side once |
| M12 | broker.mjs:1137 | `#ownerRefusal` returns null | bus T4 N4 failed clear |
| M13 | broker.mjs:1195 | drop the `'session.clear'` verb arg from `#ownerRefusal`'s `#granted` call (the r2 defect, duckworth-0201 B1) | bus T4 N4 live grant (refusal access-refused, state failed) |
@@ -662,3 +663,25 @@ Mos, and a gate red in these files outside the listed lines goes to Mos:
A grep for `'3m'` in these files afterwards has no hit. session-clear.test.mjs's 3m engine is new. This is a rebase,
so the next run reruns every touched file whole.
## Run limits (mos-1275, sage-2991)
The gate on e567f949c (sage-2991). Each node --test file and suite runs under `timeout -k 10 LIMIT`, and
each scripts/test-*.sh under at least 3x its longest recorded run. The records are from
agents/gizmoduck/work/queue-269/BUILD.md "Run limits", plus row 269's r3 gate.
| Run | Longest recorded | LIMIT |
| --- | --- | --- |
| stack-release.test alone | 575 s (264a r12 survey) | 1800 s |
| each other touched file alone | 15 s (thread-launch.test) | 300 s |
| bus suite | 23 s | 900 s |
| seat suite | none recorded | 600 s |
| cli suite | 591 s (row 281 gate) | 1800 s |
| each scripts/test-*.sh | 42 s (test-foundation) | 900 s |
| each mutant run (one session-clear file whole) | none recorded | 300 s |
A timeout with no failed test is a hang and goes to Sage. A timeout in the shell phase goes to Mos
unplaced (mos-1275). A first red in a new 271 test is placed and reported after (mos-1272). A second
red, a red in an old test outside the mos-1336 lines, or a fix that needs a product change outside the
manifest or a looser assertion stops the run and goes to Mos and Sage (sage-2991). Mutants run only on
a green base.