baa-conductor

git clone 

commit
f62d4bc
parent
4663817
author
im_wower
date
2026-03-29 23:32:11 +0800 CST
docs: refresh handoff and progress status
9 files changed,  +249, -77
M HANDOFF.md
+24, -5
 1@@ -2,9 +2,17 @@
 2 
 3 ## 当前基线
 4 
 5-- 主分支:`main@6a3d654`
 6+- 主分支:`main@4663817`
 7 - 仓库:`/Users/george/code/baa-conductor`
 8-- 工作区:干净,无未提交改动,无 worktree,无未合并分支
 9+- 工作区:干净,无未提交改动;当前只有主 worktree;本地仅有 `main` 分支
10+- 说明:`4663817` 是文档同步提交;最近已合入的功能提交包括 `7113251`、`2b010d4`、`76aa1aa`、`6391ada`
11+
12+## 当前进度判断
13+
14+- 已完成任务:`19`
15+- 待开始任务:`3`(`T-S048`、`T-S049`、`T-S051`)
16+- `T-BUG-029`、`T-BUG-031` 的代码和任务卡都已是 `已完成`
17+- 当前 open bug:`BUG-026`、`BUG-027`
18 
19 ## 本轮完成的事
20 
21@@ -42,9 +50,19 @@
22 - SQL 注入白名单、D1 schema 外键、daemon.stop() await、transport 监听器清理
23 - sessions 查询补 conversation_id 过滤、ask 超时竞争
24 
25-## 待手动验收
26+## 当前 open bug / 风险
27+
28+- **BUG-026**:`/artifact/repo/:repo_name` 根路径不会落到默认 `log.html`
29+- **BUG-027**:插件启动期诊断事件会在 WS 建立前丢失,`logs/baa-plugin/` 缺失最早注入证据
30+
31+详见:
32+
33+- `bugs/BUG-026-artifact-repo-root-fallback-broken.md`
34+- `bugs/BUG-027-startup-plugin-diagnostic-events-lost-before-ws-open.md`
35+
36+## 已完成但建议补做浏览器复核
37 
38-重载插件后在 Firefox 中验证:
39+任务卡状态已经是 `已完成`,这里只保留“建议补做”的真实浏览器检查:
40 
41 1. **T-BUG-031**:重载插件后 AI 页面是否自动刷新,BAA 浮层恢复正常
42 2. **T-BUG-029**:ChatGPT 发 baa 指令后,conductor 能否提取并执行,结果回送
43@@ -67,7 +85,7 @@
44 ### T-S049 开放 chatgpt/gemini target(S 级)
45 
46 - policy 白名单 + router 路由 + local-api 端点
47-- 依赖 T-S048(Gemini 适配器)
48+- 当前主依赖:`T-S048`(Gemini 适配器)
49 - 提示词:`读 /Users/george/code/baa-conductor/tasks/T-S049.md 任务文档,完成开发任务。`
50 
51 ## 未建任务但已写入需求文档的
52@@ -82,3 +100,4 @@
53 - 每个任务强制使用独立 worktree + 新分支,只推不合,合并由合并者执行
54 - 合并后需要 `pnpm build` + `launchctl kickstart -k gui/$(id -u)/so.makefile.baa-conductor` 才能生效
55 - 插件改动需要在 Firefox `about:debugging` 重新载入插件
56+- 当前接手时,建议阅读顺序:`HANDOFF.md` → `tasks/TASK_OVERVIEW.md` → `plans/STATUS_SUMMARY.md` → 对应任务卡
A PROGRESS/2026-03-29-current-code-progress.md
+131, -0
  1@@ -0,0 +1,131 @@
  2+# 当前代码进度核对(2026-03-29)
  3+
  4+## 结论摘要
  5+
  6+- 当前主分支基线是 `main@4663817`。这个提交本身是文档同步;最近已合入的功能主线包括:
  7+  - `7113251`:合并 `bug/chatgpt-thinking-final-message`
  8+  - `2b010d4`:插件重载后自动刷新已打开 AI 页面
  9+  - `6391ada`:插件诊断日志通过 WS 转发到 conductor
 10+- handoff 与旧汇总文档存在几处过时口径:
 11+  - `HANDOFF.md` 仍以 `main@6a3d654` 作为基线
 12+  - `TASK_OVERVIEW.md` / `STATUS_SUMMARY.md` 仍把 Artifact 静态服务写成“下一阶段主线”
 13+  - `T-BUG-029`、`T-BUG-031` 的任务卡已完成,但旧汇总文档仍把它们写成 pending manual verification
 14+  - open bug `BUG-026`、`BUG-027` 已新增到 `bugs/README.md`,但旧汇总文档未同步
 15+- 当前 active task 只剩:
 16+  - `T-S048`
 17+  - `T-S049`
 18+  - `T-S051`
 19+- 当前 open bug 是:
 20+  - `BUG-026`
 21+  - `BUG-027`
 22+
 23+## 本次核对依据
 24+
 25+### 实际读取的文档
 26+
 27+- `HANDOFF.md`
 28+- `tasks/TASK_OVERVIEW.md`
 29+- `plans/STATUS_SUMMARY.md`
 30+- `plans/NEXT_WAVE_REQUIREMENTS.md`
 31+- `tasks/T-S048.md`
 32+- `tasks/T-S049.md`
 33+- `tasks/T-S051.md`
 34+- `tasks/T-BUG-029.md`
 35+- `tasks/T-BUG-031.md`
 36+- `bugs/README.md`
 37+
 38+### 实际核对的仓库状态
 39+
 40+- `git status --short --branch`
 41+- `git log --oneline --decorate -8`
 42+- `git worktree list`
 43+- `git branch --format='%(refname:short)'`
 44+
 45+## 当前代码状态
 46+
 47+### 1. Artifact 静态服务已完成,不再属于“待开始主线”
 48+
 49+当前代码已经具备:
 50+
 51+- artifact-db 本地 SQLite 持久化
 52+- D1 异步同步
 53+- `/artifact/` 静态文件服务
 54+- `/v1/messages`、`/v1/executions`、`/v1/sessions`、`/v1/sessions/latest`
 55+- `/describe` 返回 `recent_sessions_url`
 56+- stagit 仓库静态页面
 57+
 58+因此,`ARTIFACT_STATIC_SERVICE.md` 现在更适合作为已完成主线的实现参考,而不是当前活跃任务入口。
 59+
 60+### 2. 插件诊断日志与 ChatGPT final-message 修复已合入
 61+
 62+当前 `main` 已包含:
 63+
 64+- 插件诊断日志经 WS 转发到 conductor,并写入 `logs/baa-plugin/YYYY-MM-DD.jsonl`
 65+- conductor 对 `browser.final_message` ingest 写 `logs/baa-ingest/YYYY-MM-DD.jsonl`
 66+- ChatGPT SSE abort 场景下的 final-message 修复
 67+- `isRelevantStreamUrl` 对 ChatGPT 辅助流的收紧
 68+- 插件重载 / 启动后延迟刷新已打开 AI 页面
 69+
 70+### 3. `T-BUG-029`、`T-BUG-031` 当前应表述为“已完成 + 建议补做真实浏览器复核”
 71+
 72+任务卡本身都已经写明:
 73+
 74+- 当前状态:`已完成`
 75+- 完成时间、修改文件、实现思路、测试记录都已填写
 76+
 77+因此,这两项不应继续被描述成 active task 或 pending task;更准确的口径是:
 78+
 79+- 代码已合入
 80+- 真实 Firefox 闭环仍建议补做一次人工复核
 81+
 82+## 当前 open bug / 风险
 83+
 84+### BUG-026
 85+
 86+- `/artifact/repo/:repo_name` 根路径不会落到默认 `log.html`
 87+- 显式 `/artifact/repo/<repo>/log.html` 可用
 88+- 影响 repo 首页入口和 URL 语义一致性
 89+
 90+### BUG-027
 91+
 92+- 插件启动期诊断事件会在 WS 建立前丢失
 93+- 会影响 `logs/baa-plugin/` 对注入/桥接启动阶段的排障能力
 94+- 对当前诊断链路属于高优先级运维风险
 95+
 96+## 当前 active task
 97+
 98+### T-S048 Gemini 投递适配器
 99+
