baa-conductor

git clone 

baa-conductor / plans / archive
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`