Chat Experience
This is the central OpenChat feature set used by all authenticated users.Core Message Lifecycle
- User submits text/files through
PremiumPromptInputInner. use-persistent-chatorchestrates chat creation + action dispatch.- Streaming updates are applied while job status is active.
- Final message state is persisted via Convex mutations.
Built-in Message Actions
Frommessage-actions.tsx and related hooks:
- Edit previous user message.
- Retry response with same or different model.
- Fork chat from any message to create a branch.
- Copy user or assistant content.
Streaming and Recovery
- Live updates are managed by
use-chat-streaming.ts. - Active stream jobs are read from Convex and resumed on reconnect.
- Stop generation shortcut and UI action both cancel active stream state.
Sidebar and Chat Navigation
- Chat list comes from paginated
chats.listquery. - Supports rename, delete, bulk delete, unread markers, and active stream indicators.
- Route
/c/$chatIdloads specific conversation context.