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
简简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
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
milesians
147c1879d9
fix(payment): support plural subscription validity units
2026-06-23 15:22:55 +08:00
shaw
85a3b12254
chore: update sponsors
2026-06-22 16:37:56 +08:00
shaw
e5f38a6f60
chore: update sponsors
2026-06-22 09:55:31 +08:00
github-actions[bot]
d430343f51
chore: sync VERSION to 0.1.138 [skip ci]
2026-06-22 01:24:13 +00:00
shaw
6936687870
fix(lint): check WriteString return in summarizeOpenAIImagesNoOutputBody
...
修复 PR #3381 引入的 errcheck lint 错误,satisfy golangci-lint
对 strings.Builder.WriteString 返回值的检查要求。
v0.1.138
2026-06-21 21:43:58 +08:00
404QAQ
f4b51b0f2b
fix(lint): check WriteString return value in summarizeOpenAIImagesNoOutputBody
...
golangci-lint (errcheck) flagged the unchecked (*strings.Builder).WriteString
return value at openai_images_responses.go:632. Align with the existing
convention used elsewhere in the package (e.g. gateway_service.go) by
explicitly discarding the return values with `_, _ =`.
2026-06-21 21:39:44 +08:00
Wesley Liddick
8105846f33
Merge pull request #3326 from tairan/fix/selinux-bind-mount-labels
...
fix(deploy): add :Z SELinux labels to bind mounts in compose files
2026-06-21 21:23:27 +08:00
Wesley Liddick
f079742bab
Merge pull request #3371 from cugxuan/feat/subscription-affiliate-rebate
...
feat: apply affiliate rebate to subscription payments
2026-06-21 21:18:50 +08:00
Wesley Liddick
a560d2f91e
Merge pull request #3363 from kangjwme/feat/prefer-soonest-reset-scheduling
...
feat(scheduling): opt-in "prefer soonest reset" account selection
2026-06-21 21:17:44 +08:00
Wesley Liddick
d2ff9c0c4c
Merge pull request #3369 from skyswordw/codex/default-ccswitch-openai-gpt-55
...
fix(ccswitch): default OpenAI import model to gpt-5.5
2026-06-21 21:16:07 +08:00
Wesley Liddick
92ce5bfe24
Merge pull request #3347 from SavitarC/fix/usage-cache-token-tooltip
...
fix(usage): 显示缓存 Token 明细
2026-06-21 21:15:45 +08:00
Wesley Liddick
febfe538b7
Merge pull request #3344 from Milesians/main
...
fix(frontend): refresh custom page document title
2026-06-21 21:15:17 +08:00
Wesley Liddick
6e27b82335
Merge pull request #3381 from 404QAQ/fix/images-incomplete-failover
...
fix(images): 识别 response.incomplete 触发 failover + 记录软失败上游响应
2026-06-21 21:14:48 +08:00
Wesley Liddick
f6d734ec23
Merge pull request #3308 from a0yark/fix/gemini-tool-schema-cleanup
...
fix(gemini): clean unsupported tool schema fields
2026-06-21 21:14:09 +08:00
Wesley Liddick
af1a032d35
Merge pull request #3375 from StarryKira/fix/3358-vertex-beta-and-cch
...
fix(gateway): filter anthropic-beta on the Vertex Anthropic path + drop cch sign (#3358 )
2026-06-21 21:13:14 +08:00
Wesley Liddick
93de19665b
Merge pull request #3359 from alfadb/fix/glm-effort-mapping
...
修复 GLM 推理强度映射
2026-06-21 21:12:46 +08:00
Wesley Liddick
bed12b7016
Merge pull request #3360 from feitianbubu/fix/auto-mode-cc-entrypoint-ide
...
fix(gateway): in auto mode recognize Claude Code IDE clients via any cc_entrypoint
2026-06-21 21:12:33 +08:00
Wesley Liddick
f597e926da
Merge pull request #3335 from FjlI5/fix/openai-upstream-endpoint-logging
...
fix: 修正 chat-only API-key 账号上游端点被误记为 /v1/responses
2026-06-21 21:12:15 +08:00
Wesley Liddick
7b5fbe5197
Merge pull request #3364 from feitianbubu/fix/promo-clear-expiry
...
fix(promo): allow clearing promo code expiry on edit
2026-06-21 21:12:02 +08:00
Wesley Liddick
04494fd0d9
Merge pull request #3312 from 315944211/codex/update-pnpm-action-setup-node24
...
chore: update pnpm action setup
2026-06-21 21:11:43 +08:00
Wesley Liddick
945b9b208b
Merge pull request #3374 from wucm667/fix/email-binding-enforce-suffix-whitelist
...
fix(auth): 邮箱身份绑定流程同样校验注册后缀白名单,堵住绕过
2026-06-21 12:56:53 +08:00