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:

  1. Build new drag-drop system from scratch
  2. 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


🔗 Related


Auto-generated by MCP Smart Consolidation