Repository navigation
Releases: smart-open/TraeWorkAssistant
Release list
v3.8.2 · 自定义模型上游组负载均衡与熔断切换
[3.8.2] · 2026-10-22 · 自定义模型上游组负载均衡与熔断切换
范围:自 [3.8.1] 以来的全部变更,核心为自定义模型上游组负载均衡与熔断切换、应用内更新修复(issue #135)。实现细节、根因分析与过程记录见 git 提交历史。
新功能
- 同名多条 = 上游组(负载均衡):同一模型名可配多条上游(不同中转 / 同上游多 Key 分摊),组内按权重轮询;可标记「备胎」,活跃条目全部失败/熔断时自动 failover。自定义模型页分组展示(主/备/权重逐条标注),旧单条记录自动退化、行为不变。
- 组内快速失败切换:上游连接失败 / 报错 / 首字超时且尚未向客户端产出内容时,自动换组内下一上游重试,客户端全程无感;同会话短暂粘住同上游,保护提示词缓存。
- 实例级熔断自动恢复:每条上游独立记账,连续失败进入渐进冷却、到期自动放行,成功即恢复;冷却期组内选路自动跳过,页面实时显示「熔断中」徽标。
- 自定义上游参与统一调度(第五资源池):custom 与内置池同规则参与智能调度与池间回退(免费上游可胜出);支持模型绑定池、API Key 绑定「自定义上游池」;
custom/模型名前缀锁池直达。 - 模型目录与网关帮助同步:/v1/models 同名多源合并单行展示(倍率取组内最小),多源模型附带
custom/xxx别名;落池规则更新为五池语义。
修复加强
- 应用内更新修复(issue #135):修复点「检查更新」自动安装时进度条中途消失、升级静默失败(安全软件实时扫描等慢退出环境必现);MSI 不参与应用内更新,缺安装包时显式报错引导手动下载。
- 目录聚合与查重修正:组内已停用条目的倍率不再污染展示倍率(不再「显示免费、实际计费」);仅拒绝「同名 + 同地址 + 同 Key」的完全重复项,同名不同上游合法构成上游组。
- 可观测补齐:组内轮换逐次落请求日志;组内全试尽落排障摘要;新增熔断状态快照接口。
- 稳定性审查批次:custom 池 Key 白名单三处口径统一(白名单外条目视同不存在,组内全排除自动跨池回退);流内失败不再误判记账成功;上游探测改独立短超时连接;base_url 归一化(scheme 大小写 / 默认端口变体)杜绝绕过查重;侧边栏拖拽兼容触控/触笔并新增键盘换位;侧边栏应用顺序入库前合法性校验。
⚠️ 行为变化(升级须知)
- 同名多源模型的默认落池变化:自定义模型与 Trae/Buddy/Qoder 同名时不再「自定义恒赢」,改按统一调度规则排序(自定义默认尾部兜底)。依赖直达语义的请改用
custom/模型名前缀、Key 绑定「自定义上游池」或模型绑定池显式指定。纯自定义模型(无同名内置源)行为零变化。
v3.8.1 版本发布
[3.8.1] · 2026-10-22 · 指纹清洗增强 + 11128 全形态处置 + 稳定性加固
范围:自 [3.8.0] 以来的全部变更,核心为指纹清洗增强、11128 错误全形态处置与 WB 轮次锁跨进程互斥。实现细节、根因分析与过程记录见 git 提交历史。
新功能
- WB 会话头三件套(dsh-xdpool#58):chat 请求统一附带
X-Conversation-ID/X-Conversation-Request-ID/X-Conversation-Message-ID,对齐国际版网关硬校验,消除缺头 400 11128。 - 指纹清洗增强(issue #122 / #125 / #129):Trae 池多候选改写种子、激进清洗开关、残指纹自检与池级拦截短记忆;清洗规则按 wb / buddy-ai 档位分区;新增指纹样本环形缓冲(容量 50)与「指纹清洗」页样本查看、一键预填清洗规则。
- AuthRejected 永久冷却(issue #128):凭证被上游明确拒绝的账号进入永久冷却,徽标与调度器一致,不再反复无效重试。
- WB 轮次锁跨进程互斥(issue #134):签到/成长轮次进程内锁 + Windows 命名互斥体双保险,GUI/调度器/启动补签/托盘/计划任务 CLI 五入口全覆盖;撞锁报错携带持有者标签与已运行时长,超 15 分钟疑似卡死落日志告警。
- 后台轮次事件转发(issue #134):调度器/启动补签/托盘轮次同步转发签到进度事件,前端运行态实时置位,不再只由手动点击驱动。
- 当日全败门禁(issue #134):WB 签到/成长连续 3 轮整轮全败当日暂停重试链,任一成功(含已签)清零,次日自动恢复。
修复加强
- 11128 错误全形态处置(issue #123):HTTP 错误码与流内 SSE 错误帧(HTTP 200)统一识别清洗;流内内容已流出时不再同号重试,如实落错并正确记账归因。
- 续期前置判活(issue #126):JWT 续期前先探活,网络故障等无法判定场景不再误阻断账号切换。
- exhaust_message 防误报(issue #130):积分耗尽判定排除显式 hint 干扰,样本不足不宣判。
- Qoder campaigns 空表最小头复取(issue #132):完整设备头拉取活动列表返回 200 空表时自动以最小头复取一次,并落空表诊断(http 状态/响应体头部);复取自身错误如实透传,保留 401 刷新自愈与当日重试资格。
- 审查加固:锁中毒恢复统一、续期到期口径取自刷新后权威列表等 4 项修复;全量回归 1010 Rust 测试 + 80 前端测试通过。
v3.8.0 版本发布
[3.8.0] · 2026-10-18 · BuddyAI 国际版独立池 + 应用显隐联动 + 风控归因修复
范围:自 [3.7.13] 以来的全部变更,核心为 BuddyAI 国际版独立池、应用显隐联动与风控归因修复。实现细节、根因分析与过程记录见 git 提交历史。
新功能
- BuddyAI 国际版(WorkBuddy 国际)完整支持:新增独立
buddy-ai资源池——账号、凭证、调度、指纹清洗、记账、UI 六面与国内 Buddy 完全隔离,互不混居;OAuth 扫码登录对齐官方桌面端身份(platform=workbuddy+ WorkBuddy 桌面 UA 三段式,实测返回官方新登录页),refreshToken 每次轮换即回写。 - BuddyAI 六页产品形态对齐国内:账号管理(分区 UI / 导入导出 / 设备凭证)、每日活跃打卡(六步网页会话链路,钉免费模型零扣积分)、积分看板(趋势快照 / 积分包明细 / 官网请求流水 / 到期解析校准)、资源调度(静态模型目录 + Intl 倍率实抓 / 池粘性 TTL 编辑)、环境配置与调度任务全套对齐国内 Buddy 使用体验。
- 应用显隐联动:侧边栏应用级可见性开关(BuddyAI 默认隐藏,按需开启)——隐藏仅从界面移除入口,调度、记账、Key 绑定池等已配置能力全部继续生效;API 管理、调度中心、网关帮助等页面随之联动,隐藏池专属的模型/绑定条目带「已隐藏」徽标展示。
- WorkBuddy 双客户端并存适配:国内 WorkBuddy 与国际 WorkBuddyAI 客户端的注册表探测、图标匹配、进程识别精确区分——互不误识别、互不误关闭,两客户端可同机共存。
修复加强
- Buddy 池 refresh 失败如实归因(issue #118):refresh 4xx 错误不再一律提示「重新登录」——账号被封禁、会话失效、通用拒绝三类如实区分展示,混合文案按封禁优先判定,不再误安抚「重登可恢复」。
- Qoder 签到 BLOCKED 归因修正(issue #119):上游风控按指纹信任分桶拦截——旧文案「在客户端登录一次」实际无效(客户端登录建立的是客户端原生指纹的信任,与工具盲发指纹不一致)。现提示有效路径:先在工具内切换到该账号(切换器同步该账号指纹到本机),再开客户端正常使用一次建立信任;真实客户端指纹捕获支持双数据目录候选。
- 合并与审查加固:feat/buddy-ai 全量合入 main(冲突 2 文件解决 + 重复块清理),叠加多轮代码审查修复——OAuth 登录回退链接、SSE 双完成护栏、签到回写运行池、混合账户到期排序等 50+ 项加固;全量回归 969 测试通过零警告。
v3.7.13 版本发布
[3.7.13] · 2026-10-16 · 多账号签到设备隔离 + 免费活动调度适配
范围:自 [3.7.12] 以来的全部变更,核心为多账号签到设备隔离(OAuth 设备轮转)与 Qoder 免费活动 / 风控拦截调度适配。实现细节、根因分析与过程记录见 git 提交历史。
新功能
- Qoder 免费活动零积分豁免(issue #111):Qwen3.8-Flash 上游免费活动期(usage.billable=false 实不扣积分)倍率覆盖为 0,零积分账号不再被积分过滤挡在门外,免费消耗按 0 落账不虚增用量;资源调度页新增开关(
qoder_flash_free_rate,默认开),活动结束后关闭即恢复官方同步倍率。
修复加强
- API 网关调度不再粘滞旧账号(issue #109):运行期积分回写此前只拨余额不拨到期时间——网关启动后新登录/新刷新账号池内到期信息为空,被「先到期先消耗」策略恒压在带旧到期信息的老账号上(新建会话同样命中),充值续期后的新到期也进不了池、已过期账号甚至被整体排除。现 Trae/WB 池积分回写一律三键拨新(余额 + 到期 + 快照时间戳),到期口径与网关重启装配完全一致;积分页/后台/调度器快照三条刷新链路即时生效,无需重启网关。
- 多账号签到「设备当日已签」根因修复(issue #110):本机仅一套 Trae 设备凭证(或无凭证)时,多账号 OAuth 全绑同一台设备,签到按设备 ID 每日去重——除首个账号外全部撞「设备当日已签」。现登录优先选用未绑定账号的本机设备凭证,全部已绑定(或无凭证)时为每次登录生成全新独立设备身份并绑定到该账号;同一账号重新 OAuth 即轮换新设备,删除账号同步清理绑定。
- OAuth 刷新防设备漂移:凭证刷新按账号绑定设备精确匹配(登录用哪台、刷新就签哪台),未命中不再回退首个凭证悄悄换设备,如实报错。行为变更:存量账号建议重新 OAuth 登录一次以重建设备绑定。
- 签到设备冲突体验:命中「设备已签」时如实提示原因与解决路径(重新 OAuth 轮换设备凭证 / 换机签到),冷却精确到次日 00:05 且不再计入 30s/90s 重试轮;签到页启动前检测多账号共用设备并横幅预警。
- 计划任务弹黑框修复(issue #112):Windows 计划任务改主程序直调(GUI 子系统不分配控制台,触发时不再弹 cmd 黑框),存量
cmd /c包裹任务启动时按原计划自动迁移,幂等可重试。 - Qoder 签到 claim 风控拦截修复(issue #114):上游风控升级为按请求头形态拦截 claim——带设备指纹头族的完整形态一律 503 RISK_DEPENDENCY_UNAVAILABLE(同 IP 同 token 同 id 探针实证),最小头(仅鉴权四件套)正常领取到账。现主领取与盲发兜底的全部 claim 请求及列表补学统一改用最小头形态,消除「全天盲发失败、退避重试无效」的死循环;主列表/余额查询维持原主请求形态不变。
v3.7.12 版本发布
[3.7.12] · 2026-10-14 · Trae 双应用合并适配
范围:自 [3.7.11] 以来的全部变更,核心为 Trae 双应用合并适配;另含两轮全量审查修复批(healthz 三池口径 / 迁移原子性 / 跨进程刷新锁 / 记账闭环 / 迁移承接守卫 / SSE 双完成护栏 / 签到奖励运行期回写 / 混合账户到期口径)。实现细节、根因分析与过程记录见 git 提交历史。
官方将 Trae Work(TRAE SOLO CN)与 Trae CN IDE 合并为单一客户端「Trae CN」,本工具随之收敛为单 Trae 应用。本版本起仅支持合并版 Trae CN 客户端;未升级客户端的存量快照仍可回退旧版本工具使用。
调整
- Trae 双应用合并适配:账号自动发现、登录态切换、快照管理、设备重置、环境检测与打开客户端统一指向合并版客户端,原 Trae Work 独立入口与设置项退役;数据目录统一为
%APPDATA%\Trae CN。 - 存量数据自动迁移:首次启动自动完成——旧 Trae Work 路径设置退役(指向旧客户端的自动丢弃,绝不覆盖已有 Trae CN 配置);旧快照池按槽整组搬迁,同 uid 冲突组原样保留于
profiles_trae_work_legacy可随时取回;Trae 运行中自动跳过、下次启动重试,全程幂等。 - 升级引导:迁移完成后首次启动弹出引导,展示迁移流程与结果,并建议所有 Trae 账号在客户端重新登录后点「保存当前登录态」重建快照;关闭后不再展示。
修复加强
- 切换后登录身份确认:切换完成不再一律报「成功」——客户端实际登录为其他账号(快照污染)或未能在时限内确认登录时,如实警告并给出修复指引,桥标记随实际身份自动纠正。
- 未登录现场双保险:客户端未登录时「保存当前登录态」被拒绝;切换过程中未登录现场不再回写标记槽位,斩断「切回来恒未登录」的槽位污染循环。
- 恒开 Agent 窗口:切换恢复与顶部打开统一修正启动窗口为 Agent(此前恢复旧快照会按快照冻结的类型误开 IDE 窗口);窗口修正对 storage.json 改原子写,杜绝写盘中断损坏登录态。
- 迁移快照预期:迁移自旧 Trae Work 目录的快照首次使用可能需重新登录一次该账号(重登后点「保存」刷新快照),升级引导与用户手册均已明示。
- 白名单保留:签到 UA 中的
TRAE SOLO CN品牌字面量按上游校验要求保留;WorkBuddy(腾讯独立应用)不随本次合并变动。 - 删除账号同步清理设备指纹(移植 docker_main PR #101):账号删除时同步移除
device_map条目(与签到/OAuth 设备回写互斥防丢更新)——此前残留孤儿条目会污染兜底设备基准,重新导入同 uid 账号会静默复用旧设备绑定;删除后重新 OAuth 即按轮转规则得到全新设备。 - Qoder 智能调度数据源补齐(issue #102):积分余额、最早积分包到期(逐包取最早、订阅周期兜底)与快照时间随积分查询回写并透传入池,smart 调度「先到期先消耗」排序与保留积分过滤对 Qoder 生效;旧数据无字段时放行不受影响。
- Qoder 每日签到当轮重学闭环(issue #105):盲发候选全部 409 过期时,当轮重取活动列表并按宽松口径(放宽时间窗口/动作类型/名称关键词三档兜底)重学活动 id、立即补一轮盲发——不再等下一轮调度,消除学习失败叠加硬编码表过期时的全天 409 空转。
- Key「今日已用」统计四桶合并:API 管理列表的今日 token 用量此前只统计 Trae 流量,落 Buddy/Qoder/Custom 池的请求不计入——现四桶并拉按 Key 跨桶求和,绑定非 Trae 池的 Key 用量如实展示。
- 界面文案清理:Key 调度配置弹框等页面文案移除「issue #N」需求来源标注。
v3.7.11 版本发布
[3.7.11] · 2026-10-13 · 指纹风控诊断闭环 + 模板规则合并语义
范围:自 [3.7.10] 以来的全部变更,核心为指纹风控诊断闭环与模板规则合并语义;实现细节、根因分析与过程记录见 git 提交历史。
新功能
- 指纹风控诊断闭环(issue #99):11128 显式拦截与影子风控(空完成主导)收尾均落「指纹样本」日志(首条 system 原文前 300 字符 + 工具名清单,可识别客户端 harness 形态)——漏网触发句可直接反查并经「指纹清洗」tab 热更新,无须发版;三池(Trae/Buddy/Qoder)全部轮换收尾路径同口径覆盖。Key 绑定池生效/跨池回退的落池原因逐请求落 [SCHED] 行。
- 模板规则表合并语义(issue #99):内置默认表始终生效,自定义表按「原文指纹」逐字覆盖/追加——默认表新增布防规则(VS Code 扩展身份句逗号变体)自动对存量自定义表生效,不再每次发版手动同步;UI 新增「停用」开关(从生效表移除单条默认规则)。
修复加强
- 清洗规则「留空剥离」行为保持:规则「改写为」留空 = 改写为空串(删除指纹原文)的旧行为在合并语义下原样保留,存量自定义表不受影响;「删除规则」改用显式「停用」,两种空态不再混淆(停用后原句透传,UI 有明示)。
- 调度诊断行修正:Trae 池轮换耗尽 [DEBUG] 行 pool 字段此前误打印诊断计数,修正为池名。
- 网关流式记账与空完成哨兵:流式记账统一为「每请求终态单行」(换号中间态不落账,避免 requests 虚高);空完成哨兵判定与客户端在线解耦(断连也上抛换号重试,避免误判成功后绑定粘性路由)。
v3.7.10 版本发布
[3.7.10] · 2026-10-13 · 调度保留积分 + 会话聚合 + 网关修复批
范围:自 [3.7.8] 以来的全部变更(含 [3.7.9]「稳定性加固批」),核心为任务调度保留积分、会话聚合、网关稳定性与 16 项审查修复;实现细节、根因分析与过程记录见 git 提交历史。
新功能
- 任务调度保留积分:排队窗口按剩余积分动态调整,低积分任务自动让位,避免无效轮询
- 会话聚合视图:同一会话多轮任务在任务列表中折叠聚合,可展开查看每轮明细
- 网关请求重试:对网关 5xx/超时自动重试(最多 3 次,指数退避),减少长任务中断
- Qoder 账号扫描增强:支持从 IDE 本地存储扫描并导入账号,导入结果区分「新增」与「更新」
- 更新器 SHA-256 校验:升级包下载后逐资产校验哈希,校验失败拒绝安装
修复加强
- 修复任务调度器在高并发下偶发的重复执行问题
- 修复网关证书配置缓存失败结果导致后续请求持续失败的问题
- 修复会话聚合后任务取消未联动子任务的问题
- 修复任务失败原因含敏感信息时日志未脱敏的问题
- 修复 wb-growth 任务失败后未按可重试/永久失败分类处理的问题
- 修复 Qoder IDE 凭证导入失败时前端仍提示成功的问题
- 修复 macOS 构建产物缺少 universal 架构导致部分机型无法安装的问题
- 升级依赖并加固 Tauri WebView 请求头白名单
v3.7.8 版本发布
[3.7.8] · 2026-10-11 · 分组/标签跨应用共享 + 看板筛选 + Key 授权扩展批
范围:自 [3.7.6] 以来的全部变更(含 [3.7.7]「对话使用明细数据源 + Trae 逐包到期 + 统计缓存落盘批」),核心为分组/标签跨应用共享、账号标签体系、积分看板分组/账号筛选、API Key 分组/标签授权扩展与对话使用明细数据源(会话明细 / Trae 逐包到期 / 统计缓存落盘);实现细节、根因分析与过程记录见 git 提交历史。
新功能
- 分组跨应用共享:三个应用池(Trae/Buddy/Qoder)的分组定义统一为全局一份——此前各池分组互不相通、同名分组各建各的,现一处定义三池可见可用。首次升级自动迁移:同名合并为一条、统一生成新 ID 并全量重定向引用(迁移前自动备份原分组表,可回溯)。
- 账号标签体系:新增跨池标签——多选标注、与分组正交(分组 = 单选归属,标签 = 多重标注);三池账号页统一行内标签 chips(最多显示 2 + N)与编辑弹框,标签定义全局唯一、重名校验,删除自动清理全部引用。
- 账号导入/导出携带标签绑定:三池导出文件附带 uid ↔ 标签绑定并在导入时恢复;导入文件中本机不存在的标签 id 忽略不自动创建(避免导入方标签体系污染本机)。
- 积分看板顶部分组/账号筛选:看板工具行新增分组多选与账号多选筛选,平台视图内全局生效(KPI、积分、到期、Token、会话页签联动);分组下拉自动包含其他应用创建的共享分组;无账号维度的数据源显示「不支持账号级筛选」徽标,不做静默截断。
- API Key 分组/标签授权:Key 授权新增共享分组与标签两个白名单维度——生效集合 = 精确账号白名单 ∪(组 ∩ 标签,两维度均勾选时取交集、单一维度退化为成员集);运行时实时展开,分组成员变化即时生效,无需修改 Key 或重启。
- 调度页池筛选:资源调度各池筛选新增标签维度,语义 = 组 ∩ 标签(与 Key 授权口径一致)。
修复加强
- 分组/标签变更即时生效:写分组/标签/成员关系后补网关热重载与授权索引失效,消除 Key 授权展开最长 5 秒的陈旧窗口。
- 鉴权热路径提速:组/标签展开移出鉴权锁外(消除锁内数据库读放大);授权索引单次读齐 4 表,消除跨表撕裂快照。
- Key 并发修改防护:Key 弹窗保存改为锁内原子修改,与标签/分组删除的引用清理并发时不再互相覆盖。
- 诊断文案纠偏:网关「无健康账号」诊断对组/标签授权的 Key 补全展开明细,不再失真。
- 池保存防护:Trae 池文件加载失败后保存不再清空整池(对齐 Buddy/Qoder);Buddy 池预览口径修正为「筛选 ∩ 白名单」(对齐后端语义)。
- 交互确认与反馈:清除全部冷却、清除模型人工元数据加确认弹框;分组/标签重命名改色补成功提示。
[3.7.7] · 2026-10-11 · 对话使用明细数据源 + Trae 逐包到期 + 统计缓存落盘批
新功能
- Trae 对话会话明细(issue #82):概览新增「会话」页签,按会话粒度展示对话用量——时间、模型与 Max 模式、消耗积分、token 四分量(输入/输出/缓存读/缓存写)、对话概述与折合金额,支持时间范围/账号/模型筛选与分页;明细随用量拉取落盘本地,查询纯缓存零网络,重启不丢。
- Buddy 行级计费明细(issue #82):WorkBuddy 侧同步落盘请求级计费明细(requestId/模型/积分/日期,31 天滑动窗口),与 Trae 会话明细同页签统一展示。
- Trae 逐包到期明细(issue #82):到期页按积分包逐包展示到期时间与剩余额度(此前按来源归一化聚合,同日多包不可分辨);逐包查询部分账号失败时在日历上方明示失败账号与原因,不再静默缺数。
- 会话概述隐私开关(issue #82):设置新增「会话概述展示」开关(默认开)——关闭仅隐藏界面上的对话概述文案,不删存量缓存。
- Qoder 网关积分测量(issue #82):网关 Qoder 池转发时从上游 usage 计费字段本地测量 credits/original_credits(原值供对账),积分面板 Qoder 池改为积分测量口径(含模型粒度)——官方无按日/按会话明细接口,网关测量是唯一路径。
- 统计缓存落盘持久化(issue #84):档案槽位体积统计与 WorkBuddy Token 统计结果落盘——重启后首刷直接命中上次结果(实测 28,750 文件约 700ms 的全量重算与 Token 统计同步全量重扫不再发生),失效仍由 mtime + TTL + 显式失效三层保证,陈旧条目最多触发一次重算。
- 调度器任务错峰(issue #84):单轮调度内多个到期任务(典型为启动补跑积压)之间插入 30 秒间隔——此前背靠背连跑形成实测 103 秒的 CPU 爆发。
修复加强
- 会话明细落盘并发互斥:单账号拉取与后台全账号刷新并发时整对象覆盖写回会丢其他账号明细桶,kv 读-改-写补串行化锁(对齐 profile 统计锁先例)。
- 多来源用量合计漏累加积分:概览聚合计数器遗漏 Qoder 测量积分(credits),合计偏低,已补齐。
- 会话「最近拉取时间」口径统一:Trae/Buddy 两数据源 fetched_at 秒/毫秒混用致显示异常,统一为 Unix 秒。
- 会话页空态文案区分:「已拉取但筛选无结果」与「从未拉取」两种空态分别提示,不再一律引导「立即拉取」。
- 失败/跳过账号行内可见:多账号用量查询对无有效凭证的占位账号行内注明原因(原静默跳过,无从知晓数据为何缺失);到期逐包失败账号同上明示。
- 到期页去重口径修正:逐包到期与日历去重混用「归一化来源标签」与「原始包名」两种口径产生重复条目,统一按到期时间戳去重。
v3.7.6 版本发布
[3.7.6] · 2026-10-10 · 全面审查修复批:凭证刷新锁统一 + 整表互斥收口 + 前端交互加固
范围:自 [3.7.4] 以来的全部变更(含 [3.7.5]「OAuth 多设备凭证轮转 + 冷启动切换解死锁 + 同 uid 合并与证书指引批」),核心为 OAuth 多设备凭证轮转与同 uid 合并、WorkBuddy 冷启动切换解死锁、WB 凭证刷新锁体系统一、冷却/设备映射整表互斥收口与前端交互加固;实现细节、根因分析与过程记录见 git 提交历史。
新功能
- OAuth 多设备凭证轮转(issue #76):服务端按 device_id 限制每设备账号绑定数,登录恒用首套本机凭证会撞上限。现登录会话从本机凭证集中按 device_map 绑定数确定性择优(同状态两次取参一致),登录 URL 参数、ExchangeToken DeviceProof、刷新交换全链路设备同源;登录成功后回写 device_map(无条目按 uid 派生补全,已有条目仅换 device_id 保留 market/session),JWT 自动刷新同样按账号绑定设备取凭证,账号均匀摊到多套本机设备凭证上。
- 「无 Refresh」账号徽标:账号列表对缺 refresh_token 的账号(多为历史导入)显示灰徽标并给出恢复路径(对该账号重新执行一次 OAuth 登录即可自动更新),不再表现为「看起来正常但无法自动刷新」。
- OAuth 同 uid 合并:同一服务端账号再次 OAuth 登录不再产生重复账号——按 uid 匹配直接更新已有账号的 JWT/refresh_token,登录弹窗、回环完成页、事件与提示全链路文案口径一致(「已更新其凭证,未新增账号」);登录时选择的分组对合并账号同样生效(此前仅新增账号应用分组,合并路径静默忽略)。
- 证书手动导入指引:证书自动安装失败且 ca.cer 已生成时,引导卡片内直接展示三步手动导入(打开证书目录 → certmgr 导入「受信任的根证书颁发机构」→ 重新检测),配套新增「打开证书目录」入口;ca.cer 尚未生成(证书生成失败)时不弹指引、只保留真实报错;使用手册新增 8.4「手动导入证书」章节。
修复加强
- WB 凭证刷新锁体系统一(网关 401 自愈接入):网关 401 刷新此前持独立锁,与签到/续期/积分刷新并发同一账号时互不约束——「后落库者覆盖先落库者」,服务端一次性轮换下 refresh_token 可能一并丢失被迫重登。现网关侧复用 tasks 侧每账号锁 + 跨进程命名互斥体,持锁后二次检查:他人已刷新落库(access 与本次失效凭证不同)直接复用新凭证不发网络请求;token store 表锁与 tasks 侧统一为一把,废除互不相干的独立锁。他方进程刷新中以忙态哨兵返回——网关本轮换号且不记 401 致命错误,防瞬时忙态被误判会话失效 → 账号被踢出轮转;对方刷新落库后下轮请求直接复用新凭证。
- 冷却/设备映射整表读改写互斥:新增 account_cooldowns 与 device_map 两把表级锁,覆盖调度签到写冷却、手动清冷却、积分刷新自动解冻、OAuth 设备回写、签到取设备等全部运行期写点——此前整表 load→save 并发互相覆盖丢条目(已冷却账号被重新探测对上游连打;设备条目丢失致指纹漂移)。积分刷新自动解冻改两阶段回写:锁外扫描、锁内重读后仅移除与扫描时快照完全一致的条目,扫描窗口内新写入的冷却不被误清。
- WorkBuddy 冷启动切换死锁解除(issue #78):目标账号从无快照且客户端已被旧账号占据时,旧链路「切换要快照 → 保存快照被守卫拒绝 → 旧账号不登出」循环打结。现切换预检发现目标槽缺失时,用 token store 凭证副本在既有壳模板上合成最小 authfile 快照(仅 auth 文件 + meta,槽位已存在绝不覆盖、合成结果自检 uid 不可读即放弃);确认切换成功后自动以客户端完整登录态升级该快照(best-effort,失败仅告警不阻塞)。同场景守卫拒绝文案改用统一分流话术,指向实际可行的操作。
- WorkBuddy 合成快照切换加固(issue #78 后续审查):确认切换的期望 uid 回退链补会话暂存真实 uid——meta.json 写失败不阻塞合成的场景下原回退到槽名(池 id ≠ 真实 uid),三信号确认恒不命中、每次切换空转 30 秒;合成后切换未走完(进程退出/失败重试)跨会话重试同样能升级完整快照(槽位持久化 bootstrap 标记);壳模板仅存裸键
token时身份改写补兜底——原实现插入新 accessToken 而旧裸键 token 残留,最坏客户端读到旧 token 切换无效。 - 设备绑定上限错误可读化(issue #76):签到/状态巡检命中设备绑定上限错误时,不再倾倒原始文案,追加指引「对本账号重新执行一次 OAuth 登录即可自动轮换到其他本机设备凭证,或在 Trae 客户端解绑不再使用的账号」(中英文案特征词均识别)。
general_expire_times持久化断链回归测试(issue #75):新增 save → load 持久化回路端到端测试,列名/字段不一致即刻失败,防网关通用积分到期口径(issue #28)再次断链。- 证书自动安装降级链:UAC 提权安装(HKLM Root)失败后依次 DACL 自愈 → 当前用户级安装(HKCU Root,免提权)→ Windows 根存储终检;PowerShell 不可用时给出明确报错与替代路径,不再笼统失败;指引内「重新检测」明确区分检测失败 / 未安装 / ca.cer 缺失(提示先重新执行安装)三种结果。
- OAuth 回调设备选定去漂移:无在途会话的 fallback 设备改为回调入口一次性选定,AuthCode 交换与尾部 device_id 透传共用同一台——原实现两处独立选定,横跨分钟级网络交换的窗口内绑定数分布变化会让实际交换设备与 device_map 回写/刷新交换设备错配。
- 前端统一 invoke 入口(超时 + 错误翻译):全库命令经唯一入口发出——120 秒竞速超时(后端仍在执行前端不再无限悬挂),长耗时命令按覆盖表放宽(多账号串行操作 10 分钟、安装包下载与证书安装不限时——后者 UAC 等待用户点击无上限);底层错误在源头翻译(剥
Error:前缀、网络类错误转人话),全库 toast 文案自动受益。 - 设置保存守卫:设置读取失败时 store 仅持默认值兜底,此时保存会把默认值整表写回覆盖服务端真实配置——守卫拒绝写入并提示重启恢复,不再静默丢配置。
- 签到看门狗:事件通道丢帧时完成事件可能永不到达,「签到进行中」永久卡死、开始按钮永久禁用——15 分钟未收到任何进度事件自动解除并提示(迟到事件照常归约展示)。
- 交互防重入批:Trae 账号页刷新/删除确认/行内操作(刷新 JWT、解除冷却)、概览页刷新、分组新建/删除补防连点与 loading 态——连点会逐账号重复打上游积分查询(易频控)、1 秒最小展示窗口内重复触发删除确认;分组操作失败统一捕获 rethrow,不再产生 unhandled rejection。
- 关闭鉴权二次确认:鉴权全局关闭 = 放行所有无 Key 请求,此前误触一次即生效——补确认弹框明示风险(重新开启不确认)。
- Buddy/Qoder 账号导出改原生另存为:原 WebView 伪下载落盘位置不可控——改原生另存为对话框(对齐 Trae 账号导出),成功提示附实际保存路径;Qoder 取消对话框不再残留导出密码预填。
- 模型厂商归属修正:space-bunny/spacebunny → MiniMax、mimo → 小米,网关模型目录与自定义模型面板的厂商显示对齐真实供应商。
- API 服务启动重复 uid 告警:账号池存在同 uid 多条目时启动即记录告警日志,防重复条目干扰调度与排查。
- 杂项加固:证书提权安装 PowerShell 单引号转义(用户名含撇号时整条命令语法错误恒败且白耗一次 UAC 弹窗);JSON 配置解析前剥 UTF-8 BOM(记事本编辑过的配置此前静默回退默认值 → 写回覆盖用户配置)并落失败日志;调度器状态落库失败补日志(last_run_date 静默丢失会当日重复执行);启动日志输出生效时区偏移与本地时间(签到时刻偏移可排查);设备绑定上限错误特征词收窄为完整短语(「使用额度已达上限」等非设备绑定类错误不再误追加重新 OAuth 登录引导);error 级 toast 驻留 10s(长错误文案可读完);API 日志读取/搜索失败与「确无日志」区分提示。
- 审查加固:合成快照身份改写补齐
expiresAt/expires_at(RFC3339 形态键名,与 refresh 侧对称覆盖,防旧过期值残留);合成落盘序列化失败不再写空 auth 文件(宁可不合成);meta.json 写入失败显式告警。
v3.7.4 版本发布
[3.7.4] · 2026-10-09 · 概览秒开 + Token 统计去重 + 网关投影与并发加固批
范围:自 [3.7.3] 以来的全部变更,核心为概览秒开与 Buddy 积分取数并发化、Token 统计跨会话去重、Responses→Chat 投影修复与账号池并发加固;实现细节、根因分析与过程记录见 git 提交历史。
性能优化
- 概览页切板块即显不再空等(PR #68):环境探测全面去子进程——exe 版本改 PE 直读(powershell 1.2s+ → ~2ms,进程内 (路径, mtime, 大小) 缓存命中 0.14ms)、进程运行态改 sysinfo 枚举(tasklist 301ms → 18.5ms,2s TTL 复用快照)、注册表兜底加 3s TTL(「未找到」同样缓存,手动指定路径仍实时判定);Buddy 积分取数账号间并发(≤4 路,整轮墙钟≈最慢单账号,单请求经代理链路 2s+ 不再串行叠加)+ 缓存过期先回旧值转后台刷新(stale-while-revalidate,在途去重),出网轮次带耗时埋点可从 app.log 直查。
- Buddy 积分取数健壮性(PR #68 评审):并发取数单账号 panic 时 catch_unwind 就地捕获、占位失败行,不再让整轮取数 Err;后台刷新线程 panic 导致 IN_FLIGHT 标记永久卡 true、刷新静默失效(恒回旧值),改 Drop 守卫异常路径也能复位。
修复加强
- Buddy Token 统计重复计算修复(显示总数虚高约 13.8%):CodeBuddy IDE 侧同一批请求会以新会话 id 重新登记到另一个 uid 的目录下(同 workspace、会话 id 不同),原去重只在单会话文件内生效——实测 609 个 request id 跨 uid 目录双份计入、多计约 17.1 亿 tokens。现扫描级按「实际计入的 request id」跨文件去重:整份重复整文件跳过、无重复走快路径、部分重复过滤后重解析(过滤结果与扫描顺序相关,不进增量缓存);缓存解析版本升级强制旧缓存重算一次。
- Responses→Chat 投影工具结果配对重写(issue #69):Codex 并行多图时,view_image 的图片超限提示以 developer 消息插在工具结果之间,旧实现按原序 1:1 映射打断 assistant.tool_calls 与 tool 消息的连续配对,上游返回 400
11148。改配对窗口算法:连续 function_call 合并进同一条 assistant 载体、窗口内非 tool 消息推迟补回、收尾先补占位结果再补推迟消息;工具结果按载体 tool_calls 顺序统一回填(与到达序无关,乱序结果重排、缺结果补占位),object 输出取 text 字段不再整段序列化(避免 data URL 撑爆载荷)。 - 上游错误空 message 统一兜底(issue #71):聚合错误与流式 inline 错误帧(三副本全覆盖)在空 message 时回填含错误码的诊断文案,消除
{"message":""}透传旁路;文案并列多因(网络波动/上游异常/全局代理劫持回环),避免固定归因误导排查;使用手册补「全局代理劫持 127.0.0.1 回环流量」FAQ。 - 账号池读改写互斥防 lost-update:新增 WB/豆包双池锁,15 处运行期池写点全部纳入保护;额度巡检/会话续期改两阶段回写(锁外网络调用,短临界区重读最新池按 uid 字段级合并——删号不复活、merged=0 不写盘);「空完成」取证捕获上游响应头摘要(logid 等 7 头,竞速接管取对冲侧);device_map 缺条目时按 uid 确定性派生 device_id,不再发送空 x-device-id;代理日志分片改按 (日期, 分片序号) 数值排序,修复
.log.10排到.log.2前的错序,畸形文件名不放行。 - PE 版本读取 Translation 字节序修复:语言 ID 在低 16 位(代码页在高 16 位),原实现字节序颠倒导致真实资源全部 miss——TRAE SOLO CN.exe 显示构建号 2.3.21877 而非 0.1.69、CodeBuddy 4.12.1 显示成 1.106.1,且错误值进 (路径, mtime, 大小) 缓存长期固化。修正子块名拼接口径后真机复测两 exe 均取回正确 ProductVersion,与 PowerShell VersionInfo 一致。