3374 Commits

Author SHA1 Message Date
Wesley Liddick
be0c857240
Merge pull request #2502 from yangzc2004-bit/codex/gemini-google-one-429-cooldown
fix: use tier cooldown for google one gemini 429
2026-05-19 14:07:25 +08:00
Wesley Liddick
a340002c6d
Merge pull request #2401 from 2ue/fix/normalize-image-billing-size
修复图片计费尺寸归一化与使用记录展示
2026-05-19 14:00:24 +08:00
Wesley Liddick
14f54be03f
Merge pull request #2481 from weak-fox/lyp/fix-issue-2223-capacity-retry
fix: 修复 OpenAI 模型容量错误未进入自动重试
2026-05-19 10:24:18 +08:00
Wesley Liddick
8584b8f7cf
Merge pull request #2504 from yetone/fix-admin-settings-darkmode
fix(admin/settings): make tab shell readable in dark mode
2026-05-19 09:55:01 +08:00
Wesley Liddick
f9fec78b70
Merge pull request #2505 from is7Qin/fix/openai-compat-usage-parsing
修复 Claude 映射 GPT 后被记为 0 token 的计费漏洞
2026-05-19 09:53:50 +08:00
shaw
a729752de6 test: align codex tool-call id assertions with fc_ prefix 2026-05-19 09:45:05 +08:00
Wesley Liddick
11870cf84f
Merge pull request #2499 from yetone/fix/codex-transform-fc-underscore
fix(codex-transform): preserve underscore when rewriting `call_*` tool-call ids
2026-05-19 09:39:25 +08:00
Wesley Liddick
2c3b6e4a31
Merge pull request #2527 from wucm667/fix/docker-pnpm-ignored-builds
fix(docker): 固定前端构建阶段 pnpm 版本为 v9
2026-05-19 09:30:10 +08:00
Wesley Liddick
e318376e88
Merge pull request #2548 from Arron196/fix/sla-exclude-capacity-errors
fix: 统一 Ops SLA 与请求错误统计口径
2026-05-19 09:29:22 +08:00
Wesley Liddick
d1910751b6
Merge pull request #2541 from DanisJiang/fix/alipay-pagepay-qrcode
fix(payment): 修复支付宝官方扫码二维码生成错误
2026-05-19 09:24:23 +08:00
Wesley Liddick
1d78dde8c4
Merge pull request #2552 from lyen1688/fix/anthropic-passthrough-keepalive
fix: 修复 Anthropic API Key 透传流式保活
2026-05-18 20:13:41 +08:00
lyen1688
164e2f610c fix: add keepalive for Anthropic passthrough streams 2026-05-18 18:41:25 +08:00
benjamin
5dae745e86 test: 避免 Ops 图表测试使用保留组件名
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-18 17:12:41 +08:00
benjamin
924e10831a fix: 更新 Ops 错误分布口径文案
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-18 16:53:16 +08:00
benjamin
09cec311e8 fix: 统一 Ops 请求错误图表 SLA 口径
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-18 16:52:44 +08:00
benjamin
6acb46c113 fix: 标记通用网关本地调度容量错误
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-18 16:52:32 +08:00
benjamin
429adbc721 fix: 标记 OpenAI 本地调度容量错误
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-18 16:52:20 +08:00
benjamin
ae6ee23e2e fix: 调整 Ops 错误分类的 SLA 排除逻辑
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-18 16:52:06 +08:00
Yuhao Jiang
1b03240515 fix(payment): 修复支付宝官方扫码二维码生成错误
支付宝官方服务商在 precreate(当面付)不可用回退到 page.pay 时,
错误地把网页跳转 URL 当作可扫码二维码内容返回。前端用 QRCode 库
把这段 URL 渲染成二维码后,支付宝 APP 无法识别(扫到的只是个 HTTP
URL,不是支付二维码),用户必须点"重新打开支付页面"跳转到支付宝
收银台才能扫到真正可用的二维码。

- 后端 alipay.go:createPagePayTrade 不再把 PayURL 塞给 QRCode;
  createDesktopTrade 在 paymentMode == "redirect" 时跳过 precreate
  直接走 page.pay,避免没开通"当面付"的商户走一次无用的 API 调用