100+- 状态:`待开始`
101+- 依赖:无
102+- 建议先做,因为 `T-S049` 依赖它
103+
104+### T-S051 代码文件直读映射
105+
106+- 状态:`待开始`
107+- 依赖:无
108+- 可与 `T-S048` 并行
109+
110+### T-S049 开放 chatgpt/gemini target
111+
112+- 状态:`待开始`
113+- 当前主依赖:`T-S048`
114+- `T-BUG-029` 已合入,因此不再是它的阻塞项
115+
116+## 本轮文档同步建议
117+
118+建议把下面这些文件作为“当前权威口径”:
119+
120+- `HANDOFF.md`
121+- `tasks/TASK_OVERVIEW.md`
122+- `plans/STATUS_SUMMARY.md`
123+- `plans/NEXT_WAVE_REQUIREMENTS.md`
124+- `bugs/README.md`
125+
126+其中:
127+
128+- `HANDOFF.md` 用于接手摘要
129+- `TASK_OVERVIEW.md` 用于任务面和执行顺序
130+- `STATUS_SUMMARY.md` 用于系统级状态摘要
131+- `NEXT_WAVE_REQUIREMENTS.md` 用于下一波需求排期
132+- `bugs/README.md` 用于风险和缺陷索引
M PROGRESS/README.md
+1, -0
1@@ -4,6 +4,7 @@
2 
3 当前最新报告:
4 
5+- [`2026-03-29-current-code-progress.md`](./2026-03-29-current-code-progress.md)
6 - [`2026-03-27-current-code-progress.md`](./2026-03-27-current-code-progress.md)
7 
8 阅读建议:
M plans/NEXT_WAVE_REQUIREMENTS.md
+9, -11
 1@@ -5,7 +5,7 @@
 2 ## 状态
 3 
 4 - `当前需求`
 5-- 基线:`main@eadee69`
 6+- 基线:`main@4663817`
 7 
 8 ## 关联文档
 9 
