Exercises every interactive surface added so far: drag/resize/progress, inline + dialog edit, add / delete / move
via toolbar / context menu / keyboard / bottom "+ Add task" row. Every mutation routes through the command bus, so
Ctrl+Z / Ctrl+Y undo & redo from anywhere in the chart.
Try it
Toolbar: click + to add a placeholder; select rows then click the trash.
Right-click a row or bar for Edit / Add child / Add sibling / Indent / Outdent / Delete.
Keyboard (focus a row first):
Delete / Backspace — remove (cascades children)
Tab — indent under previous sibling
Shift+Tab — outdent to grandparent
↑↓SpaceEnter — nav / select / open editor
Inline edit: double-click any cell in the task list.
Dialog edit: double-click a bar in the timeline.
Bottom + Add task row inserts a new placeholder at the root.
Draw a dependency: hover a bar to reveal the two anchor circles at its start/finish
edges, then drag from one anchor onto another bar's anchor. Anchor pairs derive the type (right→left = FS,
right→right = FF, left→left = SS, left→right = SF). Esc cancels mid-drag.
Delete a dependency: click the arrow (it turns red and shows a ✕ at the head),
then click the ✕ — or press Delete while it's selected.
Undo / Redo: toolbar Undo/Redo buttons, Ctrl+Z /
Ctrl+Y (or ⌘+Z / ⌘+Shift+Z),
or the buttons below.
Cascade modes:children deletes the subtree; orphan keeps children and reparents them to the deleted
task's parent. Dependencies touching the deleted task auto-clean — watch the event log.