- Extend canvas store addNode's auto-overlap avoidance (ring-scan) to all
node types, not just 'image'. Previously, repeated import-to-canvas for
world3d/model3d nodes stacked them on the same viewport center
coordinate, making them appear locked and impossible to drag apart.
- Add addNodesBulk helper that loops addNode and reuses its avoidance
logic, suitable for batch-importing multiple history records.
- Wire selectedAddTaskIds state, addableTasks/selectedAddTasks memos,
toggle/selectAll handlers, and prepare handleBatchImportToCanvas in
the3D canvas page so future UI can hand off bulk import to the store.
- Add canvas project and node database tables
- Create canvas workspace with drag, resize, zoom and pan
- Add ImageNode with background removal, enhance, extend, angle edit, scene fusion
- Add VideoNode with playback controls
- Add TextNode for text editing
- Integrate AI image generation API (Gemini/Alibaba)
- Implement viewport culling for performance optimization
- Add canvas entry in top navigation bar