Architecture: Session 133: How should the 8 scattered chat interfaces (AIP...
Documentation for Sessions
🏗️ Architecture: Session 133: How should the 8 scattered chat interfaces (AIP...
Date: 2026-02-21
Time: 19:25:10 UTC
Session: gspace1-133.8
Agent: angular
Confidence: NaN%
Status: ✅ Documented
📋 Decision Context
Question:
Session 133: How should the 8 scattered chat interfaces (AIPanelComponent 4,796 lines, AiChatCore 8,923 lines, SimpleAiChat, CommandChat, VittoHub inline, ExtensionPanel, ThemeGen, VittoChatShell) be unified into one system?
Task: Not specified
🎯 Decision Made
Chosen:
Create a composable plugin-based system with strict decomposition rules
Options Considered:
- Merge everything into one enhanced AIPanelComponent
- Create a composable plugin-based system with strict decomposition rules
💭 Reasoning
Built a composable chat system in @libs-ai/vitto-chat with: (1) UnifiedChatShellComponent as the single orchestrator (~116 lines, composes sub-components), (2) 5 plugins (Generation, Context, Agent, Model, Action) that surfaces opt into, (3) 22 sub-components organized into 4 systems (shell+header, message x7, input x5, sidebar x3, shared x4), (4) 6 focused services (engine, persistence, cost, context, streaming, model). Each surface (vitto/chat, /panel, extension, agent terminal, theme generator) composes the shell with different plugin combinations. Anti-Monolith Constitution enforced: TS<=250 lines, HTML<=120, SCSS<=150 per file. The entire 22-component system totals ~3,900 lines vs AIPanelComponent alone at 4,796. All 4 app route files updated (gograb-ai, gograb-dev, gograb-admin, vitto-hub). Deprecated components annotated: SimpleAiChat (740 lines), AiChatCore (5,519 lines), VittoChatService (475 lines).
📁 Files Involved
- No files specified
🔗 Related
- Decision ID:
dev_1771701910514_eycpbn8 - Session: 133
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation