Architecture: How should the Super Vitto Context plan be implemented — rou...
Documentation for Sessions
🏗️ Architecture: How should the Super Vitto Context plan be implemented — rou...
Date: 2026-03-04
Time: 13:51:29 UTC
Session: gspace1-175.3
Agent: angular
Confidence: 92%
Status: ✅ Documented
📋 Decision Context
Question:
How should the Super Vitto Context plan be implemented — route-first navigation, chat-beside-hub, form-aware context, and generative UI?
Task: Session 175: Implement Super Vitto Context Plan — route-aware AI co-pilot
🎯 Decision Made
Chosen:
Four-phase implementation: (A) Convert SkillStudio from ux-tabs to child routes with router-outlet shell + SkillStudioDataService for shared state, (B) Add persistent chat panel to VittoUnifiedShell with autoFlashState persistence + Cmd+Shift+V shortcut + resize handle, (C) Create VittoPageContextRegistry in vitto-core with form-aware context providers + action execution pipeline, (D) Create GenerativeUIComponentCatalog with A2UI whitelist pattern + VittoRenderComponent for dynamic rendering
Options Considered:
- Tab-to-route conversion with inline components
- Route conversion with extracted child components + shared data service
- Keep tabs but add chat panel overlay
- Full rewrite of skill studio with new architecture
💭 Reasoning
The plan required URL-driven navigation (routes > tabs) so Vitto can detect context from NavigationEnd. The chat panel replicates the proven gograb-space pattern (content-push layout). VittoPageContextRegistry enables per-route form awareness with Angular signals. The generative UI catalog uses a whitelist for security (no dynamic HTML). All four phases build on each other: routes → chat beside content → form context → rich UI rendering.
📁 Files Involved
libs/libs-ai/vitto-core/src/lib/services/vitto-page-context-registry.service.tslibs/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.htmllibs/libs-ai/vitto-hub/src/lib/components/vitto-unified-shell/vitto-unified-shell.component.scsslibs/libs-ai/vitto-hub/src/lib/components/skill-studio/skill-studio.component.tslibs/libs-ai/vitto-hub/src/lib/components/skill-studio/skill-studio.component.htmllibs/libs-ai/vitto-hub/src/lib/components/skill-studio/skill-studio-data.service.tslibs/libs-ai/vitto-hub/src/lib/components/skill-studio/skill-marketplace/skill-marketplace.component.tslibs/libs-ai/vitto-hub/src/lib/components/skill-studio/skill-builder/skill-builder.component.tslibs/libs-ai/vitto-hub/src/lib/components/skill-studio/skill-test/skill-test.component.tslibs/libs-ai/vitto-hub/src/lib/routes/vitto-hub.routes.tslibs/libs-ai/vitto-chat/src/lib/services/vitto-chat-context.service.tslibs/libs-ai/vitto-chat/src/lib/generative-ui/component-catalog.tslibs/libs-ai/vitto-chat/src/lib/generative-ui/vitto-render.component.tslibs/libs-ai/vitto-chat/src/lib/plugins/suggestions.plugin.ts
🔗 Related
- Decision ID:
dev_1772632289267_6bpnfas - Session: 175
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation