Architecture: Where should group management UI live — dedicated page or in...
Documentation for Sessions
🏗️ Architecture: Where should group management UI live — dedicated page or in...
Date: 2026-03-21
Time: 17:14:31 UTC
Session: gspace1-250.7
Agent: angular
Confidence: 94%
Status: ✅ Documented
📋 Decision Context
Question:
Where should group management UI live — dedicated page or integrated into existing surfaces?
Task: S250: Group management UI placement decision
🎯 Decision Made
Chosen:
No dedicated group management page. Groups are a Vitto capability, not a user workflow. Users interact with groups through: (1) whistle button in chat header (already built), (2) group conversations appearing naturally in session list, (3) whistle notification toasts. The only UI additions needed are: group badge on session sidebar items, sender attribution in group messages, and Socket.IO participant-joined listener.
Options Considered:
- Dedicated /vitto/groups page (over-engineered, wrong mental model)
- Enhance existing chat surfaces with group awareness (chosen — matches user intent)
- Admin-only group oversight page (valid future add, not needed now)
💭 Reasoning
Initial proposal was /space/{slug}/vitto/groups as a dedicated management page. User challenged this: what is the purpose of groups? Groups exist so Vitto can orchestrate multi-person communication across channels. Users don't wake up thinking 'I need to create a group' — they say 'bring Alex in' via whistle. The whistle button IS the group creation UI. A separate management page would be a solution looking for a problem. The existing chat surfaces (session sidebar, message renderer, header with whistle button) are the correct integration points. Frontend components already exist for all of these — they just need wiring fixes, not new pages.
📁 Files Involved
libs/libs-ai/vitto-chat/src/lib/components/chat-shell/chat-shell.component.tslibs/libs-ai/vitto-chat/src/lib/components/whistle-button/whistle-button.component.tslibs/libs-ai/vitto-chat/src/lib/components/chat-shell/unified-session-sidebar.component.ts
🔗 Related
- Decision ID:
dev_1774113271716_9ojsxl6 - Session: 250
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation