Description
Chat Context Picker lets users decide what knowledge should inform a conversation instead of leaving retrieval scope implicit. From the composer, users can choose context mode, select Dotabases, include connected sources, narrow Memory Bank by domain, pick an active HUMAN.md document, and customize how much context the turn should use. Active choices return to the composer as visible pills and scope chips.
The picker is a multi-screen popover backed by live catalog reads. It distinguishes empty, loading, and error states for each source family and preserves the current conversation’s choices. The chosen HUMAN.md identity and other context settings are persisted with conversation metadata where applicable, so the next turn can accurately display and reuse the active posture.
Selling Points
- Makes retrieval scope visible before a message is sent, reducing surprising answers drawn from the wrong knowledge.
- Lets users combine structured Dotabases, memory domains, personal guidance, and connected sources without composing query syntax.
- Keeps selected context visible as compact composer pills, so a long conversation does not obscure its active assumptions.
- Supports per-conversation HUMAN.md selection, letting users adopt the right working identity or guidance for the task.
- Handles unavailable or empty source catalogs honestly instead of silently pretending context was applied.
User Story
A consultant starts a Chat for a client review. They choose the client Dotabase, select the “Customer Research” Memory Bank domain, activate their consulting HUMAN.md, and include a connected drive source. The composer shows each choice before dispatch, and the resulting answer is grounded in the intended working context.
Extension Surface
The capability is configurable through live choices. packages/parts/src/composer/context-picker/ContextPickerPopover.tsx coordinates the supported screens, and packages/parts/src/hooks/use-context-picker-data.ts reads catalogs through the injected chat client. Adding a new context family requires in-repo contract and UI work; there is no external context-screen registration point.
Capabilities & Limits
- Selects context posture, Dotabases, memory domains, HUMAN.md documents, and connected sources.
- Persists relevant conversation-level choices and reflects them in composer chips.
- Provides complete state handling for live source catalogs.
- Limit: the picker can only offer sources the current actor can read and that the live client returns; it does not bypass permissions or guarantee every source contributes to every provider.
Implementation Map
packages/parts/src/composer/context-picker/ContextPickerPopover.tsxpackages/parts/src/composer/context-picker/MemoryScreen.tsxpackages/parts/src/composer/context-picker/HumanMdScreen.tsxpackages/parts/src/hooks/use-context-picker-data.tsapps/web/src/modules/chat/api/real-client.ts