- 前端管理端 PaymentProviderDialog:让支付宝官方实例可在"支付模式"
  中选择"跳转",开启后始终在新标签页打开支付宝收银台
- ProviderCard 的 modeLabel 增加 redirect 分支
- 补充 TestCreateTradeRedirectModeSkipsPrecreate 单元测试

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 15:01:17 -05:00
Wesley Liddick
f5bd25bea0
Merge pull request #2530 from lyen1688/fix/openai-responses-sse-terminal
修复 OpenAI Responses SSE 终止事件识别
2026-05-17 16:20:04 +08:00
lyen1688
cc5328c491 修复 OpenAI Responses SSE 终止事件识别 2026-05-17 15:33:34 +08:00
wucm667
44995404ef fix(docker): pin frontend builder pnpm to v9
`corepack prepare pnpm@latest` now resolves to pnpm 11, which promotes
ERR_PNPM_IGNORED_BUILDS to a hard error and breaks the frontend stage of
`docker build`. Pin pnpm to v9 to match the CI workflow
(pnpm/action-setup version: 9) and keep image builds reproducible.

Fixes #2442
2026-05-17 11:19:47 +08:00
name
0393bd7c82 Fix OpenAI compat usage parsing 2026-05-16 03:03:43 +08:00
yetone
b0c7723393
fix(admin/settings): make tab shell readable in dark mode
Vue's scoped-CSS compiler was dropping the `:global(.dark) .settings-tabs-shell`
rules in the production build, so the tab strip kept its light-mode white
background and the inactive tab labels (text-gray-300) showed at ~1.6:1
contrast — effectively unreadable.

Hoist the three dark-mode overrides into an unscoped `<style>` block so they
survive the scoped-CSS transform.
2026-05-16 01:00:03 +08:00
yangzc2004-bit
87fac30459 fix: use tier cooldown for google one gemini 429 2026-05-16 00:16:38 +08:00
yetone
348a487739
fix(codex-transform): preserve underscore when rewriting call_* tool-call ids
`fixCallIDPrefix` builds malformed ids when the input has the standard
OpenAI `call_<nanoid>` prefix:

  input:  call_YYen1qxDejd2myJwcTCf7Nyp
  output: fcYYen1qxDejd2myJwcTCf7Nyp   ← no underscore between 'fc' and the nanoid

ChatGPT's codex backend then rejects the replayed item with:

  400 Invalid 'input[N].id': 'fcYYen1qxDejd2myJwcTCf7Nyp'.
       Expected an ID that contains letters, numbers, underscores, or
       dashes, but this value contained additional characters.

Sub2api wraps that into 502 to the client. Clients using the OpenAI SDK
on the OAuth/codex path see every multi-hop turn (after the first tool
call) fail because the item_reference rewritten this way gets sent on
every subsequent hop.

The other two branches of the same function correctly emit `fc_`
(line 1029: pass-through when already `fc*`; line 1035 fallback:
`fc_" + id`). Only the `call_` → `fc_` rewrite was missing the
underscore — looks like a copy-paste slip during the original commit.

Fix: change `"fc"` to `"fc_"` on the call_ branch. One character.

Repro:
  client (OpenAI SDK) sends a function_call_output whose call_id is
  `call_<nanoid>` (default OpenAI format). The sub2api request body
  also contains an item_reference whose id mirrors the call_id (also
  `call_<nanoid>`). On the codex OAuth path, this rewrite fires for
  the item_reference's id, producing the malformed value.

