baa-conductor

git clone 

baa-conductor / tasks
codex@macbookpro  ·  2026-04-01

TASK_OVERVIEW.md

  1# 任务总览
  2
  3## 当前基线
  4
  5- 日期:`2026-04-01`
  6- 主分支基线:`main@943b477`
  7- canonical local API:`http://100.71.210.78:4317`
  8- canonical public host:`https://conductor.makefile.so`
  9- 当前活跃任务卡和近期刚完成的任务卡保留在本目录;较早已完成任务归档到 [`./archive/README.md`](./archive/README.md)
 10
 11## 当前代码状态
 12
 13当前主线已经完成这些能力:
 14
 15- Artifact 静态服务已落地:
 16  - `artifact-db` 持久化 messages / executions / sessions
 17  - `conductor` HTTP serve `/artifact/`
 18  - D1 异步同步队列
 19  - stagit 仓库浏览:`/artifact/repo/baa-conductor/log.html`
 20- Firefox 插件诊断日志链路已落地:
 21  - `page-interceptor -> content-script -> controller -> WS -> conductor`
 22  - conductor 写 `logs/baa-plugin/YYYY-MM-DD.jsonl`
 23  - ingest 写 `logs/baa-ingest/YYYY-MM-DD.jsonl`
 24- Firefox 插件已具备页面观察、登录态元数据采集、page-context `browser/request` 代理执行
 25- ChatGPT / Claude / Gemini 都已接入 `browser.final_message` raw relay
 26- ChatGPT 新对话 / 新回复的 stale final-message replay 已抑制,不再默认把新回复判成旧消息 `duplicate_message`
 27- ChatGPT SSE abort 修复和插件重载自动刷新页面都已合入 `main`
 28- conductor 已具备 BAA Phase 1:`@conductor` / `@system` / `@browser.claude` / `@browser.chatgpt` / `@browser.gemini`
 29- delivery 当前已经是 proxy-first:
 30  - conductor 记录最近观察到的业务页 route 与回写目标
 31  - 优先通过 `browser.proxy_delivery` 在目标页面上下文执行真实请求
 32  - `browser.inject_message` / `browser.send_message` 仅作为 fallback
 33- `T-S037` 对应的页面右下角浮层与页面级暂停控制已经在代码里完成,并已归档
 34- 定时任务 + 续命主线已经落地:
 35  - `artifact-db` 已具备本地对话、对话关联、续命任务和消息投影所需存储
 36  - 对话自动化状态已支持 `manual / auto / paused`
 37  - timed-jobs runtime 已具备独立调度与 JSONL 外部日志
 38  - renewal projector / dispatcher 已接入主线,且已提供最小 `/v1/renewal/*` 运维读接口
 39- 近期这条主线的收口项也已完成:
 40  - 插件启动期诊断事件会在 WS open 后缓冲补发
 41  - Gemini shell final-message 现在会过滤协议碎片并保留可读 assistant 文本
 42  - renewal link 扫描不再静默截断,route unavailable 会记录具体原因
 43  - `system_state.updated_at` 与 projector cursor 已统一为毫秒口径
 44  - conductor 执行链路已补统一超时保护
 45  - renewal dispatcher 已支持 inter-job jitter 和 retry jitter
 46  - 自动化仲裁基础已经落地:同条 final-message 现在按 `control > instruction > renewal` 顺序仲裁,同对话具备执行锁、`pause_reason` 和自动熔断基础能力
 47  - Firefox 浮层统一自动化控制已经落地:页面入口会同步显示系统状态、当前对话 `automation_status``pause_reason`,并通过 WS 与 renewal/page_control 保持一致
 48  - BAA normalize / parse 现在按 block 做错误隔离,单个坏 block 不再中断整批合法指令
 49  - timed-jobs JSONL 日志现在已改为异步写入,减少 tick 周期内的同步 IO 阻塞
 50  - 系统级 automation pause 已落地:`system paused` 会同时阻断 live BAA 指令和 timed-jobs 主链,且不会覆盖各对话原有 `pause_reason`
 51  - browser request 风控状态现在会持久化到 `artifact.db`,重启后会恢复限流/退避/熔断窗口,并清理遗留执行锁与 `running` renewal job
 52  - `proxy_delivery` 结果现在会异步补齐 Level 1 下游 HTTP 状态码;renewal dispatcher 仅在 `200` 时标记 `done`,`429/5xx` 改为 `retry`
 53  - ChatGPT send template 现在会持久化到插件本地缓存;controller 重载后会恢复最近模板,renewal dispatcher 对模板缺失改为 5s 起步短延迟 retry,并显式记录冷启动/预热完成日志
 54
 55## 当前已确认的不一致
 56
 57这轮整理后,下面几处旧口径已经被显式改正:
 58
 59- `T-S037` 之前仍挂在根目录作为 active task,但代码已经合入 `main`;现在已归档
 60- `plans/BAA_INSTRUCTION_SYSTEM.md` 现在只保留当前正式合同;未来目标已拆到 `plans/BAA_INSTRUCTION_ROADMAP.md`
 61- `plans/archive/BAA_PLUGIN_DELIVERY_HARDENING_REQUIREMENTS.md` 已移入 archive,不再停留在根目录误导成 current plan
 62- `BUG-024` / `BUG-025` 已经分别随 `6b819bf``6e458f3` 收口,不再作为 open bug 保留在根目录索引
 63- `BUG-026` 已经随 `98db481` 收口并归档,不再继续作为 open bug 跟踪
 64- `BUG-029` 已经随 `625f808` 修复并归档,不再继续作为 open bug 跟踪
 65- `BUG-027`、`BUG-028`、`BUG-031`、`BUG-032`、`BUG-033`、`BUG-034`、`BUG-036` 已全部收口并归档,旧总览中的 open 状态已改正
 66- `T-S048`、`T-S049` 已分别随 `7d8b4ce`、`57958a9` 合入 `main`,旧总览里仍写成 backlog;现统一改正
 67- `T-S055`~`T-S059` 已全部完成并合入 `main`,旧总览中的 pending 状态已改正
 68- `OPT-002`、`OPT-007` 已分别随 `889f746`、`b8d69c8` 合入 `main`,旧总览中的 open 状态已改正
 69- `T-BUG-029`、`T-BUG-031` 的任务卡已是 `已完成`,但旧文档仍把它们写成 pending manual verification;现统一改为“建议补做浏览器复核”
 70- Artifact 静态服务已经完成,不再把 `T-S039`~`T-S045` 写成“当前活跃主线”
 71
 72## 当前活跃任务与优先级
 73
 74### 本轮刚完成
 75
 76| 任务 | 标题 | 规模 | 依赖 | 建议 AI | 状态 |
 77|---|---|---|---|---|---|
 78| [`T-S055`](./T-S055.md) | 续命基础存储层 | M | 无 | Codex | 已完成 |
 79| [`T-S056`](./T-S056.md) | 对话自动化状态与对话关联接口 | M | T-S055 | Claude / Codex | 已完成 |
 80| [`T-S057`](./T-S057.md) | 定时任务框架与执行日志 | M | T-S055 | Codex | 已完成 |
 81| [`T-S058`](./T-S058.md) | 消息同步任务生成续命任务 | M | T-S055, T-S056, T-S057 | Claude / Codex | 已完成 |
 82| [`T-S059`](./T-S059.md) | 续命执行任务与运维接口 | M | T-S055, T-S056, T-S057, T-S058 | Codex | 已完成 |
 83| [`T-S060`](./T-S060.md) | 自动化仲裁与自动熔断基础 | L | T-S056, T-S058, T-S059 | Codex | 已完成 |
 84| [`T-S061`](./T-S061.md) | 浮层统一自动化控制 | M | T-S060 | Codex | 已完成 |
 85| [`T-S062`](./T-S062.md) | 系统级暂停接入自动化主链 | M | T-S060 | Codex | 已完成 |
 86| [`T-S063`](./T-S063.md) | normalize / parse 错误隔离 | S | 无 | Codex | 已完成 |
 87| [`T-S064`](./T-S064.md) | timed-jobs 异步日志写入 | S | 无 | Codex | 已完成 |
 88| [`T-S066`](./T-S066.md) | 风控状态持久化 | M | T-S060 | Codex | 已完成 |
 89| [`T-S068`](./T-S068.md) | ChatGPT proxy send 冷启动降级保护 | S | 无 | Codex | 已完成 |
 90| [`T-S069`](./T-S069.md) | proxy_delivery 成功语义增强 | L | T-S060 | Codex | 已完成 |
 91
 92### 当前下一波任务
 93
 94| 项目 | 标题 | 类型 | 状态 | 说明 |
 95|---|---|---|---|---|
 96| [`T-S065`](./T-S065.md) | policy 配置化 | task | 待开始 | 为自动化控制指令和后续扩面提供策略入口 |
 97| [`T-S067`](./T-S067.md) | Gemini 正式接入 raw relay 支持面 | task | 待开始 | 把 `@browser.gemini` 提升到稳定 raw relay 支持面 |
 98| [`../bugs/OPT-004-final-message-claude-sse-fallback.md`](../bugs/OPT-004-final-message-claude-sse-fallback.md) | Claude final-message SSE fallback | opt | open | 降低上游 SSE 协议变化的脆弱性 |
 99| [`../bugs/OPT-009-renewal-duplicate-utility-functions.md`](../bugs/OPT-009-renewal-duplicate-utility-functions.md) | renewal 工具函数去重 | opt | open | 收口重复逻辑,属于低风险代码卫生 |