10@@ -15,7 +15,7 @@
11 
12 ## 背景
13 
14-Artifact 静态服务主线(T-S039~T-S045)已完成。手动验证 ChatGPT 闭环时发现若干阻塞和缺失。本文档整理所有已讨论但未落地的需求。
15+Artifact 静态服务主线(T-S039~T-S045)已完成。当前文档继续保留“下一波需求”视图,同时把已完成的 `T-BUG-029`、`T-S047`、`T-S050` 标出来,避免后续接手时重复判断。
16 
17 ## 1. ChatGPT final-message 提取 bug(P0)
18 
19@@ -250,15 +250,15 @@ conductor 的 `/code/{repo}/...` 路由直接 serve 磁盘上的代码文件,A
20 
21 | 优先级 | 需求 | 工作量 | 状态 |
22 |---|---|---|---|
23-| P0 | #1 ChatGPT final-message 提取 bug | M | T-BUG-029(可能已不需要) |
24+| P0 | #1 ChatGPT final-message 提取 bug | M | ✅ T-BUG-029 已完成 |
25 | P1 | #2 请求/响应日志落盘 | S | ✅ T-S046 已完成 |
26 | P1 | #3 files/read kind bug | S | ✅ T-S046 已完成 |
27-| P2 | #4 跨会话接续入口 | S | T-S047 待开始 |
28+| P2 | #4 跨会话接续入口 | S | ✅ T-S047 已完成 |
29 | P2 | #5 Gemini 投递适配器 | M | T-S048 待开始 |
30 | P2 | #6 开放 chatgpt/gemini target | S | T-S049 待开始 |
31 | P2 | #10 历史消息回补 | M | 未建任务 |
32 | P2 | #11 拦截消息完成推送 | M | 未建任务(依赖 T-S053) |
33-| P3 | #7 stagit | M | T-S050 待开始 |
34+| P3 | #7 stagit | M | ✅ T-S050 已完成 |
35 | P3 | #8 代码文件直读 | S | T-S051 待开始 |
36 | P3 | #9 签名 URL | — | 暂不做 |
37 
38@@ -267,11 +267,9 @@ conductor 的 `/code/{repo}/...` 路由直接 serve 磁盘上的代码文件,A
39 ```
40 T-S053 (插件诊断日志)
4142-T-BUG-029 (ChatGPT bug,确认是否需要) → #11 (拦截推送,需要日志观察)
43+T-S048 (Gemini 适配器)    #10 (历史回补)    #11 (拦截推送)  ← 可并行
4445-T-S047 (接续入口)    T-S048 (Gemini 适配器)    #10 (历史回补)  ← 可并行
46-    ↓                       ↓
47-              T-S049 (开放 target)
48-                    ↓
49-            T-S050 / T-S051 (后续)
50+T-S049 (开放 target)
51+
52+T-S051 (代码文件直读)  ← 独立
53 ```
M plans/STATUS_SUMMARY.md
+33, -14
  1@@ -2,20 +2,29 @@
  2 
  3 ## 当前时间
  4 
  5-- `2026-03-28`
  6+- `2026-03-29`
  7 
  8 ## 当前代码基线
  9 
 10-- 当前主分支:`main@7113251`
 11+- 当前主分支:`main@4663817`
 12 - canonical local API:`http://100.71.210.78:4317`
 13 - canonical public host:`https://conductor.makefile.so`
 14 - 活跃任务文档保留在 `tasks/` 根目录;已完成任务文档归档到 [`../tasks/archive/README.md`](../tasks/archive/README.md)
 15 
 16 ## 当前已经跑通的主链
 17 
 18+- Artifact 静态服务已经完成:
 19+  - 本地 SQLite + D1 异步同步
 20+  - `/artifact/` HTTP serve
 21+  - recent sessions 入口
 22+  - stagit 仓库浏览
 23+- 插件诊断日志链路已经完成:
 24+  - 插件 → WS → conductor → `logs/baa-plugin/YYYY-MM-DD.jsonl`
 25+  - `browser.final_message` ingest → `logs/baa-ingest/YYYY-MM-DD.jsonl`
 26 - Firefox 插件已经具备 page-context `browser/request` 代理能力
 27 - ChatGPT / Claude / Gemini 都已经接入 `browser.final_message` raw relay
 28 - ChatGPT 新对话 / 新回复的 stale final-message replay 已抑制
 29+- ChatGPT SSE abort 修复和插件重载自动刷新页面已经合入 `main`
 30 - conductor 已具备 BAA Phase 1:
 31   - `@conductor`
 32   - `@system`
 33@@ -32,14 +41,21 @@
 34 - `BAA_INSTRUCTION_SYSTEM.md` 现在只保留当前正式合同;未来目标已拆到 `BAA_INSTRUCTION_ROADMAP.md`
 35 - `BAA_PLUGIN_DELIVERY_HARDENING_REQUIREMENTS.md` 已移到 `archive/`,不再停留在根目录制造“仍是当前主线”的错觉
 36 - `BUG-024` / `BUG-025` 已完成并归档,不再作为 open blocker 挂在 backlog
 37+- `T-BUG-029` / `T-BUG-031` 的任务卡已完成,但旧汇总文档仍把它们写成 pending manual verification;现统一改为“建议补做浏览器复核”
 38+- Artifact 静态服务已经完成,不再把它写成“下一阶段主线”
 39 
 40 ## 当前最高优先级
 41 
 42-**下一阶段主线:Artifact 静态服务**
 43+**当前下一波任务:**
 44 
 45-详见 [`./ARTIFACT_STATIC_SERVICE.md`](./ARTIFACT_STATIC_SERVICE.md)
 46+1. `T-S048`:Gemini 投递适配器
 47+2. `T-S051`:代码文件直读映射
 48+3. `T-S049`:开放 `@browser.chatgpt` / `@browser.gemini` target(依赖 `T-S048`)
 49 
 50-核心目标:所有消息和执行结果持久化到数据库,生成静态 URL,AI 可通过 fetch 获取完整内容,实现跨会话接续。
 51+并行需要持续关注:
 52+
 53+- `BUG-026`
 54+- `BUG-027`
 55 
 56 **并行优化项:**
 57 
 58@@ -58,29 +74,30 @@
 59 
 60 说明:
 61 
 62-- 当前已没有 open `BUG-*` / `MISSING-*` blocker
 63-- 其余 backlog 见 [`../bugs/README.md`](../bugs/README.md)
 64+- 当前 open bug 见 [`../bugs/README.md`](../bugs/README.md)
 65+- 当前没有 open `MISSING-*` blocker
 66+- 其余 backlog 仍以 `OPT-*` 为主
 67 
 68 ## 当前活跃需求文档
 69 
 70-- [`./ARTIFACT_STATIC_SERVICE.md`](./ARTIFACT_STATIC_SERVICE.md)(下一阶段主线)
 71+- [`./NEXT_WAVE_REQUIREMENTS.md`](./NEXT_WAVE_REQUIREMENTS.md)(当前下一波需求)
 72 - [`./BAA_INSTRUCTION_SYSTEM.md`](./BAA_INSTRUCTION_SYSTEM.md)
 73 - [`./BAA_INSTRUCTION_ROADMAP.md`](./BAA_INSTRUCTION_ROADMAP.md)
 74 - [`./STATUS_SUMMARY.md`](./STATUS_SUMMARY.md)
 75+- [`../HANDOFF.md`](../HANDOFF.md)
 76 
 77 保留在根目录但不是当前主线目标的历史文档:
 78 
 79 - [`./BAA_ARTIFACT_DOWNLOAD_REQUIREMENTS.md`](./BAA_ARTIFACT_DOWNLOAD_REQUIREMENTS.md)
 80+- [`./ARTIFACT_STATIC_SERVICE.md`](./ARTIFACT_STATIC_SERVICE.md)(主线已完成,保留实现参考)
 81 
 82 ## 当前主线判断
 83 
 84-Phase 1(浏览器主链)已完成收口。下一阶段主线是 **Artifact 静态服务**:
 85+Phase 1(浏览器主链)和 Artifact 静态服务都已经完成。当前应把系统理解为:
 86 
 87-- 所有消息和执行结果全量入库(本地 SQLite + Cloudflare D1 异步同步)
 88-- 同时生成 `.txt` + `.json` 静态文件,conductor HTTP serve `/artifact/`
 89-- 回送 AI 时:短结果内联,长结果截断摘要 + exact URL
 90-- 新对话 AI 可通过 fetch URL 获取历史,实现跨会话接续
 91-- 后续集成 stagit 提供 git 仓库浏览
 92+- 现有主链已经具备完整 artifact 持久化、静态访问和插件诊断能力
 93+- 当前下一波是 Gemini 投递、代码直读和开放 chatgpt/gemini target
 94+- 维护侧还有 `BUG-026` 与 `BUG-027` 需要跟进
 95 
 96 之前的浏览器主链继续保持:
 97 
 98@@ -91,6 +108,8 @@ Phase 1(浏览器主链)已完成收口。下一阶段主线是 **Artifact 
 99 
