test: BUG-10 deact+reactivate double-act (already fixed by 1-list model)

1-list model keeps slot position on toggle. Reactivate does not re-insert
by initiative, so no second turn. computeTurnOrderAfterAddition is dead code
(no call sites). Tests prove no double-act in both scenarios.
This commit is contained in:
david raistrick
2026-07-04 17:06:07 -04:00
parent 8ad750c60a
commit 0ff50561c7
2 changed files with 86 additions and 9 deletions
+4 -9
View File
@@ -8,15 +8,6 @@ Backlog of bugs + long-term items. Milestones live in REWORK_PLAN.md.
- `reorderParticipants` returns `log: null`. Other ops return `log.undo`.
- Cannot undo drag-drop. Candidate for undo system (M6).
### BUG-10: deact+reactivate same round double-acts participant
- Discovered in 500-round replay (3 occurrences). DISTINCT from BUG-5.
- Pattern: participant acts → DM deactivates them → DM reactivates them
same round → re-inserts by initiative (front) → acts AGAIN before round ends.
- No "acted-this-round" guard. Slot-array model has no per-round-acted set.
- Edge case (DM deact+reactivate same participant same round).
- Fix candidate: track actedThisRound set, skip re-acted; OR insertion
places reactivate AFTER current position (not by initiative).
### BUG-13: reorderParticipants crossing current pointer = ambiguous acted-semantics
- `reorderParticipants` (shared/turn.js) = pure drag, no pointer logic.
- Swapping two actors across current pointer mid-round = ambiguous
@@ -95,6 +86,10 @@ Backlog of bugs + long-term items. Milestones live in REWORK_PLAN.md.
### BUG-8: server adapter has no reconnect
- FIXED — onclose reconnects + re-subscribes existing paths.
### BUG-10: deact+reactivate same round double-acts participant
- FIXED — 1-list model keeps slot position on toggle. Reactivate does not
grant second turn. Test: turn.bug10.test.js.
### BUG-11: FE Combat.scenario test crashes
- FIXED — moved to shared/turn.combat.test.js, pure functions, 100 rounds.