摘要:同一台 Windows 上同时装 WorkBuddy 国内版和国际版,自动更新反复把两个客户端装进同一个目录——两个快捷方式点开变成同一个应用。本文记录从日志定位“共用更新缓存”这个隐藏原因的全过程,并附一句可直接复制给 AI 的修复提示词。
Tags:WorkBuddy / Windows / Electron / 踩坑记录 / AI Agent / 提示词
先说结论
如果你只想要那句话:
帮我把本机的 WorkBuddy 国内版(WorkBuddy.exe)和 WorkBuddy AI 国际版彻底分开:先关掉两个客户端,清掉它们共用的更新缓存(
%TEMP%\workbuddy-update-x64*、%LOCALAPPDATA%@genieworkbuddy-desktop-updater),再把两个客户端都卸载干净,分别静默重装到两个固定目录(国内版E:\App\WB\CN、国际版E:\App\WB\AI),修好桌面/开始菜单快捷方式和深链,各启动一次确认国内版只查www.workbuddy.cn、国际版只查www.workbuddy.ai,且两个安装目录不再互相塞入对方的文件;全程不要动%LOCALAPPDATA%\CodeBuddyExtension里的登录数据(账号和登录态不能丢),最后用/api/accounts和「环境诊断」验证并告诉我结果。
把这段丢给有本机终端权限的 AI(Claude Code / Codex / DSH 里都行),它就能按清单执行并自检。下面解释为什么这句话里每一步都不能省。
症状:两个快捷方式,点开是同一个应用
我的机器上同时装了 WorkBuddy 的两个产品:
- WorkBuddy:国内版,
WorkBuddy.exe,5.8.3 - WorkBuddy AI:国际版,
WorkBuddyAI.exe,5.8.4
它们是两个独立的 Electron 应用,但共享同一个登录数据目录(%LOCALAPPDATA%\CodeBuddyExtension),所以账号、积分、登录态是通的——这也是我一开始觉得“装两个客户端共存应该没问题”的原因。
一开始它们确实装在不同目录。但最近几次更新之后,怪事出现了:
- 两个桌面快捷方式,点开都是“WorkBuddy AI” ;
- 从“国内版”快捷方式启动的窗口,登录的却是国际版账号;
- 其中一个客户端行为诡异:动不动重新登录、版本号对不上。
看起来就像是“两个客户端被合并成了一个”。更气人的是:我把它们分开重装了一次,下一次启动又合并了。那一刻我感觉“这是不是故意的”。
第一层原因:Electron 应用,一个目录只能有一套 resources
对 Electron 应用来说,WorkBuddy.exe 只是一个壳,真正的程序在 resources/app.asar。 国内版和国际版是两套独立的应用,但目录结构一模一样:
代码块
WorkBuddy\
WorkBuddy.exe ← 壳
WorkBuddyAI.exe ← 另一个壳(如果装到一起)
resources\app.asar ← 真正的程序,只有一个
如果两个产品的安装器进了同一个目录,后装的那套会把 resources/ 覆盖掉。于是先装的那个 exe 虽然还在,启动时加载的却是另一个产品的代码——这就是“两个快捷方式打开都一样”的由来。
而它们的自动更新并不是原地打补丁,而是下载完整安装包 → 静默卸载 → 重装。客户端安装日志里能直接看到:
代码块
install target dir: E:\App\WB\CN
install mode: silent-update
final install directory: E:\App\WB\CN
“目标目录”这个记忆,并不保证跟你上次手动安装的目录一致。两个产品的默认目录名又都叫 WorkBuddy,于是很容易落到同一处。
第二层原因(真凶):两个产品共用更新缓存
如果只是“装到同一目录”,分开重装一次就完事了。但我遇到了“修一次、下次启动又合并”。
翻客户端更新日志才看到关键两行:
代码块
Restored downloaded update from cache: version=5.8.4.41366630
installerPath=C:\Users...\Temp\workbuddy-update-x64\WorkBuddy-Setup-5.8.4.41366630.exe
翻译一下:国内版客户端在启动时,从缓存里“恢复”出了一个国际版的 5.8.4 安装包,并把它当成了自己的更新。
原因是两个产品共用更新缓存目录:
%TEMP%\workbuddy-update-x64%TEMP%\workbuddy-update-x64-workbuddy-ai%LOCALAPPDATA%@genieworkbuddy-desktop-updater
旧版本更新器下载的安装包没有“产品身份”校验,客户端恢复缓存时只比版本号。于是缓存里残留的“对方的安装包”,会被这边当成自己的更新,静默安装进当前目录——然后再次覆盖。
所以:不先清掉共用更新缓存,重装多少次都会再合并。 这不是谁故意的,是两个产品根本没为“同一台机器共存”做设计。
AI 实际执行了什么
把开头那句话给 AI 之后,它做的事按顺序是:
-
关掉两个客户端(否则安装/卸载会失败或文件占用);
-
备份登录数据:把
%LOCALAPPDATA%\CodeBuddyExtension\Data\Public\auth复制到备份目录(这一步是保命线,账号和登录态都在里面); -
清共用更新缓存:
bat
rmdir /s /q "%TEMP%\workbuddy-update-x64" rmdir /s /q "%TEMP%\workbuddy-update-x64-workbuddy-ai" rmdir /s /q "%LOCALAPPDATA%@genieworkbuddy-desktop-updater" -
两个都卸载(用各自的
Uninstall*.exe /S,顺带手动清掉卸载残留); -
分别静默重装到两个固定目录:
bat
WorkBuddy-win32-x64-user-<版本>.exe /S /D=E:\App\WB\CN WorkBuddy-Setup-<版本>.exe /S /D=E:\App\WB\AI/D=必须是最后一个参数、路径不要加引号;安装器如果自动拉起了客户端,先关掉再检查。 -
修快捷方式和深链,让
WorkBuddy指向国内版、WorkBuddy AI指向国际版。
验收:怎么确认这次真的分开了
AI 说“修好了”不算数,我让它按下面四条验收,缺一条都不算:
| 验收点 | 期望 |
|---|---|
| 安装目录 | E:\App\WB\CN 里只有 WorkBuddy.exe,E:\App\WB\AI 里只有 WorkBuddyAI.exe,没有对方的 exe |
| 快捷方式 | WorkBuddy.lnk → CN 的 exe;WorkBuddy AI.lnk → AI 的 exe |
| 更新日志 | 国内版查 www.workbuddy.cn、version=5.8.3;国际版查 www.workbuddy.ai、version=5.8.4,都回 No update available |
| 登录数据 | auth 目录文件数、账号列表、桥/密钥全部不变 |
实测结果(客户端自己的更新日志):
代码块
CN : Checking for updates: https://www.workbuddy.cn/v2/update?...version=5.8.3
CN : No update available (HTTP 204)
AI : Checking for updates: https://www.workbuddy.ai/v2/update?...version=5.8.4
AI : No update available (HTTP 204)
两个客户端各查各的域名、版本号都对,目录里也没再出现对方的文件。这次才算真的分开了。
三点建议
- 只要一个客户端的话,别装两个。 两个账号的登录文件都在共享数据目录里,用桥/控制台切换账号就行,不需要两个客户端都装——这是最省事的方案。
- 两个都要,就记住“清缓存 → 分开装”这个顺序。 每次大版本更新后瞄一眼安装目录和更新日志域名;也可以把
WORKBUDDY_APP_EXECUTABLE写进.env钉住常用客户端的 exe。 - 让 AI 干这类活时,要求它“贴证据” :目录里有什么文件、快捷方式指向哪、更新日志最后几行是什么、登录数据有没有动过。不然它很容易把“命令跑完了”当成“修好了”。
一句话提示词(可收藏)
代码块
帮我把本机的 WorkBuddy 国内版(WorkBuddy.exe)和 WorkBuddy AI 国际版彻底分开:先关掉两个客户端,清掉它们共用的更新缓存(%TEMP%\workbuddy-update-x64*、%LOCALAPPDATA%@genieworkbuddy-desktop-updater),再把两个客户端都卸载干净,分别静默重装到两个固定目录(国内版 E:\App\WB\CN、国际版 E:\App\WB\AI),修好桌面/开始菜单快捷方式和深链,各启动一次确认国内版只查 www.workbuddy.cn、国际版只查 www.workbuddy.ai,且两个安装目录不再互相塞入对方的文件;全程不要动 %LOCALAPPDATA%\CodeBuddyExtension 里的登录数据(账号和登录态不能丢),最后用 /api/accounts 和「环境诊断」验证并告诉我结果。