100 ## 当前仍需关注
101 
102+- `BUG-026`:repo 根路径 fallback 当前失效,`/artifact/repo/<repo>` 不会自动落到 `log.html`
103+- `BUG-027`:插件启动期诊断事件会在 WS open 前丢失,影响 `logs/baa-plugin/` 排障
104 - 风控状态当前仍是进程内内存态;`conductor` 重启后,限流、退避和熔断计数会重置
105 - `Gemini` 当前仍不是 `/v1/browser/request` 的正式支持面,正式 browser target 仍只有 `browser.claude`
106 - ChatGPT proxy send 仍依赖最近捕获的真实发送模板;如果 controller 刚重载且还没观察到真实发送,会退回同页 DOM fallback
M tasks/T-S048.md
+1, -2
 1@@ -15,7 +15,7 @@
 2 
 3 - 仓库:`/Users/george/code/baa-conductor`
 4 - 分支基线:`main`
 5-- 提交:`eadee69`
 6+- 提交:`4663817`
 7 
 8 ## 分支与 worktree(强制)
 9 
10@@ -97,4 +97,3 @@
11 ### 执行过程中遇到的问题
12 
13 ### 剩余风险
14-
M tasks/T-S049.md
+3, -4
 1@@ -4,7 +4,7 @@
 2 
 3 - 当前状态:`待开始`
 4 - 规模预估:`S`
 5-- 依赖任务:`T-BUG-029`(ChatGPT final-message bug)、`T-S048`(Gemini 适配器)
 6+- 依赖任务:`T-S048`(Gemini 适配器)
 7 - 建议执行者:`Codex` 或 `Claude`(加白名单 + 路由,边界清晰)
 8 
 9 ## 直接给对话的提示词
