修正策划V2流式交互契约
明确用户交互以工具调用结果为准 取消逐 delta 投影的业务契约要求 同步技术方案与长期决策记录
This commit is contained in:
@@ -8071,3 +8071,8 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在
|
||||
- Planning V2 的 P4 灰度与回归验收已通过人工校验:正常提问/回答/GDD/批准链路、GDD 修改后再次批准链路、Provider 失败恢复、非法输出失败边界、重启恢复、前端工作台展示以及编码/差异门禁均完成验证。
|
||||
- P4 收口不代表旧链路退役;旧 `project-supervisor-plan` / `project-planning` 源码和入口仍保留,旧活跃会话封存、迟到结果隔离、旧入口关闭和只读历史展示统一留在后续 P5。
|
||||
- P5 收缩为最小退役:旧 `project-supervisor-plan` caller 统一立即返回退役错误,不启动旧 Runtime/Provider;不扩展 V1 `PlanSessionV1` schema,不做旧数据迁移,旧文件继续保留只读,V2 只读取 `.agent/planning-v2`。
|
||||
|
||||
## 2026-09-05 修正 Planning V2 流式交互契约
|
||||
|
||||
- Planning V2 不要求把 Provider 的文本 stream delta 逐条投影为用户可见对话。V2 的用户交互是结构化工具调用结果:`plan_ask_question` 渲染澄清选项卡,`plan_submit_gdd` 渲染 GDD 输出和审批卡;中间纯文本不是用户对话内容。
|
||||
- `planning-session-v2-stream` 若继续存在,只能作为内部状态/兼容事件能力,不构成实时逐 delta 的功能契约;Provider 是否使用流式传输不影响 V2 的业务验收。
|
||||
|
||||
@@ -646,7 +646,7 @@ hydrate_planning_session_v2
|
||||
|
||||
状态:实现已落在 AGC Tauri Runtime(2026-09-03)。当前仅提供内核闭环,尚未接入 GDD 解析、审批或生产 UI。
|
||||
|
||||
已落地的 P1 入口:`start_planning_session_v2`、`continue_planning_session_v2`、`hydrate_planning_session_v2`。会话快照和完整消息分别持久化到 `.agent/planning-v2/session.json` 与 `.agent/planning-v2/conversation.jsonl`;Provider 请求沿用现有 `platform-llm`,按配置执行流式或普通调用,并把流式增量统一投影为 `planning-session-v2-stream` 事件。
|
||||
已落地的 P1 入口:`start_planning_session_v2`、`continue_planning_session_v2`、`hydrate_planning_session_v2`。会话快照和完整消息分别持久化到 `.agent/planning-v2/session.json` 与 `.agent/planning-v2/conversation.jsonl`;Provider 请求沿用现有 `platform-llm`,按配置执行流式或普通调用。流式传输只是 Provider 调用实现细节,不属于策划用户交互契约;用户可见结果以 `plan_ask_question` / `plan_submit_gdd` 工具调用及其结构化结果为准。
|
||||
|
||||
当前 P1 的恢复语义是轻量且显式的:进程退出时若快照仍为 `planning`,hydrate 将其投影为 `provider_failed/RECOVERY_REQUIRED`,要求用户重新提交当前意图;不会伪造成功或自动制造 GDD。`clientTurnId` 命中已有成功 assistant 记录时直接等值重放;若只有 error 记录,则沿用原用户意图重试且不重复追加用户消息。
|
||||
|
||||
@@ -665,7 +665,7 @@ hydrate_planning_session_v2
|
||||
|
||||
阶段验收:
|
||||
|
||||
- 真实 Provider 可以返回一轮流式文本,前端收到增量并在终态落盘。
|
||||
- 真实 Provider 可以完成一轮工具调用,前端收到结构化 question 或 GDD 结果并在终态落盘。
|
||||
- 同一 `clientTurnId` 重试不会重复追加用户/助手消息。
|
||||
- 同一项目第二个在途回合被拒绝,原回合不受影响。
|
||||
- Provider 失败后 Session 保留,恢复不会自动制造新问题或 GDD。
|
||||
@@ -733,7 +733,7 @@ hydrate_planning_session_v2
|
||||
|
||||
- 正式 `planningStartMode` 首轮提交已改走 `start_planning_session_v2`,后续回答改走 `continue_planning_session_v2`,审批改走 `decide_planning_artifact_v2`;不再为新策划回合创建 Supervisor Run。
|
||||
- 前端通过 V2 适配层复用现有聊天区、澄清卡、GDD 审批卡和阶段进度条;V2 Session 的 hydrate 结果额外携带 `conversation`,用于刷新/重启恢复历史消息。
|
||||
- 监听 `planning-session-v2-stream`,将 Provider 回合的增量投影到现有实时回复区域;旧 Runtime 轮询、专业 Agent 轮询和旧 Runtime 事件在 V2 策划会话中关闭。
|
||||
- V2 只将结构化工具调用结果投影到澄清选项卡和 GDD 审批卡;旧 Runtime 轮询、专业 Agent 轮询和旧 Runtime 事件在 V2 策划会话中关闭。Provider 中间文本不作为策划用户对话展示。
|
||||
- 对已存在 V2 Session 的项目,打开项目时先 hydrate V2;没有 V2 authority 的旧项目继续走旧读取路径,避免误把旧项目数据当成 V2。
|
||||
- P3 已完成;P4 的真实 Provider、前端工作台、失败恢复和安全门禁验收已通过。旧会话 `legacy_retired` 封存与旧入口彻底关闭仍属于 P5。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user