100
101### 已完成但保留作参考
102
103| 任务 | 标题 | 说明 |
104|---|---|---|
105| [`T-S051`](./T-S051.md) | 代码文件直读映射 | 已完成,保留为后续实现参考 |
106
107### 已完成
108
109| 任务 | 标题 | 状态 |
110|---|---|---|
111| T-S039 | Artifact 基础层 | ✅ |
112| T-S040 | 接入主链路 | ✅ |
113| T-S041 | 查询路由 | ✅ |
114| T-S042 | D1 适配器 | ✅ |
115| T-S043 | Claude Code CLI | ✅ |
116| T-S044 | pnpm 环境 | ✅ |
117| T-S045 | D1 同步串联 | ✅ |
118| T-S046 | 日志落盘 + files/read kind | ✅ |
119| T-S047 | 跨会话接续入口 | ✅ |
120| T-S048 | Gemini 投递适配器 | ✅ |
121| T-S049 | 开放 chatgpt/gemini target | ✅ |
122| T-S050 | stagit git 静态页面 | ✅ |
123| T-S052 | D1 数据库初始化 | ✅ |
124| T-S053 | 插件诊断日志 | ✅ |
125| T-S054 | 插件日志 WS 转发 | ✅ |
126| T-S055 | 续命基础存储层 | ✅ |
127| T-S056 | 对话自动化状态与对话关联接口 | ✅ |
128| T-S057 | 定时任务框架与执行日志 | ✅ |
129| T-S058 | 消息同步任务生成续命任务 | ✅ |
130| T-S059 | 续命执行任务与运维接口 | ✅ |
131| T-BUG-026 | 测试修复 | ✅ |
132| T-BUG-027 | 安全+资源泄漏 | ✅ |
133| T-BUG-028 | 查询路由+超时 | ✅ |
134| T-BUG-029 | ChatGPT SSE abort 修复 | ✅ |
135| T-BUG-030 | baa 代码块属性兼容 | ✅ |
136| T-BUG-031 | 插件重载刷新页面 | ✅ |
137
138## 建议补做的浏览器复核
139
140下面两项任务代码已经合入、任务卡也已完成,但仍建议在真实 Firefox 中补做一次闭环复核:
141
142- `T-BUG-029`:ChatGPT 发 baa 指令后,conductor 能否提取并执行并完成回送
143- `T-BUG-031`:插件重载后 AI 页面是否自动刷新,BAA 浮层是否恢复
144
145### P1(并行优化)
146
147- [`T-S065`](./T-S065.md)
148- [`T-S067`](./T-S067.md)
149- [`../bugs/OPT-004-final-message-claude-sse-fallback.md`](../bugs/OPT-004-final-message-claude-sse-fallback.md)
150- [`../bugs/OPT-009-renewal-duplicate-utility-functions.md`](../bugs/OPT-009-renewal-duplicate-utility-functions.md)
151
152### 已关闭
153
154- ~~`OPT-006`~~:已关闭。新方案决定数据永不过期,不需要自动清理。
155
156## 当前 open bug / gap
157
158- open bug:
159  - 当前没有 open bug
160- open opt:
161  - `OPT-004`
162  - `OPT-009`
163
164完整索引见 [`../bugs/README.md`](../bugs/README.md)。
165
166## 当前活跃需求文档
167
168- [`../plans/AUTOMATION_ARBITRATION_REQUIREMENTS.md`](../plans/AUTOMATION_ARBITRATION_REQUIREMENTS.md)
169- [`../plans/UNIFIED_OVERLAY_AUTOMATION_CONTROL.md`](../plans/UNIFIED_OVERLAY_AUTOMATION_CONTROL.md)
170- [`../plans/SYSTEM_LEVEL_PAUSE_REQUIREMENTS.md`](../plans/SYSTEM_LEVEL_PAUSE_REQUIREMENTS.md)
171- [`../plans/BAA_INSTRUCTION_SYSTEM.md`](../plans/BAA_INSTRUCTION_SYSTEM.md)
172- [`../plans/BAA_INSTRUCTION_ROADMAP.md`](../plans/BAA_INSTRUCTION_ROADMAP.md)
173- [`../plans/STATUS_SUMMARY.md`](../plans/STATUS_SUMMARY.md)
174
175保留在根目录但不再作为当前主线目标的历史文档:
176
177- [`../plans/NEXT_WAVE_REQUIREMENTS.md`](../plans/NEXT_WAVE_REQUIREMENTS.md):历史需求视图
178- [`../HANDOFF.md`](../HANDOFF.md):历史交接记录
179- [`../plans/TONIGHT_SPRINT.md`](../plans/TONIGHT_SPRINT.md):历史冲刺计划
180- [`../plans/BAA_ARTIFACT_DOWNLOAD_REQUIREMENTS.md`](../plans/BAA_ARTIFACT_DOWNLOAD_REQUIREMENTS.md):已废弃,保留历史决策说明
181- [`../plans/ARTIFACT_STATIC_SERVICE.md`](../plans/ARTIFACT_STATIC_SERVICE.md):主线已完成,保留实现与验收参考
182
183## 当前主线判断
184
185Phase 1(浏览器主链)、Artifact 静态服务,以及 timed-jobs + 续命主线都已完成收口。`T-S060`、`T-S061`、`T-S062`、`T-S063`、`T-S064`、`T-S066`、`T-S068`、`T-S069` 已经落地。当前主线已经没有 open bug blocker,下一步是:
186
187- 先做 `T-S065`
188- 再推进 `T-S067`
189- `OPT-004`、`OPT-009` 继续保留为 open opt
190
191## 现在该读什么
192
1931. [`../DESIGN.md`](../DESIGN.md)
1942. [`../docs/api/README.md`](../docs/api/README.md)
1953. [`../plugins/baa-firefox/README.md`](../plugins/baa-firefox/README.md)
1964. [`../plans/STATUS_SUMMARY.md`](../plans/STATUS_SUMMARY.md)
1975. [`../HANDOFF.md`](../HANDOFF.md)
1986. 对应的任务卡
199
200## 如需继续新建任务
201
202- 所有新任务默认以 `4317``conductor.makefile.so` 为 canonical 接口面
203- 新任务必须先从当前 `main` 新建任务分支再开发;功能任务用 `feat/` 前缀,缺陷任务用 `bug/` 前缀
204- 能并行的任务优先拆开,并明确写清允许修改的目录
205- 新任务文档结构参考 [`task-doc-template.md`](./task-doc-template.md)