
CLIProxyAPI 维护者把「改写凭证文件会继承旧运行态」判成用法问题、明确不修;本期给出会继承的六类状态与正确的换号顺序,并核清 sub2api 会话内切模型被 429 的三处缺口。
isFileSnapshot 分支里,下面这些字段被无条件从旧对象搬到新对象:Status、StatusMessage、Unavailable、NextRetryAfter、LastError。Quota 的 ObservedAt 与 Signals。ModelStates、cooldownRecordedSeq。3
isFileSnapshot 分支:第 399–400 行无条件搬 Unavailable 与 NextRetryAfter,第 405–407 行连额度快照与观测时刻一起搬。(CLIProxyAPI v8.0.40 conductor_lifecycle.go)credential_quota 冷却留到恢复时刻。account_id 但 OAuth token 不变:失败留下,而且 CredentialsChanged 看不见这次变化。StorageJSON 里:storage 轮换后失败留下。只差一个大于 2^53 的 64 位数的两份 storage,会被判成相等。RejectedAccessToken:token 字符串一样,就由新账号继承。CredentialVersion 在同 token 换号时不会前进。isStaleExecutionResult 又只比对 access token,对得上就收。dev 的 d946c4fb 上用 go test -race 跑了 #6853 里的 18 个用例,14 个失败。Because the credential lifecycle is file-based, each credential file is expected to maintain a stable user identity and state … If you need to reuse the same credential filename, please delete the existing credential file and any associated state files first before creating the new one. This is considered a usage issue and there are currently no plans to address it.
.cds。它按 auth 文件的相对路径生成,同名换扩展名。4routing.cooldown.save-cooldown-status 才写盘,默认 false 时冷却只在内存里。5.cds 不够。Unavailable、NextRetryAfter 与额度快照,照样会在下一次文件事件里被搬过去。删凭证文件本身,才会让这条 ID 退出运行时状态。instructions / system 还留着上一轮的身份句。You are Codex, a coding agent based on GPT-5。codexGPTIdentityPatterns 存在,正则也写对了,但它只服务 /models 下发的模板,不在转发路径上。429 RESOURCE_EXHAUSTED,并把账号带进限流冷却。7
codexInstructionsTemplateForModel 只在下发模型清单时套这两个正则。(sub2api v0.2.18 openai_codex_models_service.go)claude-* 的 buildSystemInstruction 只做了 Claude 身份的清洗。neutralizeClaudeIdentity(stripClaudeAttribution(...))。两处都只洗 Claude,没碰 GPT 身份。8gemini-* 的分支连 Claude 身份都不洗。buildAntigravityCompatGeminiBody 先调 convertClaudeMessagesToGeminiGenerateContent。injectIdentityPatchToGeminiRequest 只往开头插一段 Antigravity 身份。
gemini-*,第 272 行转换、第 281 行才补身份:这一段调用顺序里没有「洗掉上一轮身份」这一步。(sub2api v0.2.18 antigravity_gateway_compat.go)antigravityDefaultRateLimitDuration 就是 30 秒。gateway.antigravity_fallback_cooldown_minutes 与环境变量覆盖。12/models 拿到干净的 instructions。这条能立刻止血,但治不了客户端缓存。requestmeta 里的响应头容器只存了头,没有时间。routing.usage-ceiling:weekly-percent 默认 80,short-window-percent 默认 90。凭证里写 usage_ceiling 可以逐项覆盖,填 0 关闭。16Retry-After 直接写恢复时间,请求不发上游。全池都被顶住时,客户端拿到的是 429。mergeable_state 是 dirty,需要先 rebase。/v1beta/models 少了 inputTokenLimit 与 outputTokenLimit。18ContextLength,Home 模式把解码后的两个值序列化出去。取不到就省略,不编默认值。POST /v1/decisions,并要求把「路由没实现」与「OAuth 无权限」分开报。ineligible for higher limits、卡在 Starter Quota。换第二台机器重装依旧。29.cds。github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
status.openai.com
status.anthropic.com
status.cloud.google.com
codex-reset.com
opentherank.com
discuss.ai.google.dev
discuss.ai.google.dev
discuss.ai.google.dev
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.