baa-conductor

git clone 

baa-conductor / coordination / tasks / done
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 页面状态同步正常。