feat(ui): first-class undo/redo buttons in combat controls
Undo/redo pills in InitiativeControls, always visible when encounter open. - Undo = latest non-undone log for this encounter, applies undo.updates. - Redo = latest undone log, applies undo.redo (forward patch). - encounterPath added to all 14 logAction contexts (filter key). - redo:patch added to undoData so redo replays real forward state. - Disabled when stack empty. Tooltip shows target action message. - Uses current 2-write undo (non-tx). Race safety deferred to FEAT-LOG. TODO updated. 84 FE tests green.
This commit is contained in:
@@ -8,7 +8,7 @@ Backlog of bugs + long-term items. Milestones live in REWORK_PLAN.md.
|
||||
- Ambiguous label. May expand work based on what NPC means here (ally? monster?
|
||||
display-only? skip in turn order?). Clarify intent before UX changes.
|
||||
|
||||
### FEAT: first-class undo/redo UI buttons (B — do now)
|
||||
### FEAT: first-class undo/redo UI buttons (B --- do now)
|
||||
- Toolbar buttons ↶/↷ in AdminView header, not buried in /logs.
|
||||
- Undo = revert latest non-undone log. Redo = re-apply latest undone.
|
||||
- Uses current 2-write undo (non-tx). Race safety = log refactor later.
|
||||
@@ -27,8 +27,23 @@ Backlog of bugs + long-term items. Milestones live in REWORK_PLAN.md.
|
||||
- replay-combat + analyze-turns rewritten to emit/consume same event shape.
|
||||
- Migration: keep old log entries readable; new format for new writes.
|
||||
|
||||
|
||||
## FEAT - parallel campaigns
|
||||
|
||||
## FEAT - multi user
|
||||
|
||||
## FEAT - clarify what end encounter does and what initiatives reset means
|
||||
|
||||
## Done (history)
|
||||
|
||||
### FEAT: first-class undo/redo UI buttons (DONE)
|
||||
- ↶/↷ pills in InitiativeControls, always visible when encounter open.
|
||||
- Undo = latest non-undone log (per encounter). Redo = latest undone.
|
||||
- encounterPath added to all 14 log contexts (filter key).
|
||||
- redo:patch (forward) added to undoData. Real redo replays forward state.
|
||||
- Disabled when stack empty. Tooltip shows target action.
|
||||
- Uses current 2-write undo (non-tx). Race safety = FEAT-LOG refactor.
|
||||
|
||||
### Architecture: 1-list turn order model (slot, never sort)
|
||||
- Single source: turnOrderIds === participants.map(id). No re-sort after
|
||||
startEncounter. nextTurn skips inactive (predicate), inactive stay in slot.
|
||||
|
||||
Reference in New Issue
Block a user