chore(工作区): 全量入库 + 补齐 .gitignore(以工作区为准)
- 变更规模:新增 514 / 修改 62 / 重命名 155 / 删除 4(归档重组与文档轮次) - .gitignore 修:`归档/**/db-cwd归一-备份-*/` —— 原规则写绝对层级(归档/db-cwd归一-…), 目录搬进 归档/配置与备份/ 后**静默失效**,43 MB 的 DB 备份又变成未跟踪 - .gitignore 补:嵌套 git 内部数据(归档/内嵌git-20261008/、归档/skills-git-旧线-20261007/dotgit-原样移出/) - .gitignore 补:运行态与部署副本(.workbuddy/collab/、.workbuddy/tools/、.workbuddy/.load-pending、.workbuddy/tmp-*) - .gitignore 补:备份件(*.bak-*) - 未跟踪文件从 2190 降到 890(其余为 归档/ 归档件与 .workbuddy/memory/ 知识文件,按口径入库)
This commit is contained in:
1 parent
30b46dbd0c
commit
c1b5e4d966
735 files changed
+153192
-2415
No files matched your search
@@ -0,0 +1,34 @@
|
||||
# 自动化执行记录 · 手机↔桌面 WorkBuddy 通道就绪检查
|
||||
|
||||
> 任务:只读探测 `tmp/wb-phone` 桥通道就绪度并如实报告(⛔ 不起服务 / 不重启 / 不开端口)。
|
||||
> 只登记结论与判据,不复制正文、⛔ 不登记令牌值。
|
||||
|
||||
## 2026-09-28 19:30(第 1 棒)
|
||||
|
||||
- 结果:**只差令牌**(第 2 种情况)+ **手机未连**。
|
||||
- 取证(只读):
|
||||
- `bridge.py --discover` → gateway port `58717`,token `无`
|
||||
- `curl /api/v1/health` → `401`(gateway 在跑且要凭据)|`/` → `200`
|
||||
- `netstat` → `127.0.0.1:58717` LISTENING(pid 35976)|`18899` **未监听**(桥未运行,符合预期)
|
||||
- 令牌三源全空:`WB_PHONE_TOKEN` 未设 · `token.txt` 不存在 · `settings.json` **无 `gateway` 键**(⇒ `/gateway token` 从未执行过)
|
||||
- `adb devices` → 设备列表为空
|
||||
- 处置:仅报告 + 给下一步,未做任何变更。附「桥存活依赖用户自己开的窗口」这一已知限制。
|
||||
- 副作用披露:执行 `adb devices` 时 adb server daemon(tcp:5037)自行启动,属该命令固有行为,未人为常驻。
|
||||
- 下次可复用:本棒判据链(discover → health 401 → token 三源 → adb)稳定,可直接照跑。
|
||||
|
||||
## 2026-09-28 20:30(第 2 棒 · 用户敲了 `/gateway token`)
|
||||
|
||||
- **结论:仍未就绪,但卡点已查清 —— 不是「令牌没生成」,而是「令牌无法被 WorkBuddy 进程树之外的进程拿到」。**
|
||||
- 用户敲的 `/gateway token` **未落盘**:`settings.json` 仍无 `gateway` 键(复核过)。
|
||||
- 🔴 **根因(WorkBuddy 自身源码注释,决定性)**:`/api/v1/*` 曾是**未鉴权本地 RCE**;修复方式 = workbuddy-server 进程内**惰性生成一个随机 secret(32B base64url,单例)**,仅作为 `CODEBUDDY_GATEWAY_PASSWORD` 注入**自己的子进程 env**,`CODEBUDDY_GATEWAY_AUTH=password`,且**刻意不落盘**。
|
||||
⇒ ① 令牌**只在进程树内** ② 🔴 **env 优先级高于 `settings.gateway.password`** ⇒ 即便 `/gateway token` 写成功也会被忽略。
|
||||
⇒ 实测作用域:该变量 **User=空 / Machine=空 / 仅 Process**。
|
||||
- 🔴 **桥的设计前提不成立**:用户从资源管理器双击 `start-phone.cmd` ⇒ 不在 WorkBuddy 进程树内 ⇒ 永远拿不到令牌 ⇒ 恒 401。README §三 的 A/B 两条路都走不通。
|
||||
- ✅ **同时确认通道本身是好的**(用进程树内的令牌实测,未打印令牌值):
|
||||
- `/api/v1/sessions/live` → **200**,返回 `{sessionId: 3a46cebb…, writerOccupied: true}` —— **正是桌面当前活跃会话**(= 本会话)⇒「操作现有会话」成立。
|
||||
- `/api/v1/sessions?cwd=*` → **200**,`data.sessions[]` 字段名 = **`id` / `name`** ⇒ README §六① 可收敛。
|
||||
- 错误令牌 → **401**(对照组,证明鉴权生效)。
|
||||
- gateway 宿主 = `WorkBuddy.exe`;端口**每次重启都变**(50753 → 59914 → 60473 → 58717 → 52954)。
|
||||
- 处置:**只报告,未改任何文件**(除清理自己产的临时件)。已删 `_env_scope.txt`(曾捕获明文令牌)。
|
||||
- 未验证项:桥**拿到令牌后能否真正连通**(本轮为只读棒,未起桥)。
|
||||
- 下次复用判据链:`--discover` → `health` 401 → `env|grep CODEBUDDY_GATEWAY` → 带 `Bearer` 测 `live` → `adb devices`。
|
||||
Reference in new issue
Block a user