10@@ -14,8 +14,8 @@
11 ## 当前基线
12 
13 - 仓库:`/Users/george/code/baa-conductor`
14-- 分支基线:`main`(T-BUG-029 和 T-S048 合并后)
15-- 提交:`<合并后的提交>`
16+- 分支基线:`main`(当前已包含 `T-BUG-029`)
17+- 提交:`4663817`
18 
19 ## 分支与 worktree(强制)
20 
21@@ -92,4 +92,3 @@ SUPPORTED_TARGET_TOOLS["browser.gemini"] = ["current", "send"];
22 ### 执行过程中遇到的问题
23 
24 ### 剩余风险
25-
M tasks/T-S051.md
+1, -2
 1@@ -15,7 +15,7 @@
 2 
 3 - 仓库:`/Users/george/code/baa-conductor`
 4 - 分支基线:`main`
 5-- 提交:`eadee69`
 6+- 提交:`4663817`
 7 
 8 ## 分支与 worktree(强制)
 9 
10@@ -91,4 +91,3 @@ conductor 的 `/code/` 路由直接 serve 磁盘上的代码文件,AI 通过 U
11 ### 执行过程中遇到的问题
12 
13 ### 剩余风险
14-
M tasks/TASK_OVERVIEW.md
+46, -39
  1@@ -3,7 +3,7 @@
  2 ## 当前基线
  3 
  4 - 日期:`2026-03-29`
  5-- 主分支基线:`main@7113251`
  6+- 主分支基线:`main@4663817`
  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@@ -12,9 +12,19 @@
 11 
 12 当前主线已经完成这些能力:
 13 
 14+- Artifact 静态服务已落地:
 15+  - `artifact-db` 持久化 messages / executions / sessions
 16+  - `conductor` HTTP serve `/artifact/`
 17+  - D1 异步同步队列
 18+  - stagit 仓库浏览:`/artifact/repo/baa-conductor/log.html`
 19+- Firefox 插件诊断日志链路已落地:
 20+  - `page-interceptor -> content-script -> controller -> WS -> conductor`
 21+  - conductor 写 `logs/baa-plugin/YYYY-MM-DD.jsonl`
 22+  - ingest 写 `logs/baa-ingest/YYYY-MM-DD.jsonl`
 23 - Firefox 插件已具备页面观察、登录态元数据采集、page-context `browser/request` 代理执行
 24 - ChatGPT / Claude / Gemini 都已接入 `browser.final_message` raw relay
 25 - ChatGPT 新对话 / 新回复的 stale final-message replay 已抑制,不再默认把新回复判成旧消息 `duplicate_message`
 26+- ChatGPT SSE abort 修复和插件重载自动刷新页面都已合入 `main`
 27 - conductor 已具备 BAA Phase 1:`@conductor` / `@system` / `@browser.claude`
 28 - delivery 当前已经是 proxy-first:
 29   - conductor 记录最近观察到的业务页 route 与回写目标
 30@@ -30,25 +40,25 @@
 31 - `plans/BAA_INSTRUCTION_SYSTEM.md` 现在只保留当前正式合同;未来目标已拆到 `plans/BAA_INSTRUCTION_ROADMAP.md`
 32 - `plans/archive/BAA_PLUGIN_DELIVERY_HARDENING_REQUIREMENTS.md` 已移入 archive,不再停留在根目录误导成 current plan
 33 - `BUG-024` / `BUG-025` 已经分别随 `6b819bf` 和 `6e458f3` 收口,不再作为 open bug 保留在根目录索引
 34+- `T-BUG-029`、`T-BUG-031` 的任务卡已是 `已完成`,但旧文档仍把它们写成 pending manual verification;现统一改为“建议补做浏览器复核”
 35+- Artifact 静态服务已经完成,不再把 `T-S039`~`T-S045` 写成“当前活跃主线”
 36 
 37 ## 当前活跃任务与优先级
 38 
 39-### P0(下一阶段主线:Artifact 静态服务)
 40-
 41-方案文档:[`../plans/ARTIFACT_STATIC_SERVICE.md`](../plans/ARTIFACT_STATIC_SERVICE.md)
 42+### 当前下一波任务
 43 
 44 | 任务 | 标题 | 规模 | 依赖 | 建议 AI | 状态 |
 45 |---|---|---|---|---|---|
 46-| [`T-S039`](./T-S039.md) | Artifact 基础层(DB + 静态文件 + HTTP 路由) | M | 无 | Codex | 待开始 |
 47-| [`T-S040`](./T-S040.md) | Artifact 接入指令执行主链路 | M | T-S039 | Claude | 待开始 |
 48-| [`T-S041`](./T-S041.md) | Artifact 查询路由与会话索引 | S | T-S039 | Codex / Claude | 待开始 |
 49-| [`T-S042`](./T-S042.md) | D1 异步适配器与同步队列 | M | T-S039(可并行开发) | Codex | 待开始 |
 50+| [`T-S048`](./T-S048.md) | Gemini 投递适配器 | M | 无 | Claude | 待开始 |
 51+| [`T-S051`](./T-S051.md) | 代码文件直读映射 | S | 无 | Codex / Claude | 待开始 |
 52+| [`T-S049`](./T-S049.md) | 开放 chatgpt/gemini target | S | T-S048 | Codex / Claude | 待开始 |
 53 
 54-执行顺序:T-S039 先行 → T-S040 和 T-S041 可并行 → T-S042 独立 → T-S045 收尾
 55+建议顺序:
 56 
 57-| 任务 | 标题 | 规模 | 依赖 | 建议 AI | 状态 |
 58-|---|---|---|---|---|---|
 59-| [`T-S045`](./T-S045.md) | 串联 artifact-db 写入与 D1 同步队列 | S | T-S040, T-S042 | Claude | 待开始 |
 60+```text
 61+T-S048 (Gemini 适配器) -> T-S049 (开放 target)
 62+T-S051 (代码直读)     <- 可并行
 63+```
 64 
 65 ### 已完成
 66 
 67@@ -74,28 +84,12 @@
 68 | T-BUG-030 | baa 代码块属性兼容 | ✅ |
 69 | T-BUG-031 | 插件重载刷新页面 | ✅ |
 70 
 71-## 下一波需求
 72-
 73-需求文档:[`../plans/NEXT_WAVE_REQUIREMENTS.md`](../plans/NEXT_WAVE_REQUIREMENTS.md)
 74-
 75-### 待开始
 76-
 77-| 任务 | 标题 | 规模 | 依赖 | 建议 AI | 状态 |
 78-|---|---|---|---|---|---|
 79-| [`T-S048`](./T-S048.md) | Gemini 投递适配器 | M | 无 | Claude | 待开始 |
 80-| [`T-S049`](./T-S049.md) | 开放 chatgpt/gemini target | S | T-S048 | Codex / Claude | 待开始 |
 81-| [`T-S051`](./T-S051.md) | 代码文件直读映射 | S | 无 | Codex / Claude | 待开始 |
 82+## 建议补做的浏览器复核
 83 
 84-### 待验收
 85+下面两项任务代码已经合入、任务卡也已完成,但仍建议在真实 Firefox 中补做一次闭环复核:
 86 
 87-需要手动在 Firefox 中验证 T-BUG-029(ChatGPT 闭环)和 T-BUG-031(插件重载自动刷新页面)。
 88-
 89-### 执行顺序
 90-
 91-```
 92-T-S048 (Gemini 适配器) → T-S049 (开放 target)
 93-T-S051 (代码直读)  ← 独立
 94-```
 95+- `T-BUG-029`:ChatGPT 发 baa 指令后,conductor 能否提取并执行并完成回送
 96+- `T-BUG-031`:插件重载后 AI 页面是否自动刷新,BAA 浮层是否恢复
 97 
 98 ### P1(并行优化)
 99 
