Implementation: How should the chat panel work across gograb-ai routes — sho...
Documentation for Sessions
⚙️ Implementation: How should the chat panel work across gograb-ai routes — sho...
Date: 2026-03-04
Time: 17:11:40 UTC
Session: gspace1-175.7
Agent: angular
Confidence: 97%
Status: ✅ Documented
📋 Decision Context
Question:
How should the chat panel work across gograb-ai routes — should the shell have its own panel or delegate to the app-level AiPanelTabsComponent?
Task: Session 175: Fix chat panel to use correct AiPanelTabsComponent everywhere
🎯 Decision Made
Chosen:
Removed the inferior chat panel from VittoUnifiedShellComponent entirely. The app-level AiPanelTabsComponent (with resize, Observatory tab, full plugin set) is now the ONLY chat panel across ALL routes. Shell's Chat button and Cmd+Shift+V shortcut now call AIPanelStateService.toggle(). Reverted previous isOnVittoRoute logic that was hiding the correct panel.
Options Considered:
- Remove shell panel, delegate to app-level AiPanelTabsComponent
- Keep shell panel but add resize and Observatory
- Have both panels with mutual exclusion logic
💭 Reasoning
The previous approach (hiding app-level panel on /vitto/* routes, showing shell's inferior panel) was wrong. The app-level AiPanelTabsComponent has resize via UxResizeHandleComponent, Observatory tab, full plugin set, and proper AIPanelStateService integration. The shell's embedded UnifiedChatShellComponent was a bare-bones duplicate without these features. Single source of truth: one panel, one service, one state.
📁 Files Involved
libs/libs-ai/vitto-hub/src/lib/components/vitto-unified-shell/vitto-unified-shell.component.tslibs/libs-ai/vitto-hub/src/lib/components/vitto-unified-shell/vitto-unified-shell.component.htmlapps/gograb-ai/src/app/app.component.tsapps/gograb-ai/src/app/app.component.html
🔗 Related
- Decision ID:
dev_1772644300843_ejtm8uj - Session: 175
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation