feat(chat): multi-turn Chat Session with Conversation history sidebar

Grounded Ask owns the product chat UI: persistent thread_id across a
Chat Session, New chat / Continue conversation, and a sidebar that lists
Conversations from the Conversation Record with formatted run metadata
(timing, tokens, evidence chunks).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-08 17:00:33 +03:30
commit e693b9bbfc
14 changed files with 2510 additions and 0 deletions

33
CONTEXT.md Normal file
View File

@@ -0,0 +1,33 @@
# Grounded Ask
A separate operator app for uploading a tenant’s docs, asking questions, and reading answers grounded in those docs — with source metadata.
## Language
**Grounded Ask**:
The operator product for a straight pipeline: choose a tenant, upload docs, ask a question, receive an answer grounded in that tenant’s corpus plus source metadata.
_Avoid_: Hybrid Console, chatbot, chat demo, Agent Workflow, pipeline (as a product name)
**Tenant Profile**:
A locally saved operator label for one tenant (display name + API base URL + API key). Selecting a Tenant Profile is how Grounded Ask switches tenants; the API still resolves the tenant only from the key.
_Avoid_: tenant dropdown from the server, login, account switcher, Connection Profile (Hybrid Console term)
**Source**:
One provenance row on a grounded answer: domain, file_id, point_id, source_filename, chunk_index, a short content excerpt, and retrieval score. v1 Sources are the chunks retrieved for that turn (the evidence set), not model-claimed quote citations.
_Avoid_: citation-as-model-claim, hit, search result, related chunk, full neighbor context
**Ask Page**:
The single top-to-bottom Grounded Ask screen: select Tenant Profile, upload docs, ask a question, read the answer and its Sources — no wizard and no separate panes.
_Avoid_: wizard, multipage console, chat sidebar layout
**Single-turn Ask**:
One question, one answer (+ Sources), with no conversation history carried into the next question. v1 Grounded Ask does not expose multi-turn threads in the UI.
_Avoid_: chat thread, follow-up conversation, Agent Workflow multi-turn
**Domain**:
A named corpus bucket inside a tenant. Every upload in Grounded Ask requires choosing (or creating) a Domain first; Sources report which Domain evidence came from.
_Avoid_: folder (as a synonym in the UI), category, tag
**Whole-tenant Ask**:
A Single-turn Ask that searches the selected tenant’s entire corpus (all Domains). v1 has no domain filter on the question box; provenance still appears per Source.
_Avoid_: domain-scoped ask, required domain on ask