Context
The graph document needs a spatial UI similar to design tools while preserving terminal performance, keyboard access, and the daemon ownership boundary.
Goal
Implement an infinite canvas with pan, zoom, minimap, selection, grouping, alignment, snapping, and typed nodes.
Scope
- Render Terminal, Note, Task, Agent Team, and File Tree nodes.
- Draw typed connections with accessible labels and selection.
- Preserve mounted terminal controllers when nodes move, group, or change visibility.
- Add keyboard navigation, multi-select, zoom controls, focus management, and reduced-motion behavior.
- Persist layout through the CanvasDocument revision API.
- Virtualize non-terminal nodes outside the viewport where appropriate.
- Provide an overview/list alternative for users who cannot use a spatial canvas.
Acceptance criteria
Dependencies
The CanvasDocument issue and the production xterm/event-stream integration must be complete.
Context
The graph document needs a spatial UI similar to design tools while preserving terminal performance, keyboard access, and the daemon ownership boundary.
Goal
Implement an infinite canvas with pan, zoom, minimap, selection, grouping, alignment, snapping, and typed nodes.
Scope
Acceptance criteria
Dependencies
The CanvasDocument issue and the production xterm/event-stream integration must be complete.