im_wower
·
2026-03-22
T-026-firefox-integration.md
1---
2task_id: T-026
3title: baa-firefox 实际接线
4status: done
5branch: feat/T-026-firefox-integration
6repo: /Users/george/code/baa/baa-firefox
7base_ref: main@045b1a9
8depends_on:
9 - T-018
10 - T-019
11 - T-020
12write_scope:
13 - background.js
14 - controller.html
15 - controller.js
16 - content-script.js
17 - page-interceptor.js
18 - package.json
19 - package-lock.json
20 - docs/**
21updated_at: 2026-03-22T02:16:15+0800
22---
23
24# T-026 baa-firefox 实际接线
25
26## 目标
27
28把 `baa-firefox` 从“已有协议与大部分基础能力”推进到“真正能读取 conductor 状态并执行 pause / resume / drain”的程度。
29
30## 本任务包含
31
32- 在 `baa-firefox` 仓库里把插件接到 `baa-conductor` 的控制面
33- 读取 system state、leader、queue 基本信息
34- 提供 pause / resume / drain 的实际调用
35- 给可见 control 面板或 Claude 页面加最小可见入口
36
37## 本任务不包含
38
39- 修改 `baa-conductor` 仓库代码
40- 重做整个插件架构
41- 自动化完整浏览器工作流
42
43## 建议起始文件
44
45- `/Users/george/code/baa/baa-firefox/background.js`
46- `/Users/george/code/baa/baa-firefox/controller.html`
47- `/Users/george/code/baa/baa-firefox/controller.js`
48- `/Users/george/code/baa/baa-firefox/content-script.js`
49
50## 交付物
51
52- 插件真实读取 `system/state`
53- 插件真实发送 `pause` / `resume` / `drain`
54- 最小 UI 与状态文案
55
56## 验收
57
58- `baa-firefox` 仓库内的最小本地构建或静态校验通过
59- 能说明如何在浏览器里验证控制动作
60
61## 更新要求
62
63完成时更新 frontmatter 的:
64
65- `status`
66- `base_ref`
67- `updated_at`
68
69并补充下面这些内容:
70
71## files_changed
72
73- `background.js`
74- `content-script.js`
75- `controller.html`
76- `controller.js`
77- `docs/conductor-control.md`
78- `package.json`
79- `package-lock.json`
80- `page-interceptor.js`
81- `.gitignore`
82
83## commands_run
84
85- `npm install`
86- `node --check background.js`
87- `node --check controller.js`
88- `node --check content-script.js`
89- `node --check page-interceptor.js`
90
91## result
92
93- Firefox 插件已经接上 `baa-conductor` control plane,可读取 `/v1/system/state`,并实际发送 `pause` / `resume` / `drain`。
94- `controller.html` / `controller.js` 新增了 control API base URL、bearer token、状态快照展示和动作按钮。
95- `background.js` 会根据最新 control snapshot 更新 badge;`content-script.js` 在 Claude 页面右下角提供最小浮层入口。
96- 新增 [`docs/conductor-control.md`](/Users/george/code/baa/baa-firefox/docs/conductor-control.md) 说明接线方式、状态字段和当前限制。
97
98## risks
99
100- 本次没有修改 `manifest.json`,因此 Control API 仍需要落在当前扩展 CSP 允许的地址范围内。
101- 当前最稳妥的部署方式仍是把 conductor control API 暴露为与现有本地桥接地址同源的入口,而不是任意远端地址。
102- 这次只做了静态 JS 校验,没有做完整浏览器内交互回归。
103
104## next_handoff
105
106- 待 `T-024` 端到端 smoke 补齐后,把 Firefox 控制动作纳入 smoke / runbook。
107- 合并 `baa-firefox` 分支前,建议再做一次真实浏览器点击验证,确认 badge、浮层和 controller 页面状态同步正常。