docs: separate REWORK_PLAN (infra/milestones) from TODO (bugs)
REWORK_PLAN.md: backend rework plan only. M0-M3 done, M4 = dead-not-skipped (the one feature request), M5 docker, M6 undo, M7 e2e. Removed bug-stuff and hallucinated JUMP_TURN_TO. Server = generic KV doc store. TODO.md: bugs only. BUG-1/2 resolved, BUG-4/5/6/7/8/9 confirmed. No milestones, no features. Pipeline stripped to bugs. M4 (dead-not-skipped) lives in REWORK_PLAN only.
This commit is contained in:
@@ -1,33 +1,7 @@
|
||||
# TODO
|
||||
|
||||
## Milestone M4 — Initiative rotation bugs + features
|
||||
|
||||
Split: bug (rotation corruption) vs feature (dead-participant handling).
|
||||
|
||||
### BUG-5: Initiative skip (mid-round add/revive corrupts rotation)
|
||||
- **Real bug.** Rotation corrupts when participant added/revived mid-round.
|
||||
- Test: `shared/tests/turn.combat.test.js` (jest, seeded, RED).
|
||||
- 13 dupes / 100 rounds. First at round 4 (Cleric twice).
|
||||
- Root cause: `computeTurnOrderAfterAddition` appends id to turnOrderIds
|
||||
end. Round wrap re-sorts by initiative. `currentTurnParticipantId` pointer
|
||||
stale → nextTurn revisits.
|
||||
- See full detail below in Confirmed bugs section.
|
||||
|
||||
### FEAT-1: Dead participants should stay in turn order (as-designed→change)
|
||||
- **Feature request, not bug.** Current behavior is as-designed (dead =
|
||||
inactive = skipped). User wants change: dead occupy initiative slot,
|
||||
PCs get death-save turn.
|
||||
- Saw Saturday game.
|
||||
- Desired:
|
||||
- dead PC not removed from turnOrderIds
|
||||
- dead PC turn still comes up (nextTurn visits them)
|
||||
- dead PC on their turn can deathSave
|
||||
- dead PC not auto-set isActive=false by applyHpChange
|
||||
- Affects: `shared/turn.js` `nextTurn` (filters `isActive`), `applyHpChange`
|
||||
(sets isActive=false on death), `computeTurnOrderAfterRemoval`.
|
||||
- Characterization tests (`src/tests/Combat.characterization.test.js`) lock
|
||||
CURRENT behavior — UPDATE to desired when implementing.
|
||||
- RED test locked (desired state): `shared/tests/turn.dead-skip.test.js` (4 tests).
|
||||
Confirmed bugs found via testing. M4 (dead-not-skipped) lives in
|
||||
REWORK_PLAN.md — not here. This file = bugs only.
|
||||
|
||||
## Confirmed bugs (tests written, NOT fixed)
|
||||
|
||||
@@ -114,12 +88,8 @@ Split: bug (rotation corruption) vs feature (dead-participant handling).
|
||||
- Display frozen until full reload.
|
||||
- Fix: `onclose` → reconnect + re-subscribe existing paths.
|
||||
|
||||
## Pipeline
|
||||
## Pipeline (bugs only — milestones live in REWORK_PLAN.md)
|
||||
- [ ] BUG-4: fix setDoc→updateDoc for all 5 activeDisplay sites
|
||||
- [ ] BUG-5: fix computeTurnOrderAfterAddition currentTurn re-anchor
|
||||
- [ ] BUG-6: reorderParticipants update turnOrderIds
|
||||
- [ ] BUG-8: ws adapter reconnect
|
||||
- [ ] FEAT-1: dead participants stay in turn order (update characterization)
|
||||
- [ ] M5 docker-compose
|
||||
- [ ] M6 undo rework (transactional events table)
|
||||
- [ ] M7 Playwright E2E
|
||||
|
||||
Reference in New Issue
Block a user