baa-conductor

git clone 

commit
e91ac94
parent
a2c76c2
author
im_wower
date
2026-03-29 03:21:50 +0800 CST
docs: add T-BUG-031 auto-refresh AI tabs after plugin reload

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 files changed,  +120, -0
A tasks/T-BUG-031.md
+120, -0
  1@@ -0,0 +1,120 @@
  2+# Task T-BUG-031:插件重载后自动刷新已打开的 AI 页面
  3+
  4+## 状态
  5+
  6+- 当前状态:`待开始`
  7+- 规模预估:`S`
  8+- 依赖任务:无
  9+- 建议执行者:`均可`
 10+
 11+## 直接给对话的提示词
 12+
 13+读 `/Users/george/code/baa-conductor/tasks/T-BUG-031.md` 任务文档,完成开发任务。
 14+
 15+## 当前基线
 16+
 17+- 仓库:`/Users/george/code/baa-conductor`
 18+- 分支基线:`main`
 19+- 提交:`a2c76c2`
 20+
 21+## 分支与 worktree(强制)
 22+
 23+- 分支名:`bug/reload-refresh-tabs`
 24+- worktree 路径:`/Users/george/code/baa-conductor-reload-refresh-tabs`
 25+
 26+开工步骤:
 27+
 28+1. `cd /Users/george/code/baa-conductor`
 29+2. `git worktree add ../baa-conductor-reload-refresh-tabs -b bug/reload-refresh-tabs main`
 30+3. `cd ../baa-conductor-reload-refresh-tabs`
 31+
 32+完成后提交与推送(由执行者完成,不要合并):
 33+
 34+1. 在 worktree 里提交所有变更(包括更新后的任务文档)
 35+2. `git push -u origin bug/reload-refresh-tabs`
 36+
 37+## 目标
 38+
 39+插件重载或启动时,延迟几秒后自动刷新已打开的 AI 页面(Claude、ChatGPT、Gemini),确保 content-script 和 page-interceptor 重新注入,BAA 浮层恢复正常状态。
 40+
 41+## 背景
 42+
 43+插件重载后,已打开的 AI 页面不会重新注入 content-script,导致:
 44+- 右下角 BAA 浮层显示"本页:未发现"
 45+- page-interceptor 不工作,SSE/fetch 拦截失效
 46+- final-message 无法捕获
 47+
 48+需要手动刷新每个页面才能恢复。
 49+
 50+## 必须完成
 51+
 52+### 1. 插件启动时查找已打开的 AI 页面
 53+
 54+在 `controller.js` 的 `browser.runtime.onInstalled` 或启动初始化阶段:
 55+
 56+- 用 `browser.tabs.query` 查找所有匹配 AI 平台 URL 的 tab:
 57+  - `https://claude.ai/*`
 58+  - `https://chatgpt.com/*`
 59+  - `https://chat.openai.com/*`
 60+  - `https://gemini.google.com/*`
 61+
 62+### 2. 延迟后刷新
 63+
 64+- 延迟 2-3 秒(等待插件初始化、WS 连接建立)
 65+- 对每个匹配的 tab 调用 `browser.tabs.reload(tabId)`
 66+- 不刷新 controller 页面本身
 67+- 不刷新 shell 页面(`#baa-shell` 的 tab),只刷新用户的业务对话页面
 68+
 69+### 3. 日志
 70+
 71+- 记录刷新了哪些 tab(tab ID、URL、平台)
 72+- 如果没有找到需要刷新的 tab,记录"无需刷新"
 73+
 74+## 允许修改的目录
 75+
 76+- `/Users/george/code/baa-conductor/plugins/baa-firefox/controller.js`
 77+
 78+## 尽量不要修改
 79+
 80+- `/Users/george/code/baa-conductor/plugins/baa-firefox/content-script.js`
 81+- `/Users/george/code/baa-conductor/plugins/baa-firefox/page-interceptor.js`
 82+- `/Users/george/code/baa-conductor/apps/`
 83+
 84+## 需要特别注意
 85+
 86+- 只在插件安装/重载时刷新,不要在每次 `browser.runtime.onStartup` 时都刷新(避免浏览器启动时不必要的刷新)
 87+- 延迟时间不要太短(WS 还没连上就刷新没意义),也不要太长(用户等太久)
 88+- shell 页面不要刷新,它们由 conductor 管理
 89+- 所有开发必须在 worktree 中进行
 90+
 91+## 验收标准
 92+
 93+- 重载插件后,2-3 秒内已打开的 ChatGPT/Claude/Gemini 页面自动刷新
 94+- 刷新后 BAA 浮层正常显示(不再是"未发现")
 95+- shell 页面不受影响
 96+- controller 页面不受影响
 97+
 98+## 执行记录
 99+
100+> 以下内容由执行任务的 AI 填写,创建任务时留空。
101+
102+### 开始执行
103+
104+- 执行者:
105+- 开始时间:
106+- 状态变更:`待开始` → `进行中`
107+
108+### 完成摘要
109+
110+- 完成时间:
111+- 状态变更:`进行中` → `已完成`
112+- 修改了哪些文件:
113+- 核心实现思路:
114+- 跑了哪些测试:
115+
116+### 执行过程中遇到的问题
117+
118+> 记录执行过程中遇到的阻塞、环境问题、临时绕过方案等。合并时由合并者判断是否需要修复或建新任务。
119+
120+### 剩余风险
121+