43 lines
2.6 KiB
Markdown
43 lines
2.6 KiB
Markdown
# Findings & Decisions
|
||
|
||
## Requirements
|
||
- 新增独立任务看板,不影响现有聊天、会话列表、MCP 和 Codex App 行为。
|
||
- 普通对话默认不进入任务池;提供“加入任务看板”开关。
|
||
- 支持系统固定状态与用户自定义状态。
|
||
- Agent 可通过 MCP 主动上报;未上报时由 cc-web 生命周期 Hook 自动分类。
|
||
- 归档由用户或服务端策略触发,不允许 Agent 隐式归档。
|
||
- 三个实现对话完成后,必须由第四个集成对话统一接线和测试。
|
||
- 集成测试通过且无其他 running 对话后才允许重启 cc-web。
|
||
|
||
## Research Findings
|
||
- 当前会话列表只有运行态 isRunning,没有任务状态或归档字段。
|
||
- cc-web 已能观察 turn started/completed、工具调用、用户输入等待和失败事件,可实现自身 Hook。
|
||
- Codex Goal 只适用于 Codex App,不能作为跨 Agent 看板的唯一状态源。
|
||
- 多个对话共享同一工作区,中心文件必须避免并发修改。
|
||
- 项目必需命令是 `node --check` 与 `npm run regression`;不存在通用 lint/typecheck 脚本。
|
||
- Trellis 任务已创建为 `.trellis/tasks/08-11-task-board` 并设为 current。
|
||
- 共享数据、WebSocket、MCP、Hook 与文件所有权契约已写入该任务的 `info.md`。
|
||
- 当前来源对话 ID 为 `56bb82c6-4fa3-4cb8-bb84-6969e6547d3a`,重启门禁只能排除该 ID。
|
||
|
||
## Technical Decisions
|
||
| Decision | Rationale |
|
||
|----------|-----------|
|
||
| 系统状态使用稳定 ID,自定义状态映射到 baseStatus | 标签可编辑,同时保留自动化语义 |
|
||
| taskTracking.enabled 控制是否进入任务池 | 关闭时不分类、不展示,也不等于归档 |
|
||
| MCP、Hook、UI 共用一个任务状态服务 | 防止三套状态逻辑漂移 |
|
||
| Hook 作为 MCP 缺失时的兜底,用户操作优先级最高 | 保证可控并降低误判影响 |
|
||
| MCP 对话负责共享 TaskBoardService,Hook 对话只实现事件归约器 | 确保并行可实现且第四个对话可机械集成 |
|
||
|
||
## Issues Encountered
|
||
| Issue | Resolution |
|
||
|-------|------------|
|
||
| 规划初始化目录名称不理想 | 继续复用,不影响功能代码与最终集成 |
|
||
| 首次计划审查未通过 | 按四项阻断意见补齐契约、Trellis、测试和重启门禁后复审 |
|
||
|
||
## Resources
|
||
- 参考图:sessions/_attachments/42432a7d-778d-4dca-8156-d5bd651d242d.png
|
||
- 项目约束:AGENTS.md、.trellis/workflow.md
|
||
- 前端实现对话:b94ec6fe-5438-48a3-9733-4028bfd9198f
|
||
- MCP 实现对话:972a6903-4860-4558-9ab0-4e124bffa363
|
||
- Hook 实现对话:27651660-a64d-4b01-8606-500468e9c599
|