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

41 lines
2.2 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 的上一轮已经结束、但页面或服务端仍把本轮视为可插入时,表单答案和普通跟进消息都应自动按新一轮对话处理;失败卡片点击“重试”也应真正发送,不能继续被“仅允许插入原 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 流程清理。