shaw
017bbcb901
chore(api-key): 创建频率默认值调整为每小时 60 次
2026-09-30 13:55:37 +08:00
shaw
9ecb340822
feat(api-key): 增加 API Key 创建数量与频率限制
...
- 新增 api_key_create.max_active_per_user(默认 200)与
api_key_create.max_per_user_per_hour(默认 20),0 表示不限制
- 创建频率按固定一小时窗口统计,自定义与自动生成的 Key 统一计入
- 创建计数独立于 Key 生命周期,删除或修改 Key 不再重置计数
- 移除不再使用的 DeleteCreateAttemptCount 缓存方法
2026-09-30 13:44:02 +08:00
Wesley Liddick
a0f41f95a0
Merge pull request #7579 from feeeei/fix/claude-code-only-fallback-openai-compat
...
fix(gateway): Claude Code 限制分组的 OpenAI 兼容入口改走降级分组,不再直接 403
2026-09-30 10:47:08 +08:00
Wesley Liddick
fe9dadfc7d
Merge pull request #7679 from PMExtra/feat/risk-control-allowlist
...
feat: 新增可信用户风控白名单,保留审计并免除本地自动处罚
2026-09-29 15:53:18 +08:00
Wesley Liddick
052e08e764
Merge pull request #7684 from william-drakemond/feat/claude-reset-credits-ui
...
feat(claude): 查询 Claude 重置次数(只读),UI 复用 Codex 次数按钮 / Read-only Claude reset credit count, reusing Codex count UI
2026-09-29 15:50:53 +08:00
Wesley Liddick
1f955af353
Merge pull request #7380 from wucm667/fix/issue-7377-forward-stream-usage
...
fix(gateway): forward received chat stream usage
2026-09-29 15:44:10 +08:00
Wesley Liddick
ccb027b515
Merge pull request #7378 from wucm667/fix/issue-7368-composite-ws-routing
...
fix(gateway): resolve composite routes for websocket aliases
2026-09-29 15:43:52 +08:00
Wesley Liddick
883a53fea0
Merge pull request #7643 from wucm667/fix/issue-7637-antigravity-compat-keepalive
...
fix(antigravity): keep compat streams alive before first content
2026-09-29 15:43:19 +08:00
Wesley Liddick
b35a611538
Merge pull request #7646 from wucm667/feat/issue-7642-dashboard-spending-trend
...
feat(dashboard): toggle recent usage between tokens and spending
2026-09-29 15:43:07 +08:00
Wesley Liddick
1dca86f287
Merge pull request #7701 from wucm667/fix/issue-7699-tool-rewrite
...
fix(anthropic): rewrite tool names in one body pass
2026-09-29 15:42:45 +08:00
wucm667
27a9421e6a
fix(anthropic): rewrite tool names in one body pass
2026-09-29 15:00:16 +08:00
William Drake and Claude Opus 5.5
860782e6fb
fix(claude): harden reset credit projection and cell state (review R2)
...
- Drop selection_token (unsalted hash of a short grant ID, reversible) and
claudeGrantSelection from the read-only DTO; assert it never serializes.
- query() returns only the projected result; no raw upstream block escapes.
- Clear a cooldown_until that is already past, using the same `now` as the
redeemable check; the cell also shows the cooldown only when in the future.
- Invalidate in-flight queries when account id, platform or type changes.
- Sort the earliest-expiry fallback by parsed timestamp, invalid/missing last.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-28 20:59:39 -04:00
korkin25
48970f61b4
fix(claude): explicitly close status HTTP response
2026-09-28 18:04:14 -04:00
korkin25
6a8f921650
feat(claude): expose sanitized native reset credit status
2026-09-28 18:04:13 -04:00
haruka
2cc459e24f
style: satisfy Sonnet 5.5 lint checks
2026-09-29 05:20:04 +08:00
haruka
8490a81867
feat: support Claude Sonnet 5.5
2026-09-29 04:55:07 +08:00
PMExtra
6a69dd051a
feat: add risk control user allowlist
2026-09-29 01:50:21 +08:00
wucm667
aa3a3ea787
feat(dashboard): toggle recent usage between tokens and spending
2026-09-28 14:48:42 +08:00
wucm667
bd48b2b2d2
fix(antigravity): keep compat streams alive before first content
2026-09-28 12:15:27 +08:00
Wesley Liddick
4c00df2e01
Merge pull request #7638 from Achordchan/fix/anthropic-structured-output-beta
...
fix(anthropic): preserve requested structured outputs beta
2026-09-28 10:52:52 +08:00
Wesley Liddick
b5298fdde8
Merge pull request #7538 from TouHouQing/fix/claude-thinking-disabled-openai
...
fix(openai): honor disabled thinking in Claude Messages bridge
2026-09-28 10:51:30 +08:00
Wesley Liddick
5a350108c4
Merge pull request #7607 from ResidualBlood/fix/antigravity-malformed-function-call-retry
...
fix(antigravity): trigger failover retry on empty stream caused by MALFORMED_FUNCTION_CALL
2026-09-28 10:50:53 +08:00
Wesley Liddick
1df5c39311
Merge pull request #7562 from william-drakemond/fix/opencode-zen-deepseek-reasoning-placeholder
...
fix(openai): inject DeepSeek reasoning placeholder for OpenCode Zen upstream
2026-09-28 10:50:02 +08:00
Wesley Liddick
b3c7038cf4
Merge pull request #7526 from HuntercodeT/fix/passthrough-model-discovery-merge
...
fix(gateway): let OpenAI passthrough accounts supplement model discovery instead of hiding mapped models
2026-09-28 10:49:01 +08:00
Wesley Liddick
8616d4e036
Merge pull request #7617 from korkin25/fix/responses-beta-upstream
...
fix(openai): preserve caller beta headers for HTTP Responses
2026-09-28 10:48:48 +08:00
Wesley Liddick
93c3da03eb
Merge pull request #7555 from Yukinoshita-Yukino/fix/openai-auto-reset-credit-sched-projection
...
fix(scheduler): keep auto reset-credit fields in the scheduler projection
2026-09-28 10:27:00 +08:00
Achord Chan
68c2f5ae6d
fix(anthropic): preserve requested structured outputs beta
2026-09-28 10:10:47 +08:00
Wesley Liddick
ff6b85e30b
Merge pull request #7615 from UnlastingR/fix/codex-ws-context-rollover-upstream
...
fix(openai): break websocket chain on context rollover
2026-09-28 10:05:05 +08:00
Wesley Liddick
79c18ec836
Merge pull request #7609 from feeeei/fix/client-disconnect-499
...
fix(gateway): 客户端断开统一标记 499,不再被记成 502/200 上游错误
2026-09-28 10:04:07 +08:00
Wesley Liddick
1ff2bd6d95
Merge pull request #7573 from Yukinoshita-Yukino/fix/channel-image-price-inherit-when-unset
...
fix(billing): keep catalog image prices when channel pricing leaves them unset
2026-09-28 09:57:02 +08:00
Wesley Liddick
f592b336a3
Merge pull request #7595 from wucm667/feat/issue-7587-allowlist-glob
...
feat(groups): support wildcards anywhere in model allowlists
2026-09-28 09:55:55 +08:00
Wesley Liddick
37f35b12ea
Merge pull request #7524 from Achordchan/fix/plaza-video-rate
...
fix(model-plaza): apply independent video billing multipliers
2026-09-28 09:55:34 +08:00
Wesley Liddick
e4b34446af
Merge pull request #7619 from SavitarC/fix/account-stats-long-context-billing
...
fix(billing): 账号统计成本按 OpenAI 账号开关计入长上下文价
2026-09-28 09:55:19 +08:00
Wesley Liddick
90ae81e9f8
Merge pull request #7624 from wucm667/fix/issue-7620-future-quota-reset
...
fix(openai): retain quota pause until known future reset
2026-09-28 09:54:52 +08:00
Wesley Liddick
9375e288ba
Merge pull request #7571 from SPHINX998/fix/openai-probe-model-unavailable-inconclusive
...
fix(openai): keep Responses support unknown when the probe model is missing
2026-09-28 09:54:31 +08:00
Wesley Liddick
06f70a6232
Merge pull request #7572 from SPHINX998/fix/openai-alpha-search-require-completion
...
fix(openai): require a successful completion before billing an alpha search fallback
2026-09-28 09:54:12 +08:00
Wesley Liddick
6906062187
Merge pull request #7597 from far5man/codex/opus55-openrouter-alias-main
...
fix: recognize OpenRouter Claude Opus 5.5 alias for billing
2026-09-28 09:53:49 +08:00
Wesley Liddick
dc4874a2f1
Merge pull request #7613 from yujunkim/fix/openai-free-fast-missing-pricing
...
fix(billing): keep zero-cost usage log when Free Fast has no pricing
2026-09-28 09:53:26 +08:00
Wesley Liddick
11608c51f0
Merge pull request #7568 from SPHINX998/fix/apicompat-gpt6-reasoning-models
...
fix(apicompat): treat every GPT generation from 5 on as a reasoning model
2026-09-28 09:53:05 +08:00
Wesley Liddick
8aa7fb8c2d
Merge pull request #7569 from SPHINX998/fix/apicompat-recover-empty-final-text
...
fix(apicompat): recover streamed text when the final output message is empty
2026-09-28 09:52:48 +08:00
Wesley Liddick
00ae7c38e2
Merge pull request #7570 from SPHINX998/fix/apicompat-tool-input-on-block-start
...
fix(apicompat): keep tool arguments sent on content_block_start
2026-09-28 09:52:13 +08:00
Wesley Liddick
51a10e42f7
Merge pull request #7585 from ResidualBlood/fix/antigravity-pdf-inline-data
...
fix(antigravity): forward chat PDF file parts as Gemini inlineData
2026-09-28 09:51:28 +08:00
Wesley Liddick
6655f4ec0e
Merge pull request #7393 from Achordchan/fix/antigravity-string-const
...
fix(antigravity): intersect string const with existing enums
2026-09-28 09:51:04 +08:00
Wesley Liddick
be64b553f9
Merge pull request #7635 from wucm667/fix/issue-7629-responses-message-type
...
fix(apicompat): mark converted Chat role items as Responses messages
2026-09-28 09:50:34 +08:00
wucm667
512aa8bc93
fix(setup): omit obsolete rate limit defaults
2026-09-28 08:50:36 +08:00
wucm667
82d2552360
fix(apicompat): mark converted role items as messages
2026-09-28 08:40:41 +08:00
ResidualBlood
6b40449c3f
fix(antigravity): exclude Signature-only events from meaningful data check
...
MALFORMED_FUNCTION_CALL responses from upstream contain only
thoughtSignature without any text, thinking, or tool calls.
The previous fix still treated delta.Signature and block.Signature
as meaningful data, so the empty-stream failover was never triggered.
- Remove Signature from isMeaningfulAntigravityCompatEvent checks
- Let hasMeaningfulData() also consult processor.HasContent() as
a secondary guard for edge cases
2026-09-27 13:15:56 +00:00
wucm667
02088be2d1
fix(openai): retain quota pause until known future reset
2026-09-27 14:56:38 +08:00
SavitarC
fd7af1d462
fix(billing): honor long-context gate in account stats pricing
2026-09-27 12:12:25 +08:00
korkin25
8b95dc94f8
fix(openai): preserve Responses multi-agent beta
2026-09-27 09:57:51 +08:00