Add conversation references and queued AI handoffs across chat, orchestration, and workflows
Los mantenedores suelen responder en 1 día
@paullizer ya está trabajando en esto.
Desde el 23/10/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Summary
Add two complementary capabilities to SimpleChat: conversation references that pull focused source material into another task, and Send To Conversation handoffs that deliver a focused request/context packet and start AI work in a different conversation. Support manual use, orchestration, plan-editor Ask AI, and personal workflows/workflow Ask AI.
This issue records an investigation and agreed product direction, not an implemented feature. Investigated on the React V2 branch at application version 0.261.380.
User Value
Keep conversations isolated to their specific task or purpose while reusing useful findings from other conversations. Users should not need to paste entire transcripts into a single ever-growing chat. Orchestration and workflows should be able to find relevant prior work, reference it explicitly, and delegate a focused task to another conversation.
Proposed Behavior
Confirmed scope and interaction
- First release: V2 controls with shared backend support; only the authenticated user's own private conversations. Shared/group conversations are deferred, including sources, destinations, and workflow disclosure paths.
- Use
~as a dedicated conversation shortcut, leaving#documents/context,@mentions, and/prompts unchanged. - Display selected conversations as named pills, including inline in the composed/sent message. Stable conversation identity travels separately from its display title.
- Add Reference Conversation and Send To Conversation actions to each eligible conversation's menu. Referencing must not copy the full transcript, change source history, or start work there. Include a portable-reference copy/paste path.
- References retrieve bounded relevant excerpts from the latest visible source messages, with a stable selection for the current turn/workflow run. A new turn/run refreshes that selection.
- Send To Conversation always starts AI work in the destination. If it is busy, queue the handoff until the current turn completes; do not interrupt or replace the active stream.
- Orchestration/workflows may send within the scope explicitly authorized by an approved plan/workflow. New destinations require new approval; merely saving a draft or using Ask AI is not execution approval.
Orchestration and workflows
- Manual references provide the foundation for typed, read-only conversation search/read capabilities requested by the user.
- Ask AI may add or remove explicit conversation sources in a revised plan or workflow draft, with validated operations and source provenance.
- Personal workflows may bind specific conversations or use explicitly configured conversation lookup steps. Resolve under the actual authorized execution identity, not a caller-supplied user ID.
- Sending is a separate side-effect capability, not an implicit consequence of referencing, and not the existing workflow handoff/result-delivery mechanism.
- Source and destination retain focused provenance/status links rather than recursively importing each other's histories. No automatic conversational ping-pong.
Acceptance Criteria
-
~opens an accessible conversation picker; duplicate/renamed titles, removal, keyboard navigation, ordinary tilde/code text, and copied-reference paste work without changing existing#,@, or/behavior. - Manual references work in V2 chat and Ask AI surfaces and remain typed through send, reload, retry/edit, plan revisions, workflow save/load, and execution.
- Ownership/private-scope authorization happens before titles, snippets, messages, or dependent data are exposed and again at execution/reuse. Foreign, shared, deleted, and newly inaccessible references fail safely.
- Search/excerpts exclude full masks, masked ranges, deleted messages, inactive/replaced attempts, hidden artifacts, and disallowed content before matching, ranking, summarization, or model use. Raw metadata/tool payloads and source instructions are not promoted into trusted instructions.
- Context budgets and partial-result/truncation reporting prevent transcript flooding. Source conversation/message provenance is available in answers and workflow results.
- A reviewed manual send creates a durable handoff and one attributed destination turn that starts AI work; the user's active draft/navigation remain intact.
- Busy destinations execute handoffs in order without replacing ongoing work. Refresh/restart, duplicate submissions, cancellation, worker contention, and crash recovery do not duplicate destination messages or blindly replay uncertain AI/tool effects.
- AI/workflow sends are constrained to approved destinations and payload/source rules, with authorization rechecks, bounded chaining/rate controls, and visible queued/running/completed/failed states.
- Existing document workflows, ordinary chat, classic callers without the new fields, and current workflow result delivery retain their behavior.
- Runtime functional tests, route authorization/policy coverage, and Azure-Playwright-compatible V2 UI tests cover success and failure paths. Feature/user/control documentation and generated surface inventory are updated; increment only the third application version segment when implementation lands.
Notes
Investigation evidence
application/v2_ui/src/components/chat/ComposerEditor.tsx,ComposerHighlight.tsx,ConversationRail.tsx: existing picker/inline-token/menu surfaces.application/v2_ui/src/lib/chatContext.ts,chatContextTokens.ts,composerDraft.ts, andstores/chatStore.ts: existing document-oriented context and request contracts. Conversation IDs must not be passed as document IDs or accidentally enable workspace search.application/single_app/route_backend_conversations.py: owned reads, feed and advanced search. Existing advanced search performs broad cross-partition reads before filtering, so it is not a drop-in bounded private-conversation retrieval service.application/single_app/route_backend_chats.py: streaming/non-streaming generation, history and reconnect support.ActiveConversationStreamRegistry.start_sessionreplaces an existing active stream; a durable queue/admission boundary is needed for noninterrupting sends.functions_orchestration_registry.py,functions_orchestration_schema.py,functions_orchestration_adapters.py,functions_orchestration_source_context.py, andfunctions_orchestration_plan_editing.py: capability, typed-source, approval and Ask AI seams.functions_workflow_definitions.py,functions_workflow_bindings.py,functions_workflow_assist*.py: durable reference inputs, per-run binding and validated draft editing.functions_workflow_chat_delivery_worker.pyandfunctions_orchestration_continuation.py: useful durable-delivery/idempotency/lease patterns, but their existing record semantics must not be overloaded for cross-conversation sends.
Related issues and constraints
- Refs #1556 (document references in plan-editor Ask AI); this extends the source family rather than duplicating that request.
- Refs #1650 (message masking bypasses). The new service must not inherit known raw-history/search/MCP masking gaps. Broader remediation of unrelated existing readers remains separately tracked.
- No automatic Azure AI Search indexing/embedding of all conversations is assumed for the initial release; start with bounded authorized lookup and explicit paging/coverage reporting.
- Reference invalidation prevents future retrieval/reuse; it must not imply that already generated prose elsewhere can be retroactively erased.
- Roadmap triage: P2, XL, assigned to @paullizer. XL reflects staged cross-cutting UI, retrieval, durable queue/AI invocation, workflow and authorization work.
- Lenguaje dominante
- Python
- Estrellas
- 157
- Forks
- 117
- Merge medio
- 3 h 31 min
- PR fusionados (30 d)
- 226
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/simplechat
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
microsoft/simplechat#1491 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
microsoft/simplechat#1370 ·
Los mantenedores suelen responder en 1 día
-
Stale activeGroupOid after group removal interrupts chat in legacy and React V2Posiblemente ocupada @paullizer la tomó hace 4 días. Abiertobug P1
microsoft/simplechat#1816 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Simple Chat - NLRAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
microsoft/simplechat#1804 ·
Los mantenedores suelen responder en 1 día
-
Simple Chat - NLRAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
microsoft/simplechat#1803 ·
Los mantenedores suelen responder en 1 día
Todos los issues de microsoft/simplechat
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
NVIDIA/flare-local-inference#90 ·
Los mantenedores suelen responder en 1 día
-
area/streaming comp/gateway P2 platform/telegram type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
NousResearch/hermes-agent#144897 ·
Los mantenedores suelen responder en 1 día
-
request-theme
Dificultad 1/5 Menos de una hora Aptitud para principiantes 66/100
LizardByte/ThemerrDB#9575 ·
Los mantenedores suelen responder en 1 día
-
Author Page: noshin-nawalAbiertoauthor-page correction
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
acl-org/acl-anthology#10599 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
zilliztech/memsearch#818 ·
Los mantenedores suelen responder en 1 día