baa-conductor

git clone 

baa-conductor / plans / discuss
codex@macbookpro  ·  2026-03-26

CODEX-TASK-PLANS-OPTIMIZATION.md

  1# Codex 任务:plans/ 文档优化
  2
  3## 上下文
  4
  5仓库:`/Users/george/code/baa-conductor`,分支 `main`
  6
  7`plans/discuss/` 下有两份审查文档,包含具体问题和建议:
  8- `DISCUSS-FIREFOX-BRIDGE-CONTROL.md`(9 个改进点)
  9- `DISCUSS-PLANS-DIRECTORY.md`(10 个改进点)
 10
 11请先完整阅读这两份 discuss 文档,然后按下面的任务清单执行。
 12
 13---
 14
 15## 任务清单
 16
 17### 第一批:结构优化(先做)
 18
 19**T-OPT-01:新建 plans/README.md**
 20
 21索引所有 plans/ 下的文档,标注活跃 vs 已完成,说明文档命名规范。内容简短,50 行以内。
 22
 23**T-OPT-02:新建 plans/GLOSSARY.md**
 24
 25统一定义两份需求文档共享的术语:
 26- 空壳页(Shell Page):定义 URL 策略、cookie 携带方式、健康检查
 27- 凭证指纹(Credential Fingerprint):输入字段、哈希算法(SHA-256)、生成侧(插件)、变更语义
 28- 状态三态:fresh / stale / lost 的定义和转换条件
 29- account:含义和唯一性范围
 30
 31**T-OPT-03:STATUS_SUMMARY.md 瘦身**
 32
 33- 更新基线为当前 HEAD(`79c932a`)
 34- 「当前新的主需求文档」加上 FIREFOX_BRIDGE_CONTROL_REQUIREMENTS.md
 35- 删除重复的「低优先级 TODO」章节(和「当前主 TODO」合并)
 36- 将 T-S001~T-S020 完成记录移到 `tasks/COMPLETED.md`(新建)
 37- 将「4318 依赖盘点与结论」移到 `plans/DECISIONS.md`(新建)
 38- 将「当前仍需关注」改为「已知风险」表格,每条带:风险 / 触发条件 / 缓解措施 / 关联任务
 39- 瘦身后 STATUS_SUMMARY 控制在 80 行以内
 40
 41### 第二批:需求文档补充
 42
 43**T-OPT-04:FIREFOX_BRIDGE_CONTROL_REQUIREMENTS.md 补充**
 44
 45根据 DISCUSS-FIREFOX-BRIDGE-CONTROL.md 的建议,在原文档中增加以下章节(不改动已有结构,只追加):
 46
 471. **迁移策略**:现有 `/v1/browser/claude/*` 接口如何过渡到通用 `api_request` 模型。定义新接口路径命名、旧接口标记为 legacy、灰度切换方式
 482. **SSE 可靠性设计**:stream_event 带递增 seq、断连后的 partial_events 交付、超时阈值(默认 30s)、背压处理
 493. **空壳页实现方案**:引用 GLOSSARY.md 中的定义,补充 tab 健康检查周期
 504. **调度策略默认参数**:抖动(μ=2s σ=0.5s)、限流(10req/min/platform)、退避(base=1s max=60s)、熔断(连续 5 次失败触发,半开探测间隔 30s)。注明参数可通过配置调整
 515. **首版范围标注**:在多 client 相关段落标注「首版:单 client_id 调度」vs「扩展预留」
 526. **Tab 状态模型**:desired vs actual、自动调和策略、tab_restore 的精确语义
 537. **关联文档**:在文档开头增加对 PERSISTENCE 文档和 GLOSSARY 的引用
 54
 55**T-OPT-05:BROWSER_BRIDGE_PERSISTENCE_REQUIREMENTS.md 补充**
 56
 571. **凭证指纹规范**:引用 GLOSSARY.md
 582. **关联文档**:在文档开头增加对 CONTROL 文档和 GLOSSARY 的引用
 59
 60**T-OPT-06:新建 plans/TASK_SCHEDULER_REQUIREMENTS.md**
 61
 62从桌面 handoff(内容见下方附录)提炼正式需求文档,补充:
 63- scheduler 并发策略(首版:单 task 串行,step 串行)
 64- 失败重试策略(step 失败不重试,task 标记 failed,人工决定是否重跑)
 65- step 超时定义(默认 120s,可覆盖)
 66- task 优先级(首版:FIFO,预留 priority 字段)
 67- 执行链路选择原则:codexd = 代码任务(有文件系统)、browser = 对话任务(无文件系统),由 task step 的 executor 字段决定
 68
 69### 第三批:收尾
 70
 71**T-OPT-07:plans/README.md 最终更新**
 72
 73所有文档都到位后,更新 README 索引,确保引用准确。
 74
 75---
 76
 77## 约束
 78
 79- 只改 `plans/``tasks/` 目录下的 markdown 文件
 80- 不改任何 `.ts`、`.js`、`.json`、`.sql` 代码文件
 81- 不改 `apps/`、`packages/`、`ops/` 下的内容
 82- 新建文件用 UTF-8,行尾 LF
 83- commit message 格式:`docs: <简述>`
 84- 每个 T-OPT 可以单独 commit,也可以合并 commit,但不要跨批次合并
 85
 86---
 87
 88## 附录:Handoff Task Scheduler 方案摘要
 89
 90目标:conductor task 异步执行引擎
 91
 92当前架构缺口:
 93```
 94POST /v1/tasks          ← 未实现
 95 96scheduler loop          ← hook 在 ConductorDaemon.runSchedulerPass,未接线
 97 98codexd turn executor    ← 每个 step = 一次 codexd turn
 99100result → 下一个 step
101```
102
103最小实现路径(4 步):
1041. POST /v1/tasks — 接受 { repo, task_type, title, goal, steps[] },写入 SQLite
1052. scheduler loop 接线 — 每 10s runSchedulerPass,扫 queued tasks
1063. codexd turn executor — 创建 session → 发 turn → 轮询 events.jsonl → 写结果
1074. 查询接口 — GET /v1/tasks、/v1/tasks/:id、/v1/tasks/:id/logs(已有)
108
109DB schema 已完整(ops/sql/schema.sql),db 方法已有(insertTask/insertTaskStep/insertTaskRun)。
110
111验收标准:提交含 1-2 个 codexd step 的 task → scheduler 自动拾取执行 → status 变 done → GET 可查结果。
112
113关键约束:
114- codex turn 走 nginx 会 502,走本地 100.71.210.78:4317
115- BUG-010 存在,回复从 events.jsonl 读
116- 先做最小可跑版本