# 子代理卡片计划进度 ## 目标 当子代理通过 `update_plan` 更新计划时,把精简进度同步到父会话的子代理卡片;页面刷新后仍可恢复,并在完成回归后安全重启 ccweb。 ## 阶段 | 阶段 | 状态 | 验收标准 | |---|---|---| | 1. 补充子代理计划进度失败回归 | complete | 回归能证明当前缺少子代理计划同步与卡片展示 | | 2. 暴露并复用计划通知解析 | complete | 子代理和父代理使用同一套计划通知解析逻辑 | | 3. 实现子代理计划状态同步与持久化 | complete | 子代理公开状态、工具状态、恢复状态都包含精简计划 | | 4. 实现卡片简版进度渲染 | complete | 卡片显示进度点、完成数和当前步骤 | | 5. 更新 V2 mock 与集成断言 | complete | mock 子代理发送计划通知,集成回归验证父会话收到状态 | | 6. 运行回归和静态检查 | complete | JS 语法、diff 检查和 60 秒内全量回归通过 | | 7. 检查运行会话、重启并验收 | complete | 无其他运行会话时重启,PM2、HTTP 和线上资源正常 | ## 关键决策 - 继续复用 `ccweb_mcp_child_agent_update`,不新增 WebSocket 消息类型。 - 子代理只向父卡片暴露 `{ completed, total }` 与当前 `in_progress` 步骤,不复制完整计划项。 - 计划事件解析集中在 `codex-app-runtime`,避免父、子线程各维护一套协议兼容逻辑。 - 保留工作区中用户和上一任务的既有改动,仅在相关区域增量修改。 ## 错误记录 | 错误 | 尝试 | 处理 | |---|---|---| | Plan List 回归仍从 wrapper 提取 DOM 契约,抽取 helper 后断言失败 | 1 | 契约改为检查 `createPlanProgressElementFromProgress` |