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