im_wower
·
2026-03-28
BAA_DELIVERY_BRIDGE_REQUIREMENTS.md
1# BAA Delivery Bridge 与 Upload Receipt Barrier 需求
2
3## 状态
4
5- `已落地(对应 T-S034)`
6- 优先级:`high`
7- 记录时间:`2026-03-27`
8
9## 关联文档
10
11- [BAA_ARTIFACT_CENTER_REQUIREMENTS.md](/Users/george/code/baa-conductor/plans/archive/BAA_ARTIFACT_CENTER_REQUIREMENTS.md)
12- [BAA_INSTRUCTION_SYSTEM.md](/Users/george/code/baa-conductor/plans/BAA_INSTRUCTION_SYSTEM.md)
13- [06-integration-with-current-baa-conductor.md](/Users/george/code/baa-conductor/docs/baa-instruction-system-v5/docs/06-integration-with-current-baa-conductor.md)
14- [09-artifact-delivery-thin-plugin.md](/Users/george/code/baa-conductor/docs/baa-instruction-system-v5/docs/09-artifact-delivery-thin-plugin.md)
15
16## 背景
17
18当前 repo 已经完成:
19
20- service-side artifact center core
21- manifest / index text / delivery plan 生成
22
23但在立项前,live 路径仍没有真正打通:
24
25- `browser.upload_artifacts`
26- `browser.upload_receipt`
27- `browser.inject_message`
28- `browser.send_message`
29
30这意味着 artifact core 目前仍停留在 service-side 结果打包阶段,没有形成真正的交付闭环。
31
32## 核心结论
33
34- conductor 负责生成 upload-aware delivery plan 和 receipt barrier
35- 插件只负责:
36 - 上传 artifact
37 - 回传 receipt
38 - 注入已准备文本
39 - 执行发送
40- 没有 upload receipt 前,不得放行索引文本注入或自动发送
41
42## 首版范围
43
44- conductor upload session / receipt barrier
45- WS 消息合同:
46 - `browser.upload_artifacts`
47 - `browser.upload_receipt`
48 - `browser.inject_message`
49 - `browser.send_message`
50- Firefox 插件最小 upload / inject / send 执行
51- 失败重试 / 降级规则
52- 自动化 smoke 与文档回写
53
54## 当前明确不要求
55
56- 不要求本需求里实现 artifact download 闭环
57- 不要求本需求里扩到 ChatGPT / Gemini 正式 `browser.*` target 语义
58- 不要求本需求里引入多节点任务池或共识层
59
60## 验收条件
61
62- conductor 能发出 upload plan,并等待 receipt
63- receipt 未完成前,不会提前 inject / send
64- receipt 成功后,插件能注入准备好的 index text,并在允许时执行 send
65- 上传失败时有明确重试或降级,不会静默成功
66- 文档已同步到 `plans/`、`tasks/` 和必要的 `docs/`
67
68## 当前预期残余边界
69
70- 插件侧 upload / inject / send 仍是 DOM heuristic,当前只对 `Claude` / `ChatGPT` 做了首版选择器与流程
71- artifact payload 当前通过本地 `download_url` 以 base64 JSON 形式提供,适合当前 text/json 类产物;大二进制和 download 闭环还没做
72- 当前交付仍按任务边界停留在单客户端、单轮 delivery 首版
73- 当前交付仍建立在单节点本地 artifact store 和本地 `download_url` 之上,不做跨节点分发
74- execution journal 只保留最近窗口,不扩成无限历史审计
75- live 执行路径当前仍只覆盖 Phase 1 精确 target `conductor` / `system`,不扩到跨节点或完整 task/run 编排
76
77## 完成记录(2026-03-27)
78
79- conductor 已新增 `apps/conductor-daemon/src/artifacts/upload-session.ts`,负责:
80 - materialize / manifest / delivery plan 落地
81 - `browser.upload_artifacts` 下发
82 - `browser.upload_receipt` barrier 聚合
83 - inject/send 顺序控制
84- Firefox WS bridge 已补齐:
85 - `browser.upload_artifacts`
86 - `browser.upload_receipt`
87 - `browser.inject_message`
88 - `browser.send_message`
89- Firefox 插件已补最小 delivery bridge:
90 - 通过本地 `download_url` 拉取 artifact payload
91 - artifact payload 当前以 base64 JSON 形式下发,优先服务 text/json 类产物
92 - 上传成功后回传 receipt
93 - 对 Claude / ChatGPT shell tab 执行 inject / send
94 - upload / inject / send 仍基于首版 DOM heuristic,不扩到更通用的页面自动化框架
95- 已覆盖失败路径:
96 - upload receipt 失败会 fail-closed
97 - 未拿到完整 receipt 前不会 inject / send
98- 已补自动化验证:
99 - `apps/conductor-daemon/src/index.test.js`
100 - `tests/browser/browser-control-e2e-smoke.test.mjs`