baa-conductor

git clone 

im_wower  ·  2026-03-29

HANDOFF.md

  1# Handoff — 2026-03-29
  2
  3## 当前基线
  4
  5- 主分支:`main@4663817`
  6- 仓库:`/Users/george/code/baa-conductor`
  7- 工作区:干净,无未提交改动;当前只有主 worktree;本地仅有 `main` 分支
  8- 说明:`4663817` 是文档同步提交;最近已合入的功能提交包括 `7113251`、`2b010d4`、`76aa1aa`、`6391ada`
  9
 10## 当前进度判断
 11
 12- 已完成任务:`19`
 13- 待开始任务:`3`(`T-S048`、`T-S049`、`T-S051`)
 14- `T-BUG-029`、`T-BUG-031` 的代码和任务卡都已是 `已完成`
 15- 当前 open bug:`BUG-026`、`BUG-027`
 16
 17## 本轮完成的事
 18
 19### Artifact 静态服务(主线,全部完成)
 20
 21- 新建 artifact-db 包:SQLite 持久化 messages / executions / sessions
 22- 静态文件生成:`.txt`(frontmatter)+ `.json`,conductor HTTP serve `/artifact/`
 23- 接入主链路:browser.final_message → 写库 + 生成文件;executor → 写库 + 生成文件
 24- 回送截断:> 2000 字符截取前 500 + exact URL(阈值可配置)
 25- 查询路由:`/v1/messages`、`/v1/executions`、`/v1/sessions`、`/v1/sessions/latest`
 26- 跨会话接续:`/describe` 回复含 `recent_sessions_url`
 27- D1 异步同步:本地 SQLite → sync queue → Cloudflare D1(新库 `baa-conductor-artifact` 28- stagit:git 仓库静态 HTML,`/artifact/repo/baa-conductor/log.html`
 29- robots.txt:`Allow: /artifact/`
 30
 31### Claude Code CLI 双工接入
 32
 33- `apps/claude-coded/`:spawn `claude -p --input-format stream-json --output-format stream-json`
 34- stdio 双工通信,HTTP API 封装,launchd 配置
 35
 36### 插件增强
 37
 38- 诊断日志:controller / content-script / page-interceptor 加 `[BAA]` 日志
 39- 日志 WS 转发:插件 → conductor → `logs/baa-plugin/YYYY-MM-DD.jsonl`
 40- ingest 日志:conductor 收到 final_message 写 `logs/baa-ingest/YYYY-MM-DD.jsonl`
 41- baa 代码块属性兼容:`` ```baa id="xxx" `` 格式可识别
 42- ChatGPT SSE abort 修复:主流被中断时从已有 chunks 提取 candidate
 43- isRelevantStreamUrl 收紧:排除 ChatGPT 辅助流
 44- 插件重载自动刷新页面:延迟 2.5s 刷新已打开的 AI 页面
 45
 46### Bug 修复
 47
 48- files/read kind 标记:`"write"` → `"read"`
 49- conductor-daemon 测试 localApiBase undefined
 50- SQL 注入白名单、D1 schema 外键、daemon.stop() await、transport 监听器清理
 51- sessions 查询补 conversation_id 过滤、ask 超时竞争
 52
 53## 当前 open bug / 风险
 54
 55- **BUG-026**:`/artifact/repo/:repo_name` 根路径不会落到默认 `log.html`
 56- **BUG-027**:插件启动期诊断事件会在 WS 建立前丢失,`logs/baa-plugin/` 缺失最早注入证据
 57
 58详见:
 59
 60- `bugs/BUG-026-artifact-repo-root-fallback-broken.md`
 61- `bugs/BUG-027-startup-plugin-diagnostic-events-lost-before-ws-open.md`
 62
 63## 已完成但建议补做浏览器复核
 64
 65任务卡状态已经是 `已完成`,这里只保留“建议补做”的真实浏览器检查:
 66
 671. **T-BUG-031**:重载插件后 AI 页面是否自动刷新,BAA 浮层恢复正常
 682. **T-BUG-029**:ChatGPT 发 baa 指令后,conductor 能否提取并执行,结果回送
 69
 70## 待开始的任务
 71
 72### T-S048 Gemini 投递适配器(M 级)
 73
 74-`delivery-adapters.js` 补 Gemini 的 DOM 选择器
 75- 需要在 Gemini 页面 DevTools 观察 DOM 结构
 76- 提示词:`读 /Users/george/code/baa-conductor/tasks/T-S048.md 任务文档,完成开发任务。`
 77
 78### T-S051 代码文件直读映射(S 级)
 79
 80- conductor `/code/` 路由直接 serve 磁盘代码文件
 81- 安全限制:排除 .env / .credentials / .git/objects,防目录遍历
 82- 与 T-S048 可并行
 83- 提示词:`读 /Users/george/code/baa-conductor/tasks/T-S051.md 任务文档,完成开发任务。`
 84
 85### T-S049 开放 chatgpt/gemini target(S 级)
 86
 87- policy 白名单 + router 路由 + local-api 端点
 88- 当前主依赖:`T-S048`(Gemini 适配器)
 89- 提示词:`读 /Users/george/code/baa-conductor/tasks/T-S049.md 任务文档,完成开发任务。`
 90
 91## 未建任务但已写入需求文档的
 92
 93`plans/NEXT_WAVE_REQUIREMENTS.md` 94
 95- **#10 历史消息回补**:参考旧版 sync-worker,在 conductor 内部定时拉取平台对话历史
 96- **#11 拦截消息完成推送**:比 SSE 解析更可靠的完成检测,依赖诊断日志观察
 97
 98## 注意事项
 99
100- 每个任务强制使用独立 worktree + 新分支,只推不合,合并由合并者执行
101- 合并后需要 `pnpm build` + `launchctl kickstart -k gui/$(id -u)/so.makefile.baa-conductor` 才能生效
102- 插件改动需要在 Firefox `about:debugging` 重新载入插件
103- 当前接手时,建议阅读顺序:`HANDOFF.md` → `tasks/TASK_OVERVIEW.md``plans/STATUS_SUMMARY.md` → 对应任务卡