# WorkBuddy CLI 2.161.0 兼容性核查 日期:2026-10-23(Asia/Singapore)。范围:Vibe Research v2.2.3 的 WorkBuddy / CodeBuddy 兼容性修复,基线为 v2.2.2。 ## 来源与复现环境 - 本机 macOS / Apple Silicon,Node.js 26.0.0;现有 WorkBuddy 内置 CLI 2.137.1 保留原样。 - 官方桌面版本元数据:[WorkBuddy macOS ARM64 更新接口](https://www.workbuddy.cn/v2/update?platform=workbuddy-darwin-arm64)。本次取得 WorkBuddy 5.8.3.41334564,包内 CLI 的发布版本为 2.161.0。 - [官方桌面 ZIP](https://download.codebuddy.cn/workbuddy/saas/darwin-arm64/WorkBuddy-darwin-arm64-5.8.3.41334564-db0e9b51.zip) 的 SHA-256 为 `5a88f67b0bfeb46d320be9d4e3c1f3b5f58ee8a24225a26f0d387c6f8c5f78d6`,本次下载校验一致;只在临时目录解包 CLI,未安装或覆盖应用。 - 另用官方 npm 包 `@tencent-ai/codebuddy-code@2.161.0` 对照,包完整性与 npm 发布元数据一致。独立 CLI 与桌面版的产品配置、登录入口不同;独立 CLI 未登录的结果不当作桌面版已登录测试。 - 不读取、复制或软链认证文件。初始化响应只在内存中解析,留档仅包含退出码、字段名、字段类型和登录布尔,不含身份值或 token。 ## 两个问题 ### 登录判定 原实现要求 `userId` 与 `token` 同时为非空字符串。以截图提供的 `{uid,type,userId}` 响应结构调用生产探针,会被判为未登录,执行前也会被拦截。 官方 2.161.0 初始化处理器从同一个账号 ID 生成 `uid` 与 `userId`,token 可以省略;`type` 是账号种类,不是 API / 订阅认证方式。修复接受这套结构,并将已登录状态与旧版临时 HOME 运行所需的凭据分开。未知账号种类不凭名称猜测认证方式;新版无 token 结构缺失字段、ID 为空白或两个 ID 不一致时仍拒绝。 没有会话隔离参数的旧 CLI,不能靠一个无凭据的登录布尔绕过临时目录执行条件;此时明确提示升级。 本机真实 2.137.1 与桌面 2.161.0 的账号响应均带 token。无 token 分支由生产入口的可控 CLI 回归验证,不能称为本机真实账号的无 token 验收。 ### 环境变量过滤后的退出码 1 官方桌面 2.161.0 的 `dist/` 只有 `codebuddy-lite-wb.mjs` 及相应分块,没有默认的 `codebuddy-headless.js` 或 `codebuddy.js`。官方启动器要求 `CODEBUDDY_FORCE_LITE_WB_BUNDLE=1` 才会选择精简运行包;原环境白名单将其删除。 真实桌面 CLI 对照结果: | 环境 | `--help` | `initialize` | |---|---|---| | 原生产过滤环境 | 退出 1:找不到 `../dist/codebuddy` | 同样退出 1 | | 完整环境保留精简包选择项、移除 API 覆盖 | 退出 0 | 退出 0,账号存在 | | 原生产过滤环境只增加精简包选择项 | 退出 0 | 退出 0,账号存在 | 因此本次确认的根因是运行包选择项被删除。修复在 CodeBuddy 专用子进程环境中显式设置这一项,不继承宿主的其他 WorkBuddy 变量,也不放宽公共白名单。独立 npm CLI 在安装完整依赖后,其默认运行包可正常启动,不复现桌面版的缺包问题。 ## 本轮验证 - 桌面版内置 CLI 2.161.0:修复后生产 `probeCodeBuddy` 返回 `ready`,即使宿主将精简包选择项设为 `0`,也由产品正确选中运行包;`runLocalAgent` 的一次无工具真实最小对话返回预期 `WB2161_OK`,耗时约 6.8 秒。 - 本机旧内置 CLI 2.137.1:生产登录探针仍为 `ready`,未安装或覆盖现有应用。 - 独立 npm CLI 2.161.0:锁定该确切版本后,修复后的生产登录探针为 `ready`,验证官方启动器缺少精简包时的回退路径;未重复调用模型。 - 适配器单文件回归 57 项:54 通过、3 项 Windows 实机专项跳过;精简包选择回归先在旧代码变红、修复后变绿。 - 编排器类型检查通过;前端 351 项测试通过,前端构建通过(保留已有的大分块体积提示)。 - 独立 GPT-6.1 Sol 的通用代码审查与 TypeScript 审查均通过,分别补跑了 7 项和 6 项相关回归,未发现新增 P1/P2/P3。 - 固定 `codex-audit` CLI 入口独立复审:GPT-6.1 Sol / xhigh,只读、独立上下文,退出码 0,结论 PASS,无新增或加剧的 P1/P2/P3;另做了内存替身检查和差异检查。 - 后端全量回归 1280 项:首轮 1271 通过、8 跳过、1 失败。唯一失败是临时 `[Unreleased]` 标题与仓库“首个带方括号的版本条目必须为当前源码版本”的既有检查冲突;修正临时标题后该项单独复验通过。本次同步 v2.2.3 后版本一致性检查与前后端类型检查通过,没有重跑整套后端,不把首轮的退出码 1 写成全套一次全绿。 ## 边界 - 修复纳入 v2.2.3;发布记录以 GitHub Release 为准,本轮未部署。 - macOS 的 CLI 兼容性、登录探针与最小对话不代表 Windows 实机或完整研究业务验收。 - 不把截图描述的所有卡顿、数据获取失败归因于这两个适配问题。