Affects: `platform=openai type=oauth` accounts whose clients use the
official OpenAI SDK / Responses API conventions (id prefix `call_`).
API-key accounts and bridge-mode requests are untouched.
2026-05-15 23:29:56 +08:00
shaw
6e66edbb09 chore: update sponsors 2026-05-15 20:58:47 +08:00
weak-fox
9f07741c13 fix: retry model capacity transient errors 2026-05-15 10:43:29 +08:00
weak-fox
ed7ef86347 test: add capacity retry regressions 2026-05-15 10:41:57 +08:00
2ue
115535e1d5 Update unit tests for image size resolver 2026-05-12 16:12:08 +08:00
2ue
4840194b18 Fix lint issues in image billing change 2026-05-12 16:04:24 +08:00
2ue
bb4c1abe28 Fix image billing size normalization 2026-05-12 15:21:31 +08:00
shaw
18790386a7 fix(deploy): 移除数据库与 Redis 宿主机端口映射 2026-05-12 15:16:39 +08:00
github-actions[bot]
62ccd0ff39 chore: sync VERSION to 0.1.126 [skip ci] 2026-05-11 15:30:51 +00:00
Wesley Liddick
3d7e7b78cf
Merge pull request #2356 from jack-atlas/fix/openai-messages-multi-tool-continuation
Preserve multi-tool context in OpenAI messages continuation
2026-05-11 23:03:24 +08:00
shaw
ea751f6515 test: update admin settings contract for Antigravity UA 2026-05-11 22:55:02 +08:00
Wesley Liddick
ca17c364e5
Merge pull request #2319 from wucm667/codex/fix-openai-unpriced-usage-log
fix(openai): record zero-cost usage for unpriced models
2026-05-11 22:45:17 +08:00
Wesley Liddick
ac91de8592
Merge pull request #2353 from XiaoYu994/fix/openai-429-plan-type-sync
fix: sync OpenAI plan type from usage limit errors
2026-05-11 22:28:13 +08:00
shaw
a07a0dac63 feat: add configurable Antigravity user agent version 2026-05-11 22:25:20 +08:00
shaw
9377c96746 fix: 让消息 cache_control 改写默认关闭 2026-05-11 21:26:41 +08:00
shaw
297b54d066 fix: 完善工具名改写测试和格式 2026-05-11 17:27:04 +08:00
Wesley Liddick
1088e27cd1
Merge pull request #2340 from iFwu/fix/mimic-rewrite-tool-use-in-messages
fix(mimic): rewrite tool_use names in messages to match renamed tools
2026-05-11 16:53:00 +08:00
XiaoYu994
c3a1471775 fix: sync OpenAI plan type from usage limit errors 2026-05-11 16:22:40 +08:00
Wesley Liddick
1e2f55078c
Merge pull request #2289 from wucm667/fix/ccswitch-import-model
fix(ccswitch): 修复 Codex 导入缺少模型参数
2026-05-11 16:12:47 +08:00
Wesley Liddick
348eeaa06a
Merge pull request #2297 from ZeroDeng01/dev
fix(gemini): 修复 Gemini Vertex Service Account 账号测试时,前置 OAuth token 请求没有使用账号代理的问题
2026-05-11 16:12:20 +08:00
Wesley Liddick
f19421b16e
Merge pull request #2247 from anzhen-tech/codex/fix-ws-replay-function-call-output
fix: preserve replay tool output continuation
2026-05-11 16:11:37 +08:00
shaw
18cc4691e6 优化系统设置页标签导航 2026-05-11 16:10:40 +08:00
Jack
87d73236f2 Preserve multi-tool context in OpenAI messages continuation
Claude Code can send one assistant turn with multiple tool_use blocks followed by a user turn containing matching tool_result blocks. The OpenAI /v1/messages compatibility path trimmed continuation input to the last user turn plus adjacent tool outputs, which could leave a function_call_output without its earlier function_call when previous_response_id was attached.

This keeps all function_call items needed by retained function_call_output entries so the upstream Responses API can resolve every call_id.

Constraint: Applies only to the OpenAI /v1/messages -> Responses compatibility continuation path.

Rejected: Disable previous_response_id for all tool outputs | loses continuation and cache benefits for valid turns.

Confidence: high

Scope-risk: narrow

Directive: Do not trim function_call_output entries without preserving their matching function_call call_id context.

Tested: go test ./internal/service -run 'TestForwardAsAnthropic_(PreviousResponseIDKeepsMultiToolCallContext|AttachesPreviousResponseIDForCompatContinuation|OAuthPreservesClaudeCodeToolCallID)' -count=1

Tested: go test ./internal/service -run 'TestForwardAsAnthropic|TestApplyAnthropicCompatFullReplayGuard|TestOpenAICompat|Test.*ToolContinuation' -count=1

Tested: go test ./internal/pkg/apicompat -count=1

Related: #2337
2026-05-11 12:03:17 +08:00
ZeroDeng
37ec21e1a5
Merge branch 'main' into dev 2026-05-11 11:48:55 +08:00
ZeroDeng
f788e6bdba fix(service): handle unexpected default transport type, simplify warning append 2026-05-11 11:43:44 +08:00