Add Chat to Remote Support Sessions
Backlog
Epic
High
Created:
Dec 25, 2025
Updated:
7 days ago
Description
## Overview
Add real-time text chat capability to remote support sessions, enabling operators and guests to exchange messages alongside the video call.
## Architecture Decisions
1. **Chat Model**: Session-scoped chat - each `SupportSession` has its own message stream via a new `SupportSessionMessage` model
2. **Persistence**: Messages are persisted for audit and review after session ends
3. **Guest Transport**: WebSocket fallback endpoint for unauthenticated guest subscriptions (guests have no NATS device)
4. **UI Placement**: Collapsible panel alongside video in both operator and guest interfaces
## Key Challenges
- Guest is unauthenticated (no `User` record) - messages need `participant_type` field
- Guest cannot use NATS (no device context) - requires dedicated WebSocket/SSE endpoint
- Must work with existing Daily.co video infrastructure
- Chat should remain accessible after session ends (for operators reviewing history)
## Success Criteria
- [ ] Operators can send/receive messages during active sessions
- [ ] Guests can send/receive messages without authentication
- [ ] Messages persist and are viewable after session ends
- [ ] Real-time delivery with minimal latency
- [ ] Consistent collapsible panel UI on both sides
Recent Comments
A
## Restructured to Vertical Slices Cancelled original 8 subtasks (horizontal layers) and replaced with 3 vertical slices: **Old approach (cancelled):** - Phase 1: All backend (no UI) - not verifiable - Phase 2: All frontend - delayed value **New approach:** | Slice | Ticket | Deliverable | Verification | |-------|--------|-------------|--------------| | 1 | #109 | Operator chat end-to-end | Open session → send message → see in UI | | 2 | #110 | Guest chat (extends #109) | Guest + operator can chat bidirectionally | | 3 | #111 | History review (polish) | View chat transcript after session ends | Each slice is independently deployable and verifiable by actually using the feature.
Ticket Stats
Status:
Backlog
Priority:
High
Type:
Epic
Subtasks:
0/4
Comments
1 comments
A
Add a Comment
Subtasks
4
Total
Completed
0
In Progress
0
Pending
1