WorkBuddy Switch 是本地桌面工具。使用已保存账号进行切换前,界面会说明需要退出对应客户端;对话迁移前会说明归属变化,并创建完整数据库备份。
- 登录快照只在主进程读取,以 Electron
safeStorage加密后写入应用数据目录的vault.json。 - macOS 的加密密钥由系统钥匙串保护,Windows 使用 DPAPI,Linux 使用 GNOME Keyring / KWallet 并拒绝 basic_text 降级。系统加密不可用时,应用拒绝保存,没有明文账号库降级。
- macOS 自构建仅在显式设置
WORKBUDDY_LOCAL_VAULT=1时使用本地保险库。新记录采用 AES-256-GCM,随机密钥保存在当前应用数据目录的.local-vault-key(0600),它与密文存于同一设备,不能替代系统密钥环的保护。旧系统记录仍需真实系统服务授权解密;已有 16 字节本地密钥兼容保留。密钥损坏、缺失或新密文认证失败时停止读取,不自动重建密钥或使用固定口令。默认发行包使用系统 safeStorage。 - 账号名称、备注、账号 ID 和查询缓存属于本机元数据;账号库内这些元数据不是额外加密字段。界面的隐私遮罩也不会隐藏账号名称和对话标题。
- Token 不通过 IPC 返回给界面,不写入操作日志。主窗口只得到必要的账号资料、设置和用量数据。
- WorkBuddy 5.6 的
$wbEncrypted本机封装保持原样;应用不提取内置密钥或尝试猜测解密。积分查询和可移植备份可通过官方网页登录重新授权。 - 切换目标是 WorkBuddy 客户端自己的登录文件,写入它时会包含该客户端可读取的凭据。这与本工具加密的账号库是不同的文件。
四个地区客户端的快照单独存放在 editor-vault.json,完整凭据负载由本应用的系统 safeStorage 再加密。名称、备注、随机快照 ID 和密文指纹是本机元数据。快照只在本机恢复,不导出到 WorkBuddy 的跨设备备份,也不向界面返回凭据、指纹或加密负载。
Trae 只恢复 storage.json 的四个明确登录字段,保留设备键和全部其他字段,不修改 SQLite。Qoder 原样保存 auth.v1.dat 与存在的 auth-profile-overlays.v1.dat;在用户点击读取当前账号时,通过该客户端的原生系统凭据识别 UID;不复制 Local State 或机器标识。Windows 校验本机加密 key 的摘要,macOS 在存在机器文件时校验其摘要。摘要只用于比较,不回放机器数据。
切换前正常退出并确认进程已停止,保存最新原登录,再写入目标快照。写前生成系统加密的恢复记录;写后检查密文是否一致。启动失败时尝试恢复原登录;恢复失败时保留 editor-recovery-*.json,下次可手动恢复。发现不属于本次切换的新登录值时,拒绝覆盖。用户可选择「保留当前登录并归档」:先保存可用的当前快照,再将旧加密恢复记录改名归档,解除后续切换阻塞。快照一致并不代表服务器登录有效,客户端负责确认授权状态。
客户端标识、地区和数据目录单独校验,读取拒绝越界符号链接。Qoder Windows 启动器只接受安装目录内的相对可执行文件路径。登录数据格式无法识别、加密服务不可用或退出状态无法确认时停止操作。
Trae 静态格式常量从安装包公开脚本只读解析,不执行其脚本。设备密钥保留在原目录;刷新时签名在后端内存完成,不向界面或备份导出设备私钥。Qoder 系统钥匙串/DPAPI/密钥环只用于用户主动触发的本机账号识别,后台状态读取不弹出解锁请求。
网页登录的 verifier、授权码和刷新凭据不返回界面;Trae 回调只监听 127.0.0.1:17388,校验 Host、授权状态和地区,在线探测只返回无凭据的常量响应。网页登录资料与完整客户端快照分别加密;按真实 UID 关联,未关联时不合成桌面登录文件。
WorkBuddy 国际版账号单独保存在 workbuddy-global/,导入与读取校验地区。Trae / Qoder 的标准授权资料同样写入加密的 editor-vault.json,不会包含在 WorkBuddy 跨设备备份里。
.wbsbackup 使用 scrypt 派生密钥、随机盐和 nonce、AES-256-GCM 加密与认证。密码至少 8 个字符,遗忘后无法恢复。导入会验证文件大小、版本、认证标签和账号身份;已有账号不会被覆盖。
会话数据库备份包含本地对话资料,不是密码加密的文件。请不要公开分享。macOS 为应用写入的敏感文件设置 0600,Windows 使用当前用户数据目录的系统权限;操作系统账号或恶意软件已被控制时,这些措施无法替代系统安全。
对话迁移采用参数绑定事务,只改变选中会话;写入前检查归属和删除状态,写入后校验并完成 WAL checkpoint。后续检查失败时尝试仅撤销本次修改的记录,保留备份;不会以整库替换覆盖其他会话。数据库备份默认保留 10 份,超出设置的数量会删除最早的备份。
应用不设置第三方统计、广告或凭据上传服务。网络访问限于:
- WorkBuddy:
www.codebuddy.cn/www.workbuddy.cn的国内接口,以及www.workbuddy.ai的国际接口。确认真实对话任务后,使用固定官方copilot.tencent.com/v2/chat/completions接口,并向国内活动接口记录该次真实完成的对话。 - Trae:
www.trae.cn/www.trae.ai官方授权页、api.trae.cn/grow-normal.trae.ai对应地区授权接口。Qoder:qoder.com.cn/qoder.com官方授权页、openapi.qoder.com.cn/openapi.qoder.sh对应地区授权及资料接口。 - 用户打开官方授权页时,由系统浏览器完成登录。
- 用户检查更新、下载更新包时访问本仓库 GitHub Releases API 与安装包地址。默认线路经第三方 GitHub 代理(
gh-proxy.com、ghproxy.net、ghfast.top)转发同一份仓库地址,只在代理不可用时回落直连;可在设置里固定线路或填写自定义镜像。下载完成后用官方SHA256SUMS.txt校验。打开仓库、Wiki、下载与安全说明使用固定 GitHub 地址。
请求禁用自动跨站重定向,登录 URL 校验协议、主机、用户信息和端口。浏览器授权请求在主进程内存中保存,5 分钟过期,可取消。网络使用 Electron 系统代理。
已有本地 Token、会话标题和目录在本机统计。一键任务中,只有确认窗口里的对话内容会发往官方对话接口,按官方规则处理和计费;该次完整回复确认后才记录真实活动,使用其实际请求标识。官方积分接口收到对应账号的授权凭据。服务端是否使令牌失效、是否允许授权续期,以 WorkBuddy 官方行为为准。
自动签到、旅行领奖和出发默认关闭,用户分别启用后才在应用运行期间执行。各账号可以单独退出自动任务,自动出发需要事先选择官方地点。每次领取前重新查询服务端状态;领取或出发请求中断时不会盲目重试。奖励金额只接受官方明确返回的数值,不读取缓存估值作为新增奖励。
rewards-history.json 保存本应用执行的任务结果,最多 500 条;其中账号 ID、时间、结果和金额属于本机元数据,不额外加密,不含 Token。主窗口与菜单栏面板使用相同的隔离 IPC 边界。
渲染进程启用 contextIsolation、sandbox 和 webSecurity,关闭 Node 集成。IPC 验证发送窗口、主 Frame 和本地页面来源,限制参数、文件类别及可打开的外链。生产版本关闭 DevTools,使用自定义本地协议、CSP 和 ASAR 完整性验证,并禁用 RunAsNode、NODE_OPTIONS 与主进程 CLI 调试入口。
客户端退出采用正常关闭,退出失败会停止修改。存在交互式 CLI 时不继续切换;应用不使用强制终止来跳过该检查。
2026-10-24 已将 Electron 升级到 44.9.3、Vite 升级到 8.3.5,并更新受影响的间接构建依赖。该次锁定依赖的 npm audit 报告为 0 项已知漏洞;这仅代表当次审计数据,不代表操作系统、客户端或未来发布没有问题。
当前 macOS 发布包采用 ad-hoc 签名,没有 Developer ID 公证。Windows 发布包没有 Authenticode 签名。请只从本仓库 Releases 下载,并按同页的 SHA-256 清单检查文件完整性。
安全问题请通过仓库 Security 页面 中可用的私密报告渠道提交。若未开放私密报告,请先提交不包含敏感信息的 issue 请求联系维护者。
不要在公开 issue、附件或截图中提供 Token、登录 .info 文件、vault.json、editor-vault.json、editor-recovery-*.json、.wbsbackup、完整账号 ID 或对话数据库。普通缺陷请描述系统、WorkBuddy 版本、操作步骤与脱敏错误信息。
执行范围在主进程内存保存,绑定账号、内容、模型和次数;10 分钟过期且只使用一次。预览查询任务及官方市场资源,不发送对话;没有有效确认范围时只执行基础任务。默认单批上限 80 条,可调至 200 条,单账号上限 40 条,每次请求携带输出上限 64 Token;这些是调用限制,实际积分由官方计费。传输结果不明时不自动重发付费请求。
真实对话任务在完整流式回复与服务端请求标识确认后才记录对应活动;任务达标和奖励仍需官方回读确认。进度未推进则停止该账号后续对话。task-run.json 只记录任务、状态、时间、官方奖励及返回的 Token 数,不保存对话正文、访问令牌或确认范围里的提示词。
Mac PKG 固定替换应用程序目录中的同标识应用,不更改用户数据目录。临时副本的安装先展示目标位置和覆盖说明,检测到旧版仍在做任务时停止安装;只向同 Bundle ID 的其他 WorkBuddy Switch 进程请求正常退出,不强制终止其他客户端。新版会等待当前操作完成后退出。Windows 复用原安装 GUID 和位置,保留应用数据。构建副本和回退备份保存在隐藏目录,避免作为多个安装版本展示。
确认页将真实对话与兼容活动上报分开显示,可分别关闭。兼容活动只访问固定官方域名;模板、灵感、画布及技能体验需要真实对话,并受同一付费调用预算约束。主题任务会调用官方外观设置接口应用主题,确认页提前说明。其余活动记录不生成真实画布、创建长期定时任务、授权外部应用、接受协议或代为捐款。活动 HTTP 成功不会计入任务完成或奖励;必须回读官方达标状态并成功领奖。桌面活动格式携带当前操作系统、CPU、内存等设备元数据,账号令牌仅发往固定官方域名。
专家与专家团从官方市场获取并过滤公开元数据,确认范围保存具体资源,不接受界面自行指定任意接口、专家或模型。对话回执失效不会触发第二次付费请求。活动记录在任务历史中标记为「已提交活动」,不冒充已生成的客户端成果。
默认关闭,且默认只监听 IPv4 回环地址。2.0.0 起提供 允许局域网访问 开关:用户显式打开并重启服务后改绑 0.0.0.0,额外接受本机各网卡地址、主机名与 *.local 作为 Host;回环地址继续可用,其余主机名仍返回 403 local_clients_only。所有 HTTP 路由验证独立随机 Bearer Key,拒绝 Origin 与 Sec-Fetch-Site: cross-site 请求;局域网模式不改变这条跨站边界。配置与密钥不经 HTTP 管理接口暴露;密钥只由可信主窗口请求复制到系统剪贴板,托盘及子框架无权复制或变更 API 设置。
密钥由现有系统加密服务保护;密钥环暂时不可用时保留原文件,不自动轮换或降级明文。账号只来自明确选择的 WorkBuddy 地区账号库。请求禁用重定向,固定发往对应官方域名,不转发任意目标或调用者的鉴权头。流响应中途失败不重新发送付费请求。
请求体最大 32 MB,上游响应最大 32 MB;消息最多 20000 条。本机不额外限制并发、每分钟请求数或输出 Token,官方限流、账号权限和模型上下文仍然适用;请求保留超时与取消控制。请求历史只保存白名单元数据及实际用量,不保存提示词、回复、令牌或 API Key;损坏的配置和记录保留恢复副本。复制密钥后请仅粘贴到本人信任的客户端。