- effort S (~0.5-1 day): rides on Phase 1 machinery (serde snapshots,
replace_state, the store.track() autosave trigger) — no component
changes needed, page-agnostic
- coalesced snapshots (one per ~1 s window), capped stacks, Ctrl+Z /
Ctrl+Shift+Z with focus guard for text fields
- sequencing note: lands before the edit-heavy Phases 2-7 so their edits
are undoable from day one; nothing depends on it
- Phase 8 e2e item: drop the persistence round trip (already covered by
persistence.spec.ts), add undo shortcuts
- ARCHITECTURE gaps list: note the missing undo/redo
Verified dependency reductions (13 unused or replaceable crates) and
idiomatic cleanups for the current codebase. Not applied yet; linked from
ROADMAP phase 0. Toolchain stays on nightly.