Wesley Liddick
b9083fc7ad
Merge pull request #6211 from Monika-shipship/codex/ws-v2-tool-id-regression
...
test(openai): 补充 OAuth Responses WS v2 历史 ID 清洗回归测试
2026-08-26 15:03:24 +08:00
Wesley Liddick
1bf76d26d7
Merge pull request #6229 from Wei-Shaw/fix/openai-upstream-endpoint-observability
...
fix(openai): 记录真实上游端点避免错误误报
2026-08-26 15:03:11 +08:00
shaw
6ca1e15b0a
chore: update sponsors
2026-08-26 09:58:16 +08:00
shaw
66d664ff08
chore: update sponsors
2026-08-26 09:53:47 +08:00
shaw
4795650d21
fix(openai): record actual upstream endpoint on errors
2026-08-26 09:42:28 +08:00
github-actions[bot]
7634e3c23b
chore: sync VERSION to 0.1.183 [skip ci]
2026-08-25 13:53:14 +00:00
Monika
d8694f03bc
test(openai): cover WSv2 cleanup of stale native tool IDs
2026-08-25 21:45:24 +08:00
Wesley Liddick
e8cb019fab
Merge pull request #6078 from YogaSakti/fix/responses-custom-tool-call-id
...
fix(openai): keep restored tool-call item IDs typed
v0.1.183
2026-08-25 21:32:34 +08:00
Wesley Liddick
7a7bd3729c
Merge pull request #6166 from jyking/fix/email-bind-alias-dedup
...
fix(auth): 邮箱换绑增加别名与并发守卫
2026-08-25 21:31:39 +08:00
Wesley Liddick
49ad7021d7
Merge pull request #6164 from jimbirthday/fix/openai-sticky-capacity-spillover
...
fix(openai): preserve sticky binding on capacity spillover
2026-08-25 21:28:38 +08:00
Wesley Liddick
4952b919a4
Merge pull request #6204 from wucm667/fix/issue-6203-kimi-concurrency-403
...
fix(kimi): keep concurrency-limit 403 recoverable
2026-08-25 21:28:08 +08:00
Wesley Liddick
fa0685a4a3
Merge pull request #6175 from wucm667/feat/issue-6172-antigravity-token-clamp
...
fix(antigravity): clamp compatible token limits
2026-08-25 21:27:57 +08:00
Wesley Liddick
8040428716
Merge pull request #6201 from xuhaihan/fix/codex-session-id-affinity
...
fix(openai): honor Codex session-id header
2026-08-25 21:27:24 +08:00
Wesley Liddick
4ff136cfd9
Merge pull request #6193 from antTing/codex/fix-channel-monitor-v2-nullif
...
fix(channel-monitor-v2): fix composite platform aggregation SQL
2026-08-25 21:26:32 +08:00
Wesley Liddick
832cf4df65
Merge pull request #6208 from Wei-Shaw/fix/openai-oauth-429-quota-scheduling
...
fix(openai): pause OAuth accounts on exhausted quota 429
2026-08-25 20:41:41 +08:00
shaw
f1aadd48d5
fix(openai): pause OAuth accounts on exhausted quota 429
2026-08-25 20:25:22 +08:00
wucm667
3802268e2d
fix(kimi): keep concurrency 403 recoverable
2026-08-25 19:40:39 +08:00
hank
8e60d57475
fix(openai): honor Codex session-id header
2026-08-25 17:08:27 +08:00
暴走的小笼包
b20f29d115
fix(channel-monitor-v2): fix composite platform aggregation SQL
2026-08-25 16:36:04 +08:00
wucm667
1a9898a6a4
fix(antigravity): clamp compatible token limits
2026-08-25 13:13:08 +08:00
github-actions[bot]
aa2c4e8d13
chore: sync VERSION to 0.1.182 [skip ci]
2026-08-25 04:47:52 +00:00
Wesley Liddick
5a7d469622
Merge pull request #6157 from LiPu-jpg/fix/issue-6147-responses-lite-parallel
...
fix(openai): enforce Responses Lite parallel tool calls across account types
v0.1.182
2026-08-25 12:31:32 +08:00
shaw
095b525360
fix(openai): pin Responses Lite parallel tool calls
2026-08-25 12:14:52 +08:00
Wesley Liddick
027d442f9b
Merge pull request #6101 from jianjianai/fix/composite-group-channel-monitor-v2
...
fix(monitor-v2): 修复Composite分组错误事实未解析到真实账号平台导致渠道监控V2无效
2026-08-25 11:27:03 +08:00
Wesley Liddick
810d50a00f
Merge pull request #6155 from HypoxanthineOvO/fix/composite-kimi-k3-routing
...
fix(composite): route Kimi Code K3 model IDs
2026-08-25 11:13:59 +08:00
Wesley Liddick
41d712be09
Merge pull request #5658 from william-drakemond/fix/opencode-go-usage-limit-reset
...
fix(openai): honor OpenCode Go usage reset durations
2026-08-25 11:05:15 +08:00
Wesley Liddick
3c714d8736
Merge pull request #6152 from ranxi2001/fix/payment-result-balance-refresh
...
fix(payment): refresh balance after fulfillment
2026-08-25 11:04:10 +08:00
Wesley Liddick
636d7debf9
Merge pull request #6132 from wucm667/fix/issue-6125-anthropic-cache-ttl
...
fix: prevent duplicate Anthropic cache TTL billing
2026-08-25 11:02:29 +08:00
Wesley Liddick
3dd717ab0d
Merge pull request #5920 from wucm667/fix/issue-5884-antigravity-sonnet46
...
fix(antigravity): define Sonnet 4.5 to 4.6 compatibility routing
2026-08-25 11:01:34 +08:00
Wesley Liddick
1dc1b44268
Merge pull request #6149 from SipengXie2024/fix/oauth-image-verbatim-prompt
...
fix(openai): preserve OAuth image prompts verbatim
2026-08-25 11:01:20 +08:00
jyking
4ca86c52e3
fix(auth): 邮箱换绑增加别名与并发守卫
2026-08-25 10:40:02 +08:00
超级英雄吉姆
e55727d4c8
fix(openai): preserve sticky binding on capacity spillover
2026-08-25 10:27:48 +08:00
shaw
3b7753a8e4
chore: update sponsors
2026-08-25 08:51:58 +08:00
Jiao Ziang
d5e43ef7d1
fix(openai): normalize Lite requests in WS HTTP bridge
2026-08-25 03:46:46 +08:00
Jiao Ziang
d6012b0b35
fix(openai): preserve numeric precision in Lite payloads
2026-08-25 01:05:28 +08:00
Jiao Ziang
53d76ad800
fix(openai): enforce Responses Lite tool call mode
2026-08-25 00:21:29 +08:00
HypoxanthineOvO
4347e5555b
fix(composite): route Kimi Code K3 model IDs
2026-08-24 23:09:30 +08:00
SipengXie2024
329b92ef04
fix(openai): preserve OAuth image prompts verbatim
2026-08-24 14:37:48 +00:00
github-actions[bot]
e2d9b823f6
chore: sync VERSION to 0.1.181 [skip ci]
2026-08-24 14:35:57 +00:00
ranxi2001
eb594eefc9
fix(payment): refresh balance after fulfillment
2026-08-24 22:30:24 +08:00
Wesley Liddick
3af5443b22
Merge pull request #6116 from wucm667/fix/issue-6110-gemini-tool-schema
...
fix(gemini): sanitize unsupported tool schema fields
v0.1.181
2026-08-24 22:19:07 +08:00
Wesley Liddick
7ba3e1ac52
Merge pull request #6150 from Wei-Shaw/fix/grok-upstream-user-agent
...
fix(grok): use official CLI user agent
2026-08-24 22:18:02 +08:00
shaw
9fb260439f
fix(grok): use official CLI user agent
2026-08-24 22:14:45 +08:00
Wesley Liddick
07931bbb18
Merge pull request #6143 from akihitohyh/fix/rejected-status-strip-all
...
fix(openai): clear the rejected input status for the whole item type
2026-08-24 22:01:14 +08:00
Wesley Liddick
2307aa5ca7
Merge pull request #6148 from 759502416/fix/responses-lite-parallel-tool-calls
...
fix(openai): keep parallel_tool_calls for Responses Lite additional_tools
2026-08-24 21:49:01 +08:00
759502416 and Claude Opus 5
1563db3f82
fix(openai): keep parallel_tool_calls for Responses Lite additional_tools
...
normalizeOpenAIParallelToolCallsWithoutTools only looked at the top-level
"tools" array, but normalizeOpenAIResponsesLiteTools moves namespace tools
into an input item of type "additional_tools" and deletes the top-level key.
A Responses Lite request that carries tools therefore looks like it has none,
and the parallel_tool_calls:false that ensureOpenAIResponsesLiteParallelToolCalls
had just pinned gets deleted on the way out.
OpenAI then applies its default of true and rejects the request:
400 unsupported_value: "X-OpenAI-Internal-Codex-Responses-Lite requires
`parallel_tool_calls` to be false."
Note the field cannot simply be pinned to false unconditionally: without tools
OpenAI rejects it with "'parallel_tool_calls' is only allowed when 'tools' are
specified", so the two constraints have to be honoured together.
Reuse the same tool-detection standard the Lite path already uses by adding
openAIRequestBodyHasTools, the []byte counterpart of openAIResponsesLiteHasTools,
so both sides of the repo agree on what "has tools" means.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-24 21:15:39 +08:00
akihitohyh and Claude Opus 5
e440ac48c7
fix(openai): clear the rejected input status for the whole item type
...
The upstream names one offending index per response, but a replayed
conversation routinely carries dozens of items of the same type, each with a
status the upstream schema does not accept. Clearing a single index per round
trip needs one retry per item, so a conversation with more than
maxOpenAIResponsesRejectedFieldRetries such items exhausts the bounded budget
and the 400 reaches the client. Reported against tool_search_output items,
where the rejection surfaced as "Unknown parameter: 'input[60].status'".
Clear the status of every input item sharing the rejected item's type in the
same pass. Items of other types keep theirs: the rejection only proves that
the rejected item's type has no status field. When the rejected item carries
no type to match on, fall back to clearing the named index alone.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-24 17:03:44 +08:00
wucm667
71aa6e3574
fix(antigravity): preserve explicit Sonnet 4.5 routing
2026-08-24 16:07:27 +08:00
wucm667
99ec347eaf
fix(antigravity): migrate legacy Sonnet tests to 4.6
2026-08-24 15:58:47 +08:00
github-actions[bot]
03e8ab4134
chore: sync VERSION to 0.1.180 [skip ci]
2026-08-24 07:30:34 +00:00