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

73 lines
3.9 KiB
Markdown
Raw Permalink 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.

# Task Plan: 独立任务看板功能
## Goal
在不破坏现有会话功能的前提下,实现可选加入任务池的任务看板、状态 MCP 与 cc-web 生命周期 Hook,并完成集成回归、视觉验收和安全重启。
## Current Phase
Phase 4
## Phases
### Phase 1: 完成规划与基线检查
- [x] 固化功能边界、共享接口和互斥文件范围
- [x] 建立并审查执行计划与 TODO CSV
- [x] 创建并启动 Trellis 任务,完成 PRD、技术设计与上下文配置
- [x] 记录现有工作区与测试基线
- **Status:** complete
### Phase 2: 并行完成三个独立实现对话
- [x] 前端对话仅实现 `public/task-board.*` 与独立单测
- [x] MCP 对话负责 `lib/task-board-service.js`、MCP 适配模块与独立单测
- [x] Hook 对话仅实现生命周期模块与独立单测
- **Status:** complete
### Phase 3: 汇总并审查三路产物
- [x] 等待三个对话全部完成并收集回复
- [x] 检查文件冲突、接口契约与独立性
- **Status:** complete
### Phase 4: 创建集成对话并完成接线
- [x] 创建第四个集成对话
- [ ] 接入现有 server、MCP、WebSocket 与页面入口
- [x] 保持普通对话默认不进入任务池
- [ ] 删除无数据来源的会话优先级,并将跟踪开关并入现有会话控制栏
- **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;其最终文件随后重新验收通过 |
| 首轮视觉验收只检查跟踪控件自身高度,未检查它是否占用独立行;同时未追查会话优先级的数据生产入口 | 判定首轮验收无效并中止重启;重新打开集成阶段,删除伪优先级并要求跟踪控件与既有会话控制同一行 |