im_wower
·
2026-03-28
BAA_PLUGIN_DELIVERY_HARDENING_REQUIREMENTS.md
1# BAA 插件侧 Delivery 加固需求
2
3## 状态
4
5- `已归档(T-S035,2026-03-28)`
6- `当前只保留为 DOM fallback 历史方案;代理式主链已在 ./BAA_BROWSER_PROXY_DELIVERY_REQUIREMENTS.md 完成`
7- 优先级:`high`
8- 记录时间:`2026-03-27`
9
10## 关联文档
11
12- [BAA_DELIVERY_BRIDGE_REQUIREMENTS.md](./BAA_DELIVERY_BRIDGE_REQUIREMENTS.md)
13- [BAA_ARTIFACT_CENTER_REQUIREMENTS.md](./BAA_ARTIFACT_CENTER_REQUIREMENTS.md)
14- [../BAA_INSTRUCTION_SYSTEM.md](../BAA_INSTRUCTION_SYSTEM.md)
15- [../BAA_INSTRUCTION_ROADMAP.md](../BAA_INSTRUCTION_ROADMAP.md)
16- [../../docs/firefox/README.md](../../docs/firefox/README.md)
17
18## 背景
19
20当前 live delivery 已经收口到:
21
22- `browser.inject_message`
23- `browser.send_message`
24
25但当前插件侧交付仍保留 3 个直接风险:
26
27- inject / send 仍主要依赖 DOM heuristic
28- 首版只对 `Claude` / `ChatGPT` 做了选择器与流程
29- 失败恢复、页面 readiness 和平台差异当前还不够收口
30
31这意味着当前链路虽然可用,但平台页面稍有结构变化,就可能把交付稳定性重新打回“脆弱自动化”。
32
33## 核心结论
34
35- 插件仍保持 thin-plugin 方向,不在插件里做 artifact 打包、parser 或复杂编排
36- 下一步应把 delivery 逻辑显式收口为平台 adapter,而不是继续散落在通用 DOM heuristic 里
37- 首批只加固:
38 - `Claude`
39 - `ChatGPT`
40- 加固重点是:
41 - readiness 探测
42 - 平台选择器集中管理
43 - 失败重试 / fail-closed
44 - 结构化状态与错误回写
45
46## 范围
47
48- `Claude` / `ChatGPT` 平台 delivery adapter 收口
49- text-only `inject / send` readiness 探测与超时
50- 结构化失败原因、平台状态和调试字段
51- browser smoke 与文档回写
52
53## 当前明确不要求
54
55- 不要求在本需求里扩到 `Gemini`
56- 不要求在本需求里恢复 upload / download / binary delivery
57- 不要求在本需求里扩到多客户端、多轮 delivery
58- 不要求在本需求里改 task/run 编排或跨节点分发
59
60## 验收条件
61
62- `Claude` / `ChatGPT` 的 text-only `inject / send` 逻辑有明确 adapter 边界,不再散落为隐式 heuristic
63- 页面未 ready、选择器失效、发送失败时会返回明确错误,不会静默成功
64- browser smoke 能覆盖至少一条成功路径和一条 fail-closed 路径
65- 文档已同步到 `plans/`、`tasks/`、`docs/firefox/` 和必要的 `docs/api/`
66
67## 当前预期残余边界
68
69- 插件侧最终仍会依赖 DOM / 页面结构,只是把风险收口成可维护的 adapter 层
70- 首版仍只覆盖 `Claude` / `ChatGPT`
71- 当前仍只服务于单客户端、单轮 delivery
72
73## 完成回写(2026-03-27)
74
75- 已完成:
76 - Firefox 插件 content script 已新增独立 `delivery-adapters.js`,把 `Claude` / `ChatGPT` 的 text-only `inject / send` 统一收口到 adapter 边界
77 - adapter 已补 page readiness、selector 解析、发送确认和有限重试;失败时返回稳定 `delivery.<code>` 错误并 fail-closed
78 - 插件侧不再接受 `upload_artifact` 命令
79 - browser smoke 已覆盖 adapter 成功路径、page-not-ready 和 send-not-confirmed 失败路径
80- 当前残余边界:
81 - 仍然依赖 DOM / 页面结构,只是风险已集中在 adapter 模块
82 - 仍未扩到 `Gemini`
83 - 当前仍只服务于单客户端、单轮 delivery