im_wower
·
2026-03-30
HANDOFF.md
1# Handoff — 2026-03-30
2
3## 当前基线
4
5- 主分支:`main@96f5a82`
6- 仓库:`/Users/george/code/baa-conductor`
7- conductor 已重启,新代码已加载
8- 看门狗 launchd 已卸载(暂停状态),V2 方案待实现
9
10## 本轮完成的事
11
12### 三家 AI BAA 闭环接入(冲刺主线)
13
14| 提交 | 内容 |
15|------|------|
16| `eed061c` | T-S049:ChatGPT/Gemini policy 白名单 + router 路由 + local-api 端点 |
17| `98db481` | BUG-026:artifact repo root fallback 修复 |
18| `7c8558f` | OPT-002:executor 超时保护(合并冲突已解决:withRouteTimeout + multi-platform) |
19| `f4a1c8d` | 看门狗日志增强:a11y_msg.sh 操作日志 + watchdog.sh 每次检查记录完整状态 |
20| `8a33fa2` | 看门狗 v4:renewed 状态超时重试 |
21| `9869d57` | 看门狗基础:心跳文件 + 定时唤醒 + 兜底上限 + 进度文件 |
22| `8a2524a` | A11Y GUI 控制方案文档 |
23| `c42fb56` | 今晚冲刺计划文档 |
24| `96f5a82` | Watchdog V2 conductor 集成方案 |
25
26### A11Y GUI 控制 — 无障碍树验证
27
28发现并验证了第三条 AI GUI 控制路径:Accessibility Tree。
29
30- CDP 无障碍树(容器内 Playwright):验证 example.com、HN
31- macOS AXUIElement(conductor → AppleScript → System Events):Chrome 49 元素、Terminal 读 shell 内容、Safari 125 元素
32- Safari 操作 ChatGPT 完整闭环:打开 → 填消息 → 点发送 → 读回复
33- 跨 AI 聊天:Claude → Safari → ChatGPT 多轮对话
34- 控制 Codex:剪贴板粘贴 → 回车 → Codex 执行 git 操作
35- 方案文档:`plans/A11Y_GUI_CONTROL.md`
36
37### 看门狗机制
38
39- V1(当前):`tools/watchdog/` 目录,bash 脚本 + 心跳文件 + launchd 管理
40 - 状态机:working / waiting / renewed / paused / done
41 - 三层唤醒:定时 wake_at + 空闲 timeout + 兜底 max_wake_at
42 - 问题:依赖 Claude 手动设状态,经常忘记
43- V2(待实现):`plans/WATCHDOG_V2_CONDUCTOR_INTEGRATED.md`
44 - conductor 拦截 SSE final-message 后自动续命
45 - 零手动管理
46
47### OpenResty 超时修复
48
49- VPS(100.68.201.85:2222)`common-proxy.conf`
50- `proxy_read_timeout` 60s → 120s
51- `proxy_send_timeout` 60s → 120s
52
53### Terminal 设置
54
55- `shellExitAction` 改为 0(shell 退出后关窗口)——但已有窗口需重启 Terminal 生效
56
57## 端点验证结果
58
59| 端点 | 状态 |
60|------|------|
61| `/v1/browser/chatgpt/current` | HTTP 200 ✅ |
62| `/v1/browser/gemini/current` | HTTP 200 ✅ |
63| `/v1/browser/claude/current` | HTTP 502(Firefox 插件没有 Claude 凭证快照,非端点问题) |
64
65## 待清理
66
67### 残留 worktree
68
69```
70/Users/george/code/baa-conductor-code-file-serving [feat/code-file-serving]
71/Users/george/code/baa-conductor-gemini-delivery-adapter [feat/gemini-delivery-adapter]
72```
73
74这两个是更早任务的 worktree,已合入 main,可以清理:
75```bash
76git worktree remove ../baa-conductor-code-file-serving
77git worktree remove ../baa-conductor-gemini-delivery-adapter
78```
79
80### 残留远程分支
81
82已合入 main 的分支可清理:
83- `origin/feat/browser-chatgpt-gemini-targets`
84- `origin/feat/watchdog-logging`
85- `origin/fix/bug-026`
86- `origin/fix/opt-002`
87- `origin/feat/code-file-serving`
88- `origin/feat/gemini-delivery-adapter`
89
90### 残留 Terminal 窗口
91
92当前有 5 个 Terminal 窗口(含已完成任务的 Codex),应关闭非活跃的。
93
94## 下一步
95
96### 优先
97
981. **三家 AI 浏览器端到端验证**:在 Safari 各标签页实际发 baa 指令测试闭环
992. **Watchdog V2 开发**:conductor 集成,方案已写(`plans/WATCHDOG_V2_CONDUCTOR_INTEGRATED.md`)
100
101### 后续
102
1033. OPT-003:policy 白名单配置化
1044. OPT-004:Claude final-message SSE fallback
1055. OPT-005:normalize/parse 错误隔离
1066. BUG-027:startup plugin diagnostic events lost before ws open
1077. Conductor UI 模块(`plans/CONDUCTOR_UI_MODULE_REQUIREMENTS.md`)
1088. A11Y 端点 Phase 1(`plans/A11Y_GUI_CONTROL.md`)
109
110## 连接信息
111
112- conductor 公网:`https://conductor.makefile.so`
113- conductor 内网:`http://100.71.210.78:4317`
114- TOKEN:`2c4d0a0d9141f1cc6dac4dd3734a24b4fece9e5be539944b5fc451be011c0e6a`
115- VPS:Tailscale `100.68.201.85`,SSH port 2222
116- mini Tailscale:`100.71.210.78`
117- MBP Tailscale:`100.112.239.13`