baa-conductor

git clone 

baa-conductor / bugs / archive
im_wower  ·  2026-03-28

BUG-025-chatgpt-delivery-targets-shell-page.md

 1# BUG-025: ChatGPT delivery 仍落到 shell 页面或新空白对话,而不是来源对话
 2
 3> 提交者:用户实测 + 代码核对
 4> 日期:2026-03-28
 5
 6## 现象
 7
 8当 ChatGPT 侧触发 BAA 执行后,Firefox 插件可能会:
 9
10- 重新拉起 `#baa-shell` 页面
11- 在新的空白 ChatGPT 对话里粘贴 conductor 的执行结果
12- 把结果发到 shell 页,而不是用户刚才发起指令的来源业务对话
13
14用户看到的就是:“当前对话没有收到 conductor 的回复,但 Firefox 新开了一个 ChatGPT 空白对话,并把结果发了进去”。
15
16## 已核对事实
17
181. 当前 delivery 仍然走 `browser.inject_message` / `browser.send_message`
192. 插件侧 `runDeliveryAction()` 会先 `resolveDeliveryTab(platform)`
203. `resolveDeliveryTab("chatgpt")` 的核心行为是 `ensurePlatformTab(platform, ...)`
214. 这条链最终只保证 ChatGPT shell tab 存在,并把 delivery 发给该 shell tab
22
23## 相关代码
24
25- `apps/conductor-daemon/src/artifacts/upload-session.ts`
26- `apps/conductor-daemon/src/firefox-ws.ts`
27- `plugins/baa-firefox/controller.js`
28- `plugins/baa-firefox/delivery-adapters.js`
29
30## 当前判断
31
32这不是一个 selector 小 bug,而是当前 delivery 架构的结果:
33
34- conductor 还不是 delivery 路由的真相源
35- 插件仍按 `platform -> shell tab` 选择落点
36- delivery 还是 DOM fallback,而不是真正的 page-context proxy send
37
38## 建议处理方式
39
40不要继续加码 DOM adapter 试图“猜中正确页面”。这条问题应优先通过主线改造解决:
41
42- conductor 记录 conversation / page routing 真相
43- delivery 改成 browser request proxy
44- DOM `inject / send` 降级为 fallback
45
46对应主线任务:`T-S038`
47
48## 严重度
49
50**High**
51
52这会让 ChatGPT 的回写行为和用户当前上下文脱节,用户很容易误判为“系统没回复”或“回写错会话”。