100@@ -113,26 +107,38 @@ T-S051 (代码直读)  ← 独立
101 
102 ## 当前 open bug / gap
103 
104-当前没有 open `BUG-*` 或 `MISSING-*`;剩余 backlog 已收口为 `OPT-*` 优化项,见 [`../bugs/README.md`](../bugs/README.md)。
105+- open bug:
106+  - [`../bugs/BUG-026-artifact-repo-root-fallback-broken.md`](../bugs/BUG-026-artifact-repo-root-fallback-broken.md)
107+  - [`../bugs/BUG-027-startup-plugin-diagnostic-events-lost-before-ws-open.md`](../bugs/BUG-027-startup-plugin-diagnostic-events-lost-before-ws-open.md)
108+- open opt:
109+  - `OPT-002`
110+  - `OPT-003`
111+  - `OPT-004`
112+  - `OPT-005`
113+
114+完整索引见 [`../bugs/README.md`](../bugs/README.md)。
115 
116 ## 当前活跃需求文档
117 
118-- [`../plans/ARTIFACT_STATIC_SERVICE.md`](../plans/ARTIFACT_STATIC_SERVICE.md)(下一阶段主线)
119+- [`../plans/NEXT_WAVE_REQUIREMENTS.md`](../plans/NEXT_WAVE_REQUIREMENTS.md)(当前下一波需求来源)
120 - [`../plans/BAA_INSTRUCTION_SYSTEM.md`](../plans/BAA_INSTRUCTION_SYSTEM.md)
121 - [`../plans/BAA_INSTRUCTION_ROADMAP.md`](../plans/BAA_INSTRUCTION_ROADMAP.md)
122 - [`../plans/STATUS_SUMMARY.md`](../plans/STATUS_SUMMARY.md)
123+- [`../HANDOFF.md`](../HANDOFF.md)
124 
125 保留在根目录但不再作为当前主线目标的历史文档:
126 
127 - [`../plans/BAA_ARTIFACT_DOWNLOAD_REQUIREMENTS.md`](../plans/BAA_ARTIFACT_DOWNLOAD_REQUIREMENTS.md):已废弃,保留历史决策说明
128+- [`../plans/ARTIFACT_STATIC_SERVICE.md`](../plans/ARTIFACT_STATIC_SERVICE.md):主线已完成,保留实现与验收参考
129 
130 ## 当前主线判断
131 
132-Phase 1(浏览器主链)已完成收口。下一阶段主线是 **Artifact 静态服务**:
133+Phase 1(浏览器主链)和 Artifact 静态服务都已完成收口。当前下一波重点是:
134 
135-- 所有消息和执行结果全量入库 + 生成静态 URL
136-- AI 通过 fetch URL 获取完整内容,实现跨会话接续
137-- 详见 [`../plans/ARTIFACT_STATIC_SERVICE.md`](../plans/ARTIFACT_STATIC_SERVICE.md)
138+- `T-S048`:补 Gemini 投递适配器
139+- `T-S051`:补 `/code/` 代码文件直读
140+- `T-S049`:在 `T-S048` 完成后正式开放 `@browser.chatgpt` / `@browser.gemini` target
141+- 并行关注 open bug `BUG-026` / `BUG-027`
142 
143 并行推进 `OPT-002`(executor 超时保护)。
144 
145@@ -142,7 +148,8 @@ Phase 1(浏览器主链)已完成收口。下一阶段主线是 **Artifact 
146 2. [`../docs/api/README.md`](../docs/api/README.md)
147 3. [`../plugins/baa-firefox/README.md`](../plugins/baa-firefox/README.md)
148 4. [`../plans/STATUS_SUMMARY.md`](../plans/STATUS_SUMMARY.md)
149-5. 对应的任务卡
150+5. [`../HANDOFF.md`](../HANDOFF.md)
151+6. 对应的任务卡
152 
153 ## 如需继续新建任务
154