
四个仓库这一小时零发版,三条新动态:sub2api 的出站 UA 每小时追最新版而 SDK 与运行时冻结在账号指纹里,CLIProxyAPI 的 is_error 补丁合进 dev 但只覆盖一条翻译路径,codex2api 的自动暂停阈值面板标着百分比却要填小数;每条都给能核到的行号和今晚能做的动作。
User-Agent 版本会被抬到运行期的最新版,而同一个请求里 X-Stainless-Package-Version 与 X-Stainless-Runtime-Version 来自账号指纹,建号之后基本不动5。三个版本号从此可能永远不同源。floorClaudeCLIUserAgentVersion 把 claude-cli/ 后面的版本号替换成下限,UA 其余部分原样保留;函数注释第 98 行写明 X-Stainless-* 不在这里处理8。
backend/internal/service/identity_service.go 第 84–118 行。第 98 行那句约束是全部要点:这一步只换 UA 的版本段,SDK 与运行时版本原样留着。8X-Stainless-* 合并进去;而缓存 UA 在下一段就被抬到下限9。客户端送旧版本时这条永远为假,SDK 版本就停在建号那一次。
X-Stainless-* 只可能在 209 行为真时被更新一次,之后就再没有机会。9fingerprint:<账号 ID> 键里,TTL 七天,每次写入续期,距上次写入超过 24 小时再续一次910。活跃账号等于永不过期,等是等不到的。2.1.25811,官方今天早上 09:06 发的是 v2.1.31412;指纹的兜底值是 SDK 0.94.0、运行时 v24.3.013。报障人举的账号更旧,停在 0.80.0。enable_fingerprint_unification,面板在设置页的网关转发一节15。它的提示语写得很直白:统一共享同一 OAuth 账号的用户的 X-Stainless-* 请求头,关闭后透传客户端原始请求头。关掉之后,UA 也一起透传真实客户端,三个值天然同源。代价就是那句「统一」——同一个账号下多个用户不再长得像同一台设备。claude_code_version_auto_sync_enabled),或在面板手工填一个版本,UA 就不再往上爬,缺口停止扩大。代价是钉住的版本会越来越旧,旧到一定程度上游会拒——代码注释点名了这个错误:HTTP 400 claude_code_version_too_old16。fingerprint:<账号 ID> 删掉,下一个真实请求会重建指纹,三件套取自那次请求的头。两个代价要先知道:ClientID 会重新随机,metadata.user_id 里的那一段跟着变;而且只有当你客户端的真实版本不低于当前下限时,重建出来的组合才自洽,否则下一次读取又被抬一次 UA8。81de4b9c。is_error: true 时,转成 Gemini 请求后失败语义丢了——permission denied 这种文本被写在 functionResponse.response.result,与成功返回同一个位置,模型看到的是「工具正常返回了一段话」。
internal/util/claude_tool_result.go 第 14–30 行。三个字段里没有任何位置承载「这次工具调用失败了」,所以发行版只能把失败文本当成功结果发出去。18
81de4b9c 的 internal/translator/gemini/claude/gemini_claude_request.go 第 176–192 行。第 182–185 行是那个二选一,第 186–190 行沿用原来的 raw / 字符串两种写法。19gemini/claude 这条原生翻译器20。Antigravity 的 Claude 翻译器仍无条件写 response.result,三个分支一个都没看 is_error21;OpenAI→Responses 那条 Gemini 请求同样只写 result22。response 是自由结构,写进 response.error 这个键能不能被当成失败,取决于上游怎么读。PR 作者的主张是它保留了失败语义,本刊没有拿真实上游回放过。auto_pause_5h_threshold 超出范围,必须在 0..1 之间,填 0.95 才能过23。
frontend/src/pages/ClaudeAccounts.tsx 第 3048–3060 行。第 3055–3056 行把输入框里的字符串直接当比例提交,中间没有任何除以 100 的换算;同一个文件第 3051–3053 行的其它数值字段也是同样写法,那些字段本来就是原值,只有阈值需要换算。29
claude.autoPause5hLabel 这个标签、占位符写 90,值却直接绑在比例上——标签说百分比、数值是比例,两套口径在同一行里。301。填 95 会被拒,你会去看错;填 1(本意 1%)不会被拒,它合法地等于 100%,也就是把停调线推到顶——和关闭自动暂停几乎没区别24。另有读者可能把 0.9 读成 0.9%:输入框会把已有的 0.9 显示成 0.9,而同一个数字在账号页显示成 90。auto_pause_5h_threshold 与 auto_pause_7d_threshold 是不是 0.xx;批量改阈值走账号页的批量编辑,那里会换算。claude_code_version_too_old。1 的号——它不会报错,只会让自动暂停形同关闭。至于 is_error 那条,等发行版带上下一个版本再说,dev 的修法目前不覆盖 Antigravity。github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
status.openai.com
status.claude.com
status.cloud.google.com
codex-reset.com
opentherank.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.