Files
cc-web/.planning/2026-08-12-task-status-runtime-reliability/task_plan.md
2026-08-13 00:34:37 +08:00

3.0 KiB
Raw Blame History

Codex App 任务状态自动分类管道

目标

在不新增分类模型配置、不使用 Hook、不重载 MCP、也不依赖主模型主动调用工具的前提下复用当前 Codex App 会话已经解析的模型 Provider 与认证方式,在“用户消息进入”和“主对话本轮完成”两个事件点执行无工具、严格结构化的动态看板分类,并以版本门禁安全更新任务列。

阶段

  • 1. 固定工作区并定位当前 Codex App Provider、消息入口、轮次完成与任务写入链路
  • 2. 写出分类提示词、严格输出、触发时机与失败保持的红灯契约
  • 3. 实现复用当前会话 Provider 的无工具结构化分类客户端
  • 4. 接入用户消息进入与主对话完成事件,加入串行队列和版本门禁
  • 5. 退役自动主链路中的任务 MCP 重载与主动上报依赖,保留必要兼容接口
  • 6. 运行专项、自动化集成、当前对话真实 Provider 请求和完整回归并修复真实失败
  • 7. 清理临时跟踪文件并交付配置兼容性、测试与残余风险

已确认产品契约

  • 系统范围仅包含 Codex App不为 Claude 或 Codex CLI 扩展任务分类。
  • 动态看板列的 id / label / prompt 是唯一分类语义;禁止写死固定状态或用关键词、正则推断。
  • 自动分类只在用户消息进入、Codex App 主轮次完成两个事件点发生;请求用户输入属于主轮次完成。
  • 运行开始、运行停止、网络失败、人工中断均不自动改变任务列。
  • 分类复用当前会话已解析的模型与 Provider不增加模型、密钥、Base URL 或管理界面配置。
  • cc-web 不读取或复制 Codex 登录令牌;只有当前 Provider 具备现有普通 API 认证时才发请求。
  • 分类请求不提供工具、项目文件、cwd 或 MCP只接受严格 JSON Schema 结果。
  • 非标准 JSON、拒答、超时、非法列或版本变化时保持当前状态不做文本修复或兜底猜测。
  • ccweb_task_update 可作为人工/调试兼容接口,但不再承担自动分类主链路。
  • 不修改生产 sessions/config/logs不重启生产服务不覆盖用户已有工作区修改。

错误记录

  • 旧计划基于 Hook、动态任务 MCP 与模型主动调用,真实环境证明可靠性不足;本轮按用户确认的 Provider 直连分类方案整体替换。
  • 红灯 1service 单测退出 1classifier actor source 被拒绝。
  • 红灯 2classifier 单测退出 1lib/task-board-classifier 尚不存在。
  • 红灯 3真实集成中两次分类只留下一个版本增量定位为轮次完成保存旧 session覆盖了先完成的用户消息分类。saveSession() 现会保留磁盘上版本更高的 taskTracking
  • 红灯 4当前 Provider 返回 SSEresponse.completed.output 可能为空、文本只出现在 response.output_text.done/delta;旧解析会等待连接关闭或拿不到结果。现已支持 SSE 增量、完成事件立即返回和 60 秒绝对超时。