im_wower
·
2026-03-28
T-S018.md
1# Task T-S018:把 Firefox 插件收口到空壳标签页并上报账号/指纹/端点
2
3## 直接给对话的提示词
4
5读 `/Users/george/code/baa-conductor/tasks/archive/T-S018.md` 任务文档,完成开发任务。
6
7如需补背景,再读:
8
9- `/Users/george/code/baa-conductor/plans/archive/BROWSER_BRIDGE_PERSISTENCE_REQUIREMENTS.md`
10- `/Users/george/code/baa-conductor/plugins/baa-firefox/README.md`
11- `/Users/george/code/baa-conductor/plugins/baa-firefox/manifest.json`
12- `/Users/george/code/baa-conductor/plugins/baa-firefox/background.js`
13- `/Users/george/code/baa-conductor/plugins/baa-firefox/controller.js`
14- `/Users/george/code/baa-conductor/plugins/baa-firefox/content-script.js`
15- `/Users/george/code/baa-conductor/plugins/baa-firefox/page-interceptor.js`
16
17## 当前基线
18
19- 仓库:`/Users/george/code/baa-conductor`
20- 分支:`main`
21- 提交:`12310df`
22- 开工要求:不要从其他任务分支切出;如需新分支,从当前 `main` 新切
23
24## 建议分支名
25
26- `feat/firefox-shell-tab-metadata-reporting`
27
28## 目标
29
30把 Firefox 插件的正式能力收口到“空壳标签页 + 登录态元数据上报 + 浏览器本地代发请求”,不再把页面对话功能当成主能力。
31
32## 背景
33
34新的主需求明确要求:
35
36- 浏览器侧只保留空壳标签页
37- 允许持久化 `account`
38- 只上报凭证指纹和端点元数据
39- 正式请求统一走已发现的 API 端点,由浏览器本地代发
40
41当前插件还保留了较多面向 Claude 页面会话和对话状态的逻辑,需要重新收口。
42
43## 涉及仓库
44
45- `/Users/george/code/baa-conductor`
46
47## 范围
48
49- 调整插件标签页策略到空壳模式
50- 上报 `account`、凭证指纹和 API 端点元数据
51- 收口页面对话状态相关逻辑
52- 保留浏览器本地请求代发能力所需的最小原始凭证持有
53
54## 路径约束
55
56- 本任务只修改 Firefox 插件目录及其本地 README。
57- 不修改 `conductor-daemon` 和 `packages/db`。
58- 不在本任务里设计最终数据库 schema。
59
60## 推荐实现边界
61
62建议优先做:
63
64- 把每个平台的正式标签页模型收口成单个空壳页
65- 明确插件向 `conductor` 上报的元数据:
66 - `platform`
67 - `account`
68 - `credential_fingerprint`
69 - `endpoints`
70 - freshness / timestamps
71- 把对话态、消息回读、页面 UI 状态降为非正式能力或直接移除
72
73## 允许修改的目录
74
75- `/Users/george/code/baa-conductor/plugins/baa-firefox/`
76
77## 尽量不要修改
78
79- `/Users/george/code/baa-conductor/apps/conductor-daemon/`
80- `/Users/george/code/baa-conductor/packages/db/`
81- `/Users/george/code/baa-conductor/docs/api/`
82
83## 必须完成
84
85### 1. 收口空壳标签页模式
86
87- 正式能力不再依赖页面对话上下文
88- 每个平台只需要一个空壳页或等价页面壳
89- 标签页不再作为业务持久化单位
90
91### 2. 上报账号/指纹/端点元数据
92
93- 允许上报 `account`
94- 只上报凭证指纹,不上报原始凭证值
95- 上报已发现且可用于代发的 API 端点列表
96
97### 3. 保留浏览器本地代发边界
98
99- 浏览器本地仍可持有原始凭证用于代发
100- 但这些原始值不能通过桥接协议回传给 `conductor`
101
102## 需要特别注意
103
104- 不要把原始 `cookie`、`token`、`header` 值发到 `conductor`
105- 不要在没有说明的情况下保留“页面对话功能仍是正式能力”的旧口径
106- 本任务可以与 `T-S017` 并行,但不要修改数据库模型
107
108## 验收标准
109
110- 插件正式模型已经收口到空壳标签页
111- 插件能输出 `account`、凭证指纹和端点元数据
112- 插件不再把页面对话状态当主能力
113- `git diff --check` 通过
114
115## 推荐验证命令
116
117- `node --check /Users/george/code/baa-conductor/plugins/baa-firefox/background.js`
118- `node --check /Users/george/code/baa-conductor/plugins/baa-firefox/controller.js`
119- `node --check /Users/george/code/baa-conductor/plugins/baa-firefox/content-script.js`
120- `node --check /Users/george/code/baa-conductor/plugins/baa-firefox/page-interceptor.js`
121- `git -C /Users/george/code/baa-conductor diff --check`
122
123## 交付要求
124
125完成后请说明:
126
127- 修改了哪些文件
128- 空壳标签页模式最终怎么定义
129- 上报了哪些元数据
130- 明确禁止上报了哪些敏感值
131- 还有哪些 `conductor` 侧对接依赖留给后续任务