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