[Desktop][Codex Plan] Plan模式当前执行进度与Plan步骤显示的进度的对不上/历史Plan在后续多轮会话后仍残留显示为进行中
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 395
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
**提交人**: panwei
**客户端版本**: 0.1.27
---
## 现象
在 Cindy Desktop 的 Codex Plan 模式中,Plan 卡片的状态与当前执行动作不同步:
1. Plan 审批后开始执行时,当前动作已经进入后续步骤,但 Plan 进度仍停留在第 1 项(例如 1/5)。
2. 开启后续多轮会话后,之前轮次的 Plan 仍显示为进行中,并持续显示 spinner;在当前 session 有新任务或自动上下文压缩时尤其明显。
## 复现步骤
1. 新建一个会话,切换到 Codex Plan 模式。
2. 输入一个需要多个步骤完成的任务,使 Codex 生成一个包含多个步骤的 Plan。
3. 审批 Plan,开始执行。
4. 等待执行经过多个工具调用或动作步骤,观察当前动作已经进入后续步骤。
5. 观察 Plan 卡片的进度。
6. 在同一会话继续发送新的用户消息,或让会话继续运行并触发自动上下文压缩。
7. 回看前一轮 Plan 卡片及其 spinner 状态。
## 期望行为
- Plan 审批后启动的 implementation turn 应继承并更新原 Plan 的状态,Plan 进度应与结构化 Plan 更新保持一致。
- 新的用户 turn、implementation turn 或上下文压缩开始后,上一轮未完成的 Plan 应明确结束、归档或标记为 expired,而不是一直保持 active。
- 历史 Plan 可以保留用于回溯,但应以静态历史状态展示,不应随当前 session 的新任务继续动画。
- 如果没有新的结构化 Plan 更新,不应根据当前工具动作推断并伪装成准确的第 N 项进度。
## 实际行为
- 当前动作已经进入后续步骤,但 Plan 卡片仍停留在第 1 项 in progress,未反映真实执行进度。
- 旧轮次的 Plan 在后续多轮会话中仍被当作 active Plan 显示。
- 当前 session 只要有新 turn 在运行,历史 Plan 也可能继续显示 spinner,无法区分当前 Plan 与历史 Plan。
## 初步技术分析
- 当前动作和 Plan 使用不同状态链:动作来自 thinking/tool_use/tool_result,Plan 主要来自 turn/plan/updated 或 update_plan。
- Plan 状态按 plan: 绑定;Plan 审批后会启动新的 implementation turn,新的 turn 没有自动关联回原 Plan,因此工具动作进入后续步骤时,原 Plan 可能仍停留在第 1 项。
- 历史 Plan 的扫描逻辑只有在上一组 Plan 全部 completed 时才创建新的逻辑 Plan,不会因为新 user message、新 turn、Plan 审批完成、退出 Plan 模式或上下文压缩而关闭旧 Plan。
- agent_plan 的动画状态绑定到整个 session 的 streaming 状态,因此历史 Plan 也会跟随当前新 turn 显示 spinner。
---
**版本区域**: CN
**OS**: win32 x64 (10.0.19045)
**界面语言**: zh-CN
Contributor guide
Research direction
Trace the thinking/tool_use/tool_result state chain alongside turn/plan/updated and update_plan, including plan: association and agent_plan's session streaming animation. Verify how approval starts the implementation turn and how new turns or context compression affect prior plans. Done means current plans show only structured updates, while prior plans become static completed, archived, or expired history without a spinner.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, typescript
- Domain
- ai, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100