Architecture: How should Vitto Studio manage dedicated chat sessions per u...
Documentation for Sessions
🏗️ Architecture: How should Vitto Studio manage dedicated chat sessions per u...
Date: 2026-03-06
Time: 15:15:24 UTC
Session: gspace1-183.5
Agent: storage
Confidence: 85%
Status: ✅ Documented
📋 Decision Context
Question:
How should Vitto Studio manage dedicated chat sessions per universe build?
Task: Session 183: Vitto Studio dedicated chat session per universe
🎯 Decision Made
Chosen:
localStorage key per (spaceSlug, universeSlug) mapping to chat session ID. StudioSessionService checks for existing session on init, resumes if found, creates new if not. Uses VittoChatEngineService.switchSession() and newSession() — zero schema changes.
Options Considered:
- localStorage key per universe (chosen)
- Extend VittoSessionMetadata with context tags
- Query backend sessions by title prefix
💭 Reasoning
Chat sessions already have (userId, spaceId) scope but no context tagging. Options: (1) localStorage key mapping — zero schema changes, same pattern as activeSessionId, works immediately. (2) Extend VittoSessionMetadata with tags — requires persistence schema change, IndexedDB migration, backend sync update. Option 1 is correct for now — it solves the immediate problem (dedicated session per universe build) without touching the persistence layer. Option 2 is a future improvement when cross-device Studio session recall is needed.
📁 Files Involved
libs/libs-structural/vitto-studio/src/lib/services/studio-session.service.tslibs/libs-structural/vitto-studio/src/lib/components/studio-shell/studio-shell.component.ts
🔗 Related
- Decision ID:
dev_1772810124920_93ifr2t - Session: 183
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation