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

2.2 KiB
Raw Blame History

会话结束后插入转新对话计划

目标

当 Codex App 的上一轮已经结束、但页面或服务端仍把本轮视为可插入时,表单答案和普通跟进消息都应自动按新一轮对话处理;失败卡片点击“重试”也应真正发送,不能继续被“仅允许插入原 turn”拦截。

阶段

  1. [completed] 复现并定位会话结束后的发送与失败重试链路
  2. [completed] 补充结束会话后重试自动新开对话的回归用例
  3. [completed] 修复前端失败项重试与后端旧轮结束竞态
  4. [completed] 运行定向测试、语法检查和完整回归
  5. [completed] 复核差异并清理临时跟踪文件

验收标准

  • 会话结束后点击失败卡片的“重试”会启动普通新 turn,答案只进入一次历史。
  • 发送时本地运行态落后于 app-server 时,不再把用户答案永久留在“插入失败”。
  • 仍在运行的 turn 继续走 turn/steer,expectedTurnId 不匹配等真实错误不被错误降级。
  • 普通文本和带附件的表单答案均有回归覆盖,且定向测试、语法检查和完整回归通过。

约束

  • 保留工作区中其他会话历史改动,不覆盖现有任务目录或 CSV。
  • 代码定位优先使用 codebase-memory-mcp;FastCtx 只用于读取、编辑和验证本地文件。
  • 不重启服务,除非重启前确认除当前会话外没有其他 running 会话。
  • 新增注释和文档使用简体中文。

错误记录

错误 尝试 处理
表单回归读取到旧轮 done,导致提前检查新输出 1 等待携带新答案助手消息的 done 后再验收历史

收尾记录

  • 完整回归 npm run regression exit 0;定向回归与三个单测脚本、语法检查全部通过。
  • 独立后端审查新增 scripts/codexapp-steer-recovery-unit.js(5 项通过),覆盖 ready 等待期间旧轮结束、completion 先到、保存失败与错误分类。
  • 部署:重启前检查到除当前对话外仍有 running 会话(826deaa0、2f1134fe),按约束暂缓重启;待其结束后执行 pm2 restart ccweb --update-env 生效。
  • 临时跟踪文件:本任务 CSV 已按 todo-list-csv 流程清理。