Wesley Liddick
60b9bf7558
Merge pull request #7308 from HuntercodeT/fix/codex-manifest-non-gpt-identity
...
fix(codex-models): 非 GPT 模型的 Codex 提示词模板去掉 GPT 身份声明,避免 Antigravity 429
2026-09-23 10:01:45 +08:00
Wesley Liddick
fa3f526785
Merge pull request #7489 from doublepi123/fix/tool-schema-null-required
...
fix(tools): 清洗工具 Schema 里非法的 null required,修复 xAI / Moonshot 400
2026-09-23 10:01:03 +08:00
Wesley Liddick
20a94fbb56
Merge pull request #6920 from aofee/codex/grok-quota-cooldown
...
fix(grok): allow quota queries during account cooldowns
2026-09-22 22:01:24 +08:00
Wesley Liddick
02d9901b49
Merge pull request #7038 from zenggang/contribute/gpt55-lite-compat
...
fix(openai): remove Responses Lite markers after OAuth mapping to GPT-5.5
2026-09-22 22:00:51 +08:00
Wesley Liddick
13be6ca27c
Merge pull request #7276 from cyhhao/fix/openai-keepalive-semantic-output
...
fix(openai): keep transport heartbeats outside semantic output
2026-09-22 22:00:08 +08:00
Wesley Liddick
e26abaef7d
Merge pull request #6473 from cxx-cod/pr/openai-stream-terminal-eof
...
fix(openai): end streaming at terminal event instead of waiting for u…
2026-09-22 21:57:45 +08:00
Wesley Liddick
b12a187d4f
Merge pull request #7097 from MHJoy99/contrib/upstream-5203-ping-filter
...
fix(streaming): drop Anthropic ping keepalives before OpenAI conversion
2026-09-22 21:56:46 +08:00
Wesley Liddick
fa9f104a93
Merge pull request #7169 from HuntercodeT/fix/gemini-mixed-model-listing
...
fix(gateway): list mixed Antigravity models for Gemini groups
2026-09-22 21:56:04 +08:00
Wesley Liddick
bb1f40e35f
Merge pull request #7487 from wucm667/fix/issue-7482-anthropic-moderation
...
Handle trailing system messages in moderation input
2026-09-22 21:54:26 +08:00
Wesley Liddick
7be1628a74
Merge pull request #7488 from wucm667/fix/issue-7484-responses-item-id
...
Strip oversized input item IDs
2026-09-22 21:54:02 +08:00
lcy
1d640c40e5
fix(tools): 清洗工具 Schema 里非法的 null required,修复上游 400
...
JSON Schema 规定 required 必须是属性名数组,但部分客户端会发成 null,
严格校验的上游直接拒绝整个请求:
xAI 400 /required: null is not of type "array"
Moonshot 400 At path 'required': required must be an array
同样的模型发纯文本请求一切正常,只有带 tools 时才失败,因此表现得像模型
或渠道故障。
三处改动:
1. 清洗 required:null 时整键删除,而不是替换成 []。JSON Schema 里缺省
required 等价于无必填项,删除保留了客户端原意,置 [] 反而凭空造出一条
客户端从未声明的约束。
2. 把 input_schema 也识别为 schema 根。此前只认 OpenAI Responses 的
parameters 拼法,Anthropic Messages 的工具定义因此绕过整套清洗。
3. 在 ForwardAsAnthropic 入口调用清洗。/v1/messages 此前不做任何工具
Schema 处理;该函数会分流到原生 Anthropic 直通、Chat Completions 与
Responses 三条路径,每条都原样透传 tools,所以必须在分流之前处理。
另外把 contentSchema 补进子 schema 关键字:它承载嵌套 schema,其中的
null required 此前会漏网。
配套测试同时锁定反向保证:default / examples / const / enum 里装的是实例
数据,字面量 {"required": null} 属于客户端 payload,不能被改写。现有的
关键字白名单下降本就如此,测试用于防止它退化成无差别遍历。
2026-09-22 20:49:24 +08:00
Wesley Liddick
b0e32fe5be
Merge pull request #7427 from xlplbo/fix/openai-legacy-scheduler-decision
...
fix(openai): 非高级调度补齐选号决策并按 previous_response 路由
2026-09-22 20:34:59 +08:00
Wesley Liddick
65f086d2d0
Merge pull request #7479 from lzfxxx/fix/opencode-commandcode-cf1010
...
fix(gateway): prevent Cloudflare 1010 from disabling OpenCode and Command Code accounts
2026-09-22 20:32:42 +08:00
Wesley Liddick
de6388aeca
Merge pull request #5443 from llissery/fix/vertex-429-cooldown
...
fix(gemini): honor RetryInfo on 429 and stop cooling Vertex service accounts until PST midnight
2026-09-22 20:30:37 +08:00
Wesley Liddick
55108ee877
Merge pull request #7394 from Achordchan/fix/baseten-reasoning-budget
...
fix(gateway): recognize Baseten reasoning budget errors
2026-09-22 20:30:21 +08:00
Wesley Liddick
231e72fdde
Merge pull request #7339 from superman2003/fix/openai-stream-error-status-field
...
fix(openai): honor error.status when classifying in-stream failures
2026-09-22 20:30:08 +08:00
Wesley Liddick
a079a6596a
Merge pull request #7342 from Pluviobyte/codex/fix-inactive-proxy-backup
...
fix(proxies): exclude inactive fallback targets
2026-09-22 20:29:52 +08:00
Wesley Liddick
a5015e1fc4
Merge pull request #7354 from baryon/contrib/codex-deepseek-input-image-url
...
fix(openai): alias DeepSeek Responses input_image with url
2026-09-22 20:27:35 +08:00
Wesley Liddick
738ef1c73c
Merge pull request #7442 from wucm667/fix/issue-7436-image-balance-error
...
fix(images): preserve insufficient balance failures
2026-09-22 20:27:23 +08:00
Wesley Liddick
680a992fc9
Merge pull request #7426 from xlplbo/fix/openai-codex-turn-metadata-ascii
...
fix(openai): 改写 Codex turn metadata 时保留非 ASCII 转义
2026-09-22 20:25:47 +08:00
wucm667
a5d8db2445
fix(responses): strip oversized input item IDs
2026-09-22 19:47:12 +08:00
wucm667
66843cc95c
fix(moderation): handle trailing Anthropic system messages
2026-09-22 19:07:04 +08:00
Wesley Liddick
1716e99151
Merge pull request #7466 from nagi330/add_grok4-7_support-0922
...
feat(grok):add grok 4.7 support
2026-09-22 18:13:37 +08:00
Wesley Liddick
b6c6f1add5
Merge pull request #7473 from lzfxxx/fix/codex-manifest-opencode-go
...
fix(codex): include OpenCode Go in model capability resolution
2026-09-22 18:13:00 +08:00
Wesley Liddick
3442a6a53e
Merge pull request #7432 from doublepi123/fix/antigravity-compat-bare-gemini-model
...
fix(antigravity): 裸 Gemini 模型名在所有转发入口解析到思考变体,修复 404/502
2026-09-22 18:12:34 +08:00
Wesley Liddick
9d9e90960e
Merge pull request #7448 from feeeei/fix/gemini-transport-error-failover
...
fix(gemini): 传输层错误转 failover,不再同账号退避重试
2026-09-22 18:12:19 +08:00
Wesley Liddick
405727805a
Merge pull request #7477 from Pluviobyte/codex/fix-subscription-reduction-remainder
...
fix(subscriptions): preserve partial days during redemption deductions
2026-09-22 18:11:46 +08:00
Wesley Liddick
a46493724b
Merge pull request #7476 from Pluviobyte/codex/fix-subscription-reduction-lock
...
fix(subscriptions): lock negative redemption updates
2026-09-22 18:11:11 +08:00
spongehah
7fbc59eb69
fix: 选号读取分组时不再聚合账号数
...
- 推理选号只需要隐私开关和分组名,改为 GetByIDLite
- 避免 GetByID 附带的账号计数聚合打满主库
- 管理列表的实时账号数统计保持不变
2026-09-22 16:54:36 +08:00
Zhaofeng Li
fa79b1ebc3
fix(gateway): prevent Cloudflare 1010 from disabling OpenCode and Command Code accounts
2026-09-22 15:51:51 +08:00
Rain
0c0df031c5
fix(subscriptions): preserve partial days during redemption deductions
2026-09-22 15:03:06 +08:00
Rain
85ed17b313
fix(subscriptions): lock negative redemption updates
2026-09-22 15:03:05 +08:00
Zhaofeng Li
e35123b8ac
fix(codex): include OpenCode Go in model capability resolution
2026-09-22 14:50:29 +08:00
Erik
7f1f85cb76
fix(gemini): stop cooling Vertex 429s until PST midnight, honor RetryInfo
...
Vertex AI reports 429s with a standard google.rpc.RetryInfo detail
(retryDelay like "39s"), but ParseGeminiRateLimitResetTime only knew the
AI Studio quotaResetDelay metadata, so parsing always failed for Vertex
bodies. The fallback then lumped service_account accounts in with
API-key/AI-Studio ones and rate limited them until the next PST
midnight, so a transient per-minute throttle could take a pay-as-you-go
account (and with it the whole group) offline for up to a day.
- Parse google.rpc.RetryInfo retryDelay from 429 bodies, capped at 15
minutes to guard against absurd upstream values.
- When no reset time can be parsed, cool service_account (Vertex)
accounts down for 60s instead of until PST midnight: pay-as-you-go
quotas are short-window RPM/TPM with no daily reset.
Fallback behavior for Code Assist, Google One and API-key accounts is
unchanged, covered by new regression tests.
2026-09-22 11:31:31 +08:00
nagi330
935db68517
feat(grok):add grok 4.7 support
2026-09-22 10:30:01 +08:00
Wesley Liddick
1c0a69c0ce
Merge pull request #7412 from StarryKira/codex/custom-reasoning-effort-billing
...
feat: 支持自定义思考等级倍率计费
2026-09-21 22:55:17 +08:00
lcy
27f4398b50
fix(antigravity): 裸 Gemini 模型名在所有转发入口解析到思考变体
...
#7258 引入的 resolveGeminiThinkingVariant 只接到了 ForwardGemini,
因此仅覆盖 /v1beta 原生 Gemini 路径。经 /v1/chat/completions 与
/v1/messages 进来的请求直接调用 getMappedModel,裸名被原样透传;
Antigravity 目录只登记 -low/-medium/-high/-tiered 变体,这些请求
仍然以 404 "Requested entity was not found." 失败。
把解析下沉到 getMappedModel(新增 getMappedModelForThinkingLevel),
一次覆盖四个调用点:/v1beta 原生、/v1/chat/completions、/v1/messages
以及后台账号连接测试。各转发入口按自身协议推导档位——原生读
generationConfig.thinkingConfig,Claude 侧读 thinking.budget_tokens,
两者阈值一致;默认入口按 high 兜底。
mapAntigravityModel 保持不变,调度侧的模型支持判定语义不受影响。
2026-09-21 20:13:44 +08:00
haruka
e47255715d
fix(billing): preserve final reasoning effort across forwarding paths
2026-09-21 19:58:02 +08:00
feeeei
d0ed0eacac
fix(gemini): 传输层错误转 failover,不再同账号退避重试
...
上游 Do 返回非 HTTP 错误(代理/DNS/TCP/TLS/响应头超时)时,Gemini 三条转发路径
(ForwardNative / Forward / ForwardAsChatCompletions)原先在同一账号上重试 5 次,
退避 1+2+4+8≈15s(time.Sleep 不感知 ctx),耗尽后直接向客户端写 502 且不换号:
单账号链路故障期间 TTFT 被整段拖高,同组健康账号闲置。
对齐 Anthropic/Bedrock 侧 handleUpstreamTransportError 的既有语义:
- 传输层错误单次尝试后即返回 *UpstreamFailoverError(502),由 handler failover
循环换号,耗尽后才按端点格式渲染错误;service 不再写响应
- 持久性故障(connection refused/no route/DNS not found/代理认证失败)额外临时
摘除账号 10 分钟;瞬时故障(EOF/reset/超时)只换号不摘号
- context.Canceled 保持原样返回:不换号也不摘账号
- countTokens 传输失败时立即本地估算兜底,不换号
- 摘号实现抽为 tempUnscheduleAccountForTransportError 供两侧共用,日志事件名不变
HTTP 状态码(429/5xx)的服务内重试环未改动。
2026-09-21 14:13:57 +08:00
wucm667
de98bdff1e
fix(images): preserve insufficient balance failures
2026-09-21 10:23:10 +08:00
xlplbo
0d02000592
fix(openai): 非高级调度按 previous_response 路由到持有响应的账号
2026-09-20 19:28:13 +08:00
xlplbo
8d88b66668
fix(openai): 补齐非高级调度选号决策标签
2026-09-20 19:27:53 +08:00
xlplbo
763443abf2
fix(openai): 改写 Codex turn metadata 时保留非 ASCII 转义
2026-09-20 19:27:47 +08:00
haruka
b8d52fad34
feat(billing): support configurable reasoning effort multipliers
2026-09-20 16:41:49 +08:00
shaw
d2e319b2a1
test: 修复 WebSocket 同线程抢占测试的关闭时序竞态
2026-09-20 16:37:07 +08:00
haruka
fc96132e72
fix(openai): harden referral outcomes and isolate HTTP transport
2026-09-20 15:47:53 +08:00
haruka
8f6bbb59c7
test: stabilize Gemini keepalive test
2026-09-20 15:04:15 +08:00
haruka
5090ffe05e
feat(openai): show Codex credits and manage referral invitations
2026-09-20 14:38:29 +08:00
Wesley Liddick
bbdcfbac0a
Merge pull request #7304 from wucm667/fix/issue-7298-response-model-alias
...
fix(gateway): restore public response model aliases
2026-09-20 14:07:16 +08:00
Wesley Liddick
7403a01177
Merge pull request #7314 from wucm667/fix/issue-7306-keyword-reminder-bypass
...
fix(moderation): prevent reminder tags from bypassing keyword checks
2026-09-20 14:07:04 +08:00