Description
Chat Conversations is the primary conversational workspace for asking questions, directing agents, and turning results into durable knowledge. It combines a threaded message timeline with streaming assistant output, model and provider selection, attachments, citations, source previews, queued follow-up messages, stop controls, branching and replay, capture actions, and persistent conversation metadata. Conversation history remains accessible through the module sidebar and can be reopened across sessions.
The reusable conversation engine lives in the Tier-2 parts package, while the web module supplies a concrete live client, row mappers, routing, body-renderer integration, and shell bridges. This separation lets the same conversation tree mount full-page, inside a floating panel, or as a read-only renderer for stored Conversation rows without duplicating message behavior.
Selling Points
- Keeps questions, sources, tool calls, and resulting decisions together in one durable thread.
- Makes grounded answers inspectable through citations and source previews rather than presenting opaque model output.
- Supports interruption, queued follow-ups, and branching, giving users control over long or exploratory exchanges.
- Turns useful output into plans, captures, or artifacts without a copy-and-paste handoff to another module.
- Preserves provider and model choice while clearly surfacing availability problems before dispatch.
User Story
A product lead opens a conversation, attaches a launch brief, selects an available model, and asks for risks. They inspect two cited workspace rows, queue a follow-up while the answer streams, branch from an earlier message to explore another strategy, and capture the final recommendation as durable workspace knowledge.
Extension Surface
The feature is extensible through the injected client and shell seams. packages/parts/src/chat-contract/client.ts defines the ChatDataClient contract consumed by shared hooks and rendering, while apps/web/src/modules/chat/composition/chat-client.ts selects the concrete implementation. These are designed in-repo adapters, not a formal external chat-engine plugin axis.
Capabilities & Limits
- Sends, streams, stops, queues, branches, replays, updates, and deletes durable conversations.
- Supports attachments, sources, citations, captures, model controls, and provider health.
- Mounts the same conversation experience in full-page and floating contexts.
- Limit: dispatch depends on at least one available provider or local agent, and a missing backend capability is shown as unavailable rather than simulated.
Implementation Map
packages/parts/src/engine/ConversationView.tsxpackages/parts/src/composer/ConversationInput.tsxpackages/parts/src/messages/ConversationMessageList.tsxapps/web/src/modules/chat/ChatModulePage.tsxapps/web/src/modules/chat/api/real-client.ts