Files
cc-web/.trellis/tasks/10-10-streaming-retry-history/prd.md
shiyue 69b6db0f5b 修复完整会话历史与长气泡交互并更新 CentOS 7 发布包
提交当前工作区全部源码、回归脚本、任务记录及重新构建的 Bun baseline 发布包。发布单文件 MCP 初始化及前端资源一致性验证通过。
2026-10-10 23:40:16 +08:00

34 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 运行中气泡正文续接
## 问题与目标
用户报告仍在运行的 Codex App 会话 `826deaa0-c3df-42bc-930b-06ee3e05de50` 的助手气泡丢失先前内容。自动延续重试重新创建 `fullText`,中断前正文仅作为有界模型提示传回,未交接到下一轮显示和最终保存状态。
目标:同一用户任务的已产生正文及工具在自动重试、等待重试、切换会话、刷新、断线重连和最终保存后保持完整、有序、不重复。不能用模型提示的 7000 字尾部或有界快照代替完整正文。
## 实施范围
- 审计 `scheduleCodexCapacityRetry`、`handleCodexAppMessage`、完成/失败路径、运行态保存与恢复、`attachActiveRuntimeToWs`。
- 在清理中断运行态前保留完整状态,安全交接多次重试;重试耗尽、取消及保存失败仍保留已产生正文。
- 等待重试和重新开轮时向客户端提供完整状态;前端显示同一逻辑任务的正文,避免清空或重复拼接。
- 隔离 mock 与单元/浏览器回归先证明失败,再验证多次重试、长正文、工具、重连以及归档读回。
- 只读检查目标会话原生记录,核对旧气泡前文是否仍有可靠来源;记录数量与边界,不猜测、不直接修改运行中会话。
- 根据用户后续要求增加长气泡折叠:完整正文保留,较早内容默认收起,最后一段回复保持可见,用户可展开全部;不能用截断实现折叠。
- 在气泡现有“角标、定位、分支”控件旁增加复制按钮,仅复制最后一个原生回复段;不包含此前回复、分隔时间、工具或按钮。没有回复分隔线时复制该气泡完整正文。
## 非本次操作
- 不重启生产服务,不调用真实模型开始新任务,不修改真实会话和原生 rollout。
- 不宣称上一任务的异机 45 条或此会话旧正文已恢复到 UI。
- 保留已有未提交改动,其他会话任务文档及 CSV 不参与本次清理。
## 验收标准
1. 流出 A → 暂时错误 → 自动续跑流出 B → 再次错误 → 续跑 C,最终正文包含 A/B/C 各一次且顺序不变,用户消息不重复。
2. 自动重试前、等待期、启动后分别刷新/重连均能读回已有完整正文及工具;长于快照上限的前缀也保留。
3. 完整运行态先保存;完整保存失败不得清理唯一输出;重试耗尽、取消及启动失败不静默丢正文。
4. 最终 assistant 保存和存储重开后正文、工具完整。正常新用户轮次不继承上轮气泡。
5. 专项回归、语法检查、`git diff --check` 通过;全量回归结果记录,若已有无关失败明确区分。
6. 交付写明生产未重启、目标会话未修改及旧内容的真实证据范围。
7. 短气泡无多余折叠入口;长气泡、流式生成、完成、刷新及切换中可展开查看完整正文;复制在展开或折叠状态都只包含最新回复段,桌面和手机可操作。