Achord Chan
17ce21c038
test(scheduler): pass explicit multiplier pointer to snapshot
2026-09-23 11:38:23 +08:00
Achord Chan
b5b5f1f94b
fix(model-plaza): apply independent video billing multipliers
2026-09-23 11:28:41 +08:00
Wesley Liddick
59a00631ed
Merge pull request #7478 from superzcj/codex/simple-mode-key-window-limits
...
feat: optionally enforce API-key spending windows in simple mode
2026-09-23 11:19:17 +08:00
Wesley Liddick
b2d6b954a1
Merge pull request #7090 from Brisbanehuang/codex/scheduling-rate-account-fallback
...
fix(scheduler): 无有效探测时回退账号倍率,支持 OAuth 参考倍率留空
2026-09-23 11:18:37 +08:00
Wesley Liddick
1947add842
Merge pull request #7288 from feeeei/feat/backup-monthly-archive
...
feat(backup): 支持月度归档与独立保留策略
2026-09-23 11:18:08 +08:00
Wesley Liddick
6b71d75bde
Merge pull request #4867 from coo1white/fix-backup-s3-secret-reencrypt
...
fix(backup): keep the S3 secret encrypted when a save inherits it
2026-09-23 11:17:55 +08:00
Wesley Liddick
31a6e74770
Merge pull request #7491 from Thinker-Joe/fix/openai-picker-model-mapping
...
fix(openai): scope the account test picker to the account model mapping
2026-09-23 10:31:36 +08:00
Wesley Liddick
7c0a2a556c
Merge pull request #7160 from StarryKira/codex/log-retention-upstream
...
feat: 支持运维与请求日志的滚动保留设置
2026-09-23 10:07:25 +08:00
Wesley Liddick
0dd71286f2
Merge pull request #7060 from heathermhuang/fix/composite-image-models-6076
...
fix(images): allow compatible Gemini models on API-key upstreams
2026-09-23 10:07:02 +08:00
Wesley Liddick
b350e079f8
Merge pull request #7139 from HP-network/fix/api-key-model-401-failover
...
fix: keep API-key accounts available for unknown models
2026-09-23 10:05:42 +08:00
Wesley Liddick
5ad7cf4fb9
Merge pull request #7300 from lizhaoxinlizhaoxin2-lab/fix/responses-stream-error-schema
...
fix(responses): emit protocol-correct stream errors once
2026-09-23 10:03:00 +08:00
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
zhangcj
3b336b2eca
feat: optionally enforce API-key spending windows in simple mode
2026-09-23 08:17:48 +08:00
Thinker-Joe
9d7c636db9
fix(openai): respect passthrough in picker image choices
...
Validate mapped targets for default image models as well as aliases. Preserve native image choices in passthrough and cover mapping changes over the shared catalog cache.
2026-09-23 01:43:06 +08:00
feeeei
8f8358cc67
fix(backup): 关闭月度归档后不再改写旧归档的保留份数
2026-09-23 00:44:29 +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
Thinker-Joe
4daea093f9
fix(openai): keep OAuth image aliases in the test picker
...
Image choices were resolved from DefaultModels IDs and from mapping keys, so an
alias whose target is a local image model (paint -> gpt-image-2.5-flare) never
reached the picker: IsModelSupported only matches keys, and a public name is not
an image model. Resolve the public name to its target before deciding, and only
synthesize an entry when the target is an image model.
Update the fixture of
TestFetchOpenAIAccountModelsOAuthLabelsLocalImageModelsLikeUpstream: it asserted
on an upstream slug the account did not configure, which conflicts with the
account-scoped projection. Coverage is preserved by configuring that slug and by
a new test asserting unconfigured text models stay out.
2026-09-22 21:15:20 +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
GongTengXY
de28eea11f
fix(openai): filter account test models by model mapping
2026-09-22 19:34:15 +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