Architecture: Session 133: How does drag-drop from the unified chat integr...
Documentation for Sessions
🏗️ Architecture: Session 133: How does drag-drop from the unified chat integr...
Date: 2026-02-21
Time: 19:25:41 UTC
Session: gspace1-133.11
Agent: angular
Confidence: NaN%
Status: ✅ Documented
📋 Decision Context
Question:
Session 133: How does drag-drop from the unified chat integrate with the existing canvas/builder infrastructure?
Task: Not specified
🎯 Decision Made
Chosen:
Reuse existing @libs-ux/drag-drop + DropListConnectionService + CanvasDragData pipeline
Options Considered:
- Build new drag-drop system from scratch
- Reuse existing @libs-ux/drag-drop + DropListConnectionService + CanvasDragData pipeline
💭 Reasoning
The ActionPlugin produces the IDENTICAL CanvasDragData format that AIPanelComponent already uses. Pipeline: User generates module in chat -> backend returns actionableOutputs[] -> DraggableOutputComponent wraps output with cdkDrag + CanvasDragData -> DropListConnectionService.startAIPanelDrag() signals canvas -> user drops on UniverseCanvasBuilderComponent section -> onSectionDrop() detects AI module -> ModuleRegistryService.registerModule(manifest) -> DynamicRouteService.registerModuleRoutes(manifest) -> CrossToolSyncService.broadcastNodeCreate(). Zero canvas infrastructure changes needed. The DraggableOutputComponent (<=120 lines) is the ONLY component that touches drag-drop, keeping the concern isolated. All existing drop zones, placement constraints, and outcome tracking continue to work unchanged.
📁 Files Involved
- No files specified
🔗 Related
- Decision ID:
dev_1771701941429_um1gdzt - Session: 133
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation