1929023409
- Undo walks to parent node in history tree, redo follows last-active-child for correct branch tracking after forks - HistoryTree tracks branch recency via last_active_child field, updated on push() and checkout() path transitions - SVG files can be dragged from Finder onto the canvas window - Edit menu with Undo/Redo items, command palette entries - 3 new tests: undo, redo, redo-after-fork branch behavior - 29 tests passing, clippy clean