3.9 KiB
3.9 KiB
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),仅排除来源 ID56bb82c6-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;其最终文件随后重新验收通过 |
| 首轮视觉验收只检查跟踪控件自身高度,未检查它是否占用独立行;同时未追查会话优先级的数据生产入口 | 判定首轮验收无效并中止重启;重新打开集成阶段,删除伪优先级并要求跟踪控件与既有会话控制同一行 |