Files
cc-web/.planning/2026-08-11-help/task_plan.md

3.9 KiB
Raw Permalink Blame History

Task Plan: 独立任务看板功能

Goal

在不破坏现有会话功能的前提下,实现可选加入任务池的任务看板、状态 MCP 与 cc-web 生命周期 Hook,并完成集成回归、视觉验收和安全重启。

Current Phase

Phase 4

Phases

Phase 1: 完成规划与基线检查

  • 固化功能边界、共享接口和互斥文件范围
  • 建立并审查执行计划与 TODO CSV
  • 创建并启动 Trellis 任务,完成 PRD、技术设计与上下文配置
  • 记录现有工作区与测试基线
  • Status: complete

Phase 2: 并行完成三个独立实现对话

  • 前端对话仅实现 public/task-board.* 与独立单测
  • MCP 对话负责 lib/task-board-service.js、MCP 适配模块与独立单测
  • Hook 对话仅实现生命周期模块与独立单测
  • Status: complete

Phase 3: 汇总并审查三路产物

  • 等待三个对话全部完成并收集回复
  • 检查文件冲突、接口契约与独立性
  • Status: complete

Phase 4: 创建集成对话并完成接线

  • 创建第四个集成对话
  • 接入现有 server、MCP、WebSocket 与页面入口
  • 保持普通对话默认不进入任务池
  • 删除无数据来源的会话优先级,并将跟踪开关并入现有会话控制栏
  • Status: in_progress

Phase 5: 运行集成回归与视觉验收

  • 执行 node --check、三个独立单测和 timeout 60s npm run regression
  • 使用隔离测试服务和真实浏览器验证看板交互与响应式
  • 核对现有核心功能无回归
  • 由主对话对照真实页面亲自复核控制栏单行布局与功能来源
  • Status: pending

Phase 6: 审核重启条件并重启服务

  • 调用 ccweb_list_conversations(status=running),仅排除来源 ID 56bb82c6-4fa3-4cb8-bb84-6969e6547d3a
  • 确认四个工作对话均 idle,且 pending replies 无 waiting/delivering
  • 满足条件后执行 pm2 restart ccweb --update-env
  • 完成服务健康检查
  • Status: pending

Phase 7: 清理临时跟踪并交付

  • 完成最终变更审查与测试摘要
  • 同步并清理 TODO CSV
  • 交付功能、风险和验证结果
  • Status: pending

Decisions Made

Decision Rationale
三个实现对话只新增或修改各自边界内文件,中心文件由第四个集成对话统一修改 避免共享工作区并发写冲突
使用 cc-web 自身生命周期事件,不自动注入用户 Codex Hook 保持功能独立并避免污染项目配置
任务跟踪默认关闭,从看板创建的会话默认开启 普通简单对话不进入任务池
归档采用软归档,与任务状态分离 可恢复、可审计,不影响原会话历史
MCP 对话拥有共享 TaskBoardService;Hook 通过依赖注入调用它 消除两个后端对话重复实现状态模型的风险
共享契约固定在 .trellis/tasks/08-11-task-board/info.md 三个并行对话与第四个集成对话有同一事实来源

Errors Encountered

Error Resolution
init-session.sh 将 --help 当成任务名并创建 2026-08-11-help 保留该目录并改写为本任务正式规划,避免未经确认删除或移动文件
首次计划审查发现并行边界、共享服务、Trellis 和重启门禁不够具体 已补 PRD、技术契约、明确文件所有权、验证命令和会话检查入口
Hook 子对话收尾阶段长时间高 token 运行且不返回终态 独立测试通过后使用现有 WebSocket abort 仅中断该目标 turn;其最终文件随后重新验收通过
首轮视觉验收只检查跟踪控件自身高度,未检查它是否占用独立行;同时未追查会话优先级的数据生产入口 判定首轮验收无效并中止重启;重新打开集成阶段,删除伪优先级并要求跟踪控件与既有会话控制同一行