
sub2api v0.2.19 今晚发出:内置 Gemini 默认表里一个 2.x 名字都没剩下,两张迁移启动自动执行,新加的同账号重试只作用于 Gemini 兼容入口;另附智谱限流不换号的两条来路与 CLIProxyAPI 两张新单。
main 切出,距 v0.2.18 五天,两版之间并进 71 笔提交。发行说明列了五条新功能、六条优化、十二条修复。对已经在跑站点的人来说,先要处理的是发行说明末尾的两句:Gemini 默认模型表被换过一次,两张迁移会在启动时自己执行。12gemini-2.0-flash、gemini-2.5-flash、gemini-2.5-flash-image、gemini-2.5-pro 和 gemini-3-pro-preview。
gemini-3.1-flash-image 排到 gemini-4-argon;旧版的 2.0 / 2.5 与 gemini-3-pro-preview 已整体移除。3/v1beta/models 时,返回的就是这份内置表。5 Gemini CLI 路径遇到上游 404 时,只有名字还在这张表里才做降级重试。6gemini-2.5-pro 的话,升级后这两条路会一起变窄:列表里看不到这个名字,404 也不再触发回落。model_mapping 时,/v1beta/models 改按声明的模型应答,内置表退到后面。7 要保留 2.5 系,就在账号的模型映射里把名字写回去。| 文件 | 改了什么 | 影响 |
|---|---|---|
247_scoped_admin_api_keys.sql | 新建 scoped_admin_api_keys 表,存密钥摘要、策略 JSONB、IP 白名单、撤销时间 | 空表,运行期才有数据 |
248_group_image_count_billing.sql | groups 加 image_count_billing 列 | 默认 false,即沿用旧计费 |
IF NOT EXISTS 的新增,没有删改。回退到 v0.2.18 时,多出来的一表一列旧代码用不上,也不会因此报错。/v1/messages 相容路径两处,/v1/chat/completions 相容路径一处。1213 OpenAI 原生 Responses 与 Antigravity 执行器走各自的重试逻辑,改这个键对它们没有影响。main:同账号重试次数可配置、绑定显式缓存的请求按配置同号重试、模型列表刷新在并发冷启动时复查缓存。2
maxAttempts 这一处换算成尝试次数,下面那个 switch 决定哪些状态码算可重试。12max_account_switches_gemini 默认 3,14 4 个账号各 5 次,一个客户端请求最多打到上游 20 次。上游在抖动的时候,这个数字会真实发生,按自己的并发和限额决定要不要调低。
pool_mode 时,19 上游错误在没开自定义错误码的情况下会整段早退,账号状态一个字都不写,只留一条 pool_mode_error_skipped 日志。20pool_mode_retry_status_codes(默认 401/403/429)在同号重试再换号。换号结果不记账,下一个新请求照样选中这个正在限流的账号。
SetRateLimited 写完 rate_limited_at 与 rate_limit_reset_at 之后,同一函数里推 outbox、同步快照,两步都在返回前完成。21pool_mode_error_skipped 能确认是不是池模式那条路;搜 cn_coding_plan_frequency_429 说明这次按秒级处理了,搜到 cn_coding_plan_rate_limited 则是按窗口冷却。要立刻恢复一个账号,POST /api/v1/admin/accounts/:id/clear-error 会把错误态、全局限流、模型级限流和临时不可调度一起清掉,clear-rate-limit 只清限流相关的时间戳。22<timezone> 与 <current_date>,代价是每次都要整包读正文、克隆、编解码。2324#6998(请求拦截器不必要的全文编码与复制)已以 completed 关闭,v8.0.44 起协议里多了 RequestInterceptorOmitBodyBefore 与 RequestInterceptorOmitBodyAfter 两个开关,可以在指定阶段不收正文。2526gemini-2.5-pro、gemini-2.5-flash 或 gemini-3-pro-preview 的,把名字补进账号模型映射,再升级。pool_mode_error_skipped 判断是不是池模式那条路,再决定是关池模式还是加临时不可调度规则。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.anthropic.com
status.cloud.google.com
codex-reset.com
discuss.ai.google.dev
community.openai.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.