Heatherm Huang
44f502bab8
fix: address grok review feedback
2026-06-26 14:26:43 +08:00
Heatherm Huang
720db8983f
test: harden grok quota readiness
2026-06-26 10:42:21 +08:00
Heatherm Huang
2a80495880
docs: clarify grok public route scope
2026-06-26 10:37:37 +08:00
Heatherm Huang
8a87a658ad
test: cover grok readiness paths
2026-06-26 10:37:37 +08:00
Heatherm Huang
939905b8c7
fix: refine grok quota pause behavior
2026-06-26 10:37:37 +08:00
Heatherm Huang
0d28642181
feat: add grok quota probe parity
2026-06-26 10:37:37 +08:00
Heatherm Huang
1b9645ca32
fix: allow grok scheduler capability routing
2026-06-26 10:36:09 +08:00
Heatherm Huang
e7a4f3f465
test: fix grok oauth validation suite
2026-06-26 10:36:09 +08:00
Heatherm Huang
f29ccc7dfb
fix: reduce grok oauth account-risk paths
2026-06-26 10:36:09 +08:00
Heatherm Huang
b2e2c7e69c
fix: harden grok oauth gateway paths
2026-06-26 10:36:09 +08:00
Heatherm Huang
b3a07aeae7
fix: align grok oauth exchange with xai
2026-06-26 10:36:09 +08:00
Heatherm Huang
39be1ec97f
feat: add grok subscription support
2026-06-26 10:36:09 +08:00
Wesley Liddick
fd9c945fab
Merge pull request #3470 from wucm667/fix/order-currency-symbol-from-field
...
fix(admin): 订单金额币种符号读取 currency 字段,修复 USD 渠道显示为 ¥
2026-06-26 09:46:02 +08:00
Wesley Liddick
94c059c99e
Merge pull request #3471 from wucm667/fix/antigravity-standard-tier-empty-project-fallback
...
fix(antigravity): standard-tier 账号 project_id 为空时兜底,避免全部请求 500
2026-06-26 09:45:54 +08:00
Wesley Liddick
1721b2b2d1
Merge pull request #3404 from wucm667/fix/balance-preflight-prevent-overdraft
...
fix(billing): 余额扣减增加充足性校验,防止余额透支为负
2026-06-26 09:45:46 +08:00
Wesley Liddick
32ddd5c60b
Merge pull request #3405 from wucm667/fix/subscription-order-apply-recharge-multiplier
...
fix(payment): 订阅套餐订单应用 BALANCE_RECHARGE_MULTIPLIER 汇率换算
2026-06-26 09:45:38 +08:00
Wesley Liddick
d53dd112ce
Merge pull request #3442 from hsn8086/fix/openai-chat-transport-failover
...
fix(openai): fail over on chat completions transport errors
2026-06-26 09:43:00 +08:00
Wesley Liddick
36a352f5eb
Merge pull request #3429 from 404QAQ/fix/images-content-refusal-passthrough
...
fix(images): pass content-moderation refusals through as 400 instead of retrying
2026-06-26 09:42:50 +08:00
Wesley Liddick
9983f5b80a
Merge pull request #3428 from Milesians/codex/fix-subscription-plan-validity-unit
...
fix(payment): support plural subscription validity units
2026-06-26 09:42:42 +08:00
Wesley Liddick
0bff6f9ac5
Merge pull request #3482 from SMGoro/fix/payment
...
fix(payment): 修复后端返回空supported_types时支付提供商卡片消失的问题
2026-06-26 09:42:33 +08:00
Wesley Liddick
6db9e42352
Merge pull request #3476 from zeyugao/main
...
Detect OpenAI overloaded errors by structured code
2026-06-26 09:42:22 +08:00
Wesley Liddick
fd0da2570d
Merge pull request #3481 from visa2/fix/gateway-glm-codex-tool-args-doubled
...
fix(apicompat): avoid doubling tool_call arguments from single-chunk upstreams (Codex + GLM)
2026-06-26 09:42:13 +08:00
Wesley Liddick
50c3e52799
Merge pull request #3460 from StarryKira/codex/fix-responses-cache-input
...
[codex] fix responses cache input for chat completions bridge
2026-06-26 09:42:04 +08:00
Wesley Liddick
db1813f7a3
Merge pull request #3434 from feitianbubu/fix/codex-cli-only-chat-completions
...
fix(gateway): enforce codex_cli_only restriction on /v1/chat/completions
2026-06-26 09:41:46 +08:00
Wesley Liddick
6d50934de6
Merge pull request #3457 from feitianbubu/fix/admin-usage-cache-breakdown
...
fix(admin/usage): populate cache creation/read token breakdown in stats
2026-06-26 09:41:36 +08:00
Wesley Liddick
27278f62ed
Merge pull request #3467 from jianjianai/fix/invalid-refresh-token-nonretryable
...
fix(token-refresh): treat refresh_token_invalidated as non-retryable / 添加 refresh_token_invalidated 到不可重试列表
2026-06-26 09:40:04 +08:00
Wesley Liddick
d65b4c90ad
Merge pull request #3435 from zichuanwangcloud-gif/fix/ops-dashboard-chart-infinite-height
...
fix(ops): prevent monitoring trend cards from growing unbounded
2026-06-26 09:39:06 +08:00
Wesley Liddick
e89f4b43c0
Merge pull request #3433 from feitianbubu/fix/cc-terminal-attribution-header
...
fix(keys): add CLAUDE_CODE_ATTRIBUTION_HEADER=0 to Claude Code terminal templates
2026-06-26 09:38:57 +08:00
Wesley Liddick
38355ed204
Merge pull request #3436 from feitianbubu/fix/email-identity-error-shadowing
...
fix(auth): stop swallowing email auth identity create error via shadowed err
2026-06-26 09:38:49 +08:00
Wesley Liddick
03f6a28096
Merge pull request #3395 from 404QAQ/fix/errcheck-writestring
...
fix(lint): check WriteString return value to fix errcheck failure on main
2026-06-26 09:38:37 +08:00
shaw
c9f42e1f77
fix(lint): gofmt token_refresh_service.go after refresh_token_invalidated addition
2026-06-26 09:34:20 +08:00
visa2 and Claude Opus 4.8
29122e3051
fix(apicompat): avoid doubling tool_call arguments from single-chunk upstreams
...
When converting a Chat Completions stream into Responses events, the first
tool_call delta chunk was copied wholesale into stream state (including
function.arguments), then the same chunk's arguments were accumulated again by
the shared `+=` block. For OpenAI this is harmless because its first tool_call
chunk carries empty arguments, but upstreams that pack id+name+arguments into a
single chunk (e.g. GLM/Zhipu) end up with doubled arguments such as
{"cmd":"ls"}{"cmd":"ls"}. Codex then fails to parse the tool call with
"trailing characters", breaking every tool invocation.
Reset the copied arguments so the shared accumulator counts them exactly once,
keeping the emitted delta and the final done/arguments consistent.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-26 00:58:38 +08:00
SMGDev
65ad7df4f4
fix(payment): 修复后端返回空supported_types时支付提供商卡片消失的问题
...
统一处理后端返回的null类型supported_types,将其标准化为空数组,避免调用includes()时报错导致卡片无法显示,同时修复多处相关的类型判断逻辑
2026-06-26 00:50:22 +08:00
Elsa
cc7612bdbd
Detect OpenAI overloaded error codes
2026-06-25 21:18:39 +08:00
Wesley Liddick
ce6af41357
Merge pull request #3473 from DaydreamCoding/fix/gateway-openai-codex-spark-strip-image-tool
...
fix(gateway-openai): codex spark 剥离 image_generation 工具,修复 502
2026-06-25 17:43:24 +08:00
DaydreamCoding and Claude Opus 4.8
0112782049
fix(gateway-openai): codex spark 剥离 image_generation 工具,修复 502
...
gpt-5.3-codex-spark 为 text-only,不支持 image_generation 工具;codex CLI 默认
在 /responses 的 tools[] 携带该工具,导致 ChatGPT 后端返回 400
invalid_request_error(param=tools),被 mapUpstreamError 兜底成 502
"Upstream request failed"(真实 400 见 ops_error_logs.upstream_errors)。
新增 stripCodexSparkImageGenerationTools,对 spark 剥离客户端携带的
image_generation 工具(tools 清空则删键),接入三条路径:
- applyCodexOAuthTransformWithOptions:OAuth 全入口(responses/messages/chat-completions)
- buildUpstreamRequestOpenAIPassthrough 无条件 spark 块:覆盖 OAuth+APIKey
/responses,不受 image-generation 开关影响
- WS stripCodexSparkImageGenerationToolFromRawPayload:覆盖 WebSocket /responses
bridge 注入(ensureOpenAIResponsesImageGenerationTool)本就跳过 spark;真正的缺口
在 normalizeOpenAIResponsesImageGenerationTools 会规范化并保留客户端工具。
临时绕过=换非 spark 模型;关 bridge/allow_image_generation 无效(工具是客户端带的)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 17:27:19 +08:00
wucm667
650c50e34b
fix(antigravity): add project fallback for standard tier
2026-06-25 16:29:33 +08:00
wucm667
55242ffac1
fix(admin): 订单金额币种符号读取 currency 字段
2026-06-25 16:23:45 +08:00
简简aw
0a97a5f461
fix(token-refresh): treat refresh_token_invalidated as non-retryable
2026-06-25 15:12:21 +08:00
shaw
00d68ff6df
feat(openai): add GPT-5.5 codex instructions and use as latest fallback
2026-06-25 11:44:42 +08:00
haruka
dbdbfb1122
fix: avoid default codex instructions for chat bridge
2026-06-25 02:32:15 +08:00
feitianbubu
4567f6582b
test(admin/usage): update sqlmock rows for cache breakdown columns
2026-06-24 23:59:22 +08:00
feitianbubu
063454ae96
fix(admin/usage): populate cache creation/read token breakdown in stats
2026-06-24 23:43:03 +08:00
shaw
a1560ae77c
chore: update sponsors
2026-06-24 22:14:47 +08:00
shaw
30adee43bc
feat(admin/accounts): confirm before OpenAI weekly limit reset
2026-06-24 21:56:03 +08:00
hsn
65fa728921
fix(openai): fail over on chat transport errors
2026-06-23 22:53:20 +08:00
feitianbubu
82576e0a38
fix(auth): stop swallowing email auth identity create error via shadowed err
2026-06-23 19:29:17 +08:00
zichuanwangcloud-gif and Claude Opus 4.8
9707dedca2
fix(ops): prevent monitoring trend cards from growing unbounded
...
The concurrency / switch-rate / throughput cards on the ops dashboard
sit in grid cells that only set `min-h-[360px]` (no definite height).
Their inner card uses `h-full`, which resolves to `auto` when the parent
height is `auto`. Combined with the Chart.js `responsive` +
`maintainAspectRatio: false` charts, this forms a height feedback loop:
the canvas reads the parent height to size itself, the content then grows,
the next ResizeObserver tick reads an even larger height, and the cards
stretch downward without bound.
On wide screens (`lg:grid-cols-4`) a sibling card usually fixes the row
height via `align-items: stretch`, masking the issue. It surfaces when no
sibling bounds the row height — e.g. the single-column (`grid-cols-1`)
stacked layout on narrow viewports, or when the concurrency card collapses
to little content. `min-h` only sets a floor, not a ceiling.
Fix: give the two Chart.js canvas cells a definite height (`h-[360px]`) so
the responsive resize has a fixed reference and the loop cannot run. The
concurrency card is not a responsive canvas, so it keeps `min-h-[360px]`
to avoid clipping its content.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-23 10:46:17 +00:00
feitianbubu
ae5e980dd1
fix(gateway): enforce codex_cli_only restriction on /v1/chat/completions
2026-06-23 18:38:52 +08:00
feitianbubu
28e7adef09
fix(keys): add CLAUDE_CODE_ATTRIBUTION_HEADER=0 to Claude Code terminal templates
2026-06-23 18:27:49 +08:00