Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Add conversation references and queued AI handoffs across chat, orchestration, and workflows

未关闭
#1,835 0 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

@paullizer 已经在做这个了。

开始于 2026年10月23日。

评估

这个 Issue 还没有评估数据。

描述

Created By Copilot enhancement P2

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, and stores/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_session replaces 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, and functions_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.py and functions_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.
主要语言
Python
星标
157
派生
117
平均合并
3 小时 31 分钟
30 天内合并 PR
226

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

microsoft/simplechat 的其他 Issue

查看 microsoft/simplechat 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。