im_wower
·
2026-03-28
BAA_BROWSER_PROXY_DELIVERY_REQUIREMENTS.md
1# BAA Browser Proxy Delivery 需求
2
3## 状态
4
5- `已完成(T-S038,2026-03-28)`
6- 优先级:`high`
7- 记录时间:`2026-03-28`
8
9## 关联文档
10
11- [BAA_INSTRUCTION_SYSTEM.md](../BAA_INSTRUCTION_SYSTEM.md)
12- [BAA_INSTRUCTION_ROADMAP.md](../BAA_INSTRUCTION_ROADMAP.md)
13- [STATUS_SUMMARY.md](../STATUS_SUMMARY.md)
14- [plugins/baa-firefox/README.md](../../plugins/baa-firefox/README.md)
15- [BUG-025-chatgpt-delivery-targets-shell-page.md](../../bugs/archive/BUG-025-chatgpt-delivery-targets-shell-page.md)
16
17## 背景
18
19当前代码已经同时存在两条浏览器能力路径:
20
21- 正式 `browser/request` 代理路径:由 conductor 发起,插件在 page context 里带真实登录态执行请求
22- 旧 delivery fallback:conductor 生成文本结果,插件再用 DOM adapter 注入输入框并点击发送
23
24这导致当前 delivery 主链存在结构性问题:
25
26- conductor 不是 delivery routing 的唯一真相源
27- 插件仍按 `platform -> shell tab` 决定结果落点
28- ChatGPT 结果仍可能落到 shell 页或新空白对话,而不是来源业务对话
29
30## 核心结论
31
32- conductor 应该成为 conversation / page routing / audit 的真相源
33- 插件只负责在正确页面上下文里执行真实请求
34- text-only 结果回写的正式主链应改为 browser request proxy
35- DOM `inject / send` 只保留为 fallback,不再作为默认主路径
36
37## 范围
38
39- 定义 conductor 侧最小 conversation / page routing 状态
40- 为 delivery 建立正式 proxy send contract
41- 首批至少覆盖 `ChatGPT` 与 `Claude`
42- browser smoke、service-side test 和读面回写
43
44## 当前明确不要求
45
46- 不恢复 upload / download / binary delivery
47- 不扩成多客户端、多轮 orchestrator
48- 不把 `browser.chatgpt` / `browser.gemini` 一次性扩成完整 Phase 1 target 面
49- 不做跨节点任务编排
50
51## 验收条件
52
53- 对已转换平台,delivery 主路径不再依赖输入框选择器和发送按钮
54- ChatGPT 结果不再默认落到 shell 页或新空白对话
55- conductor 能解释当前回写目标 conversation / page
56- fallback 使用条件明确,不会静默退回错误页面
57- browser smoke 与 service-side test 覆盖成功路径和 fail-closed
58
59## 当前预期残余边界
60
61- 首版仍然可以只覆盖 `ChatGPT` / `Claude`
62- 插件页内请求执行仍受平台页面契约变化影响
63- 在所有平台完成代理回写之前,DOM fallback 仍可能保留一段时间