shaw
2d8d3b7857
fix(ci): upgrade golangci-lint v2.7 to v2.11 for Go 1.26 compatibility
...
golangci-lint v2.7 was built with Go 1.25 and cannot lint Go 1.26
targets. v2.8+ added Go 1.26 support.
2026-03-07 08:54:05 +08:00
Wesley Liddick
4190293b07
Merge pull request #823 from StarryKira/fix/empty-stream-failover
...
Fix/empty streamfix issue #791
2026-03-07 08:51:07 +08:00
Wesley Liddick
421b4c0aff
Merge pull request #830 from ckken/pr/ccswitch-import-improvements
...
fix(ccswitch): improve import provider name and usage parsing
2026-03-07 08:49:09 +08:00
Wesley Liddick
cd69a7cb85
Merge pull request #820 from geminiwen/fix/apikey-credentials-preserve-existing-fields
...
fix(account): preserve existing credentials when saving apikey accounts
2026-03-07 08:46:51 +08:00
shaw
0c9ba9e86c
fix(security): upgrade Go 1.25.7 to 1.26.1 to resolve 4 stdlib vulnerabilities
...
GO-2026-4602 (os), GO-2026-4601 (net/url), GO-2026-4600 and
GO-2026-4599 (crypto/x509). The crypto/x509 fixes are only
available in go1.26.1+, not backported to go1.25.x.
2026-03-07 08:45:55 +08:00
shaw
1b4d2a41c9
fix(openai): /v1/messages端点补齐Codex用量快照提取与错误透传规则
...
对齐/v1/responses的Forward方法,修复两处不一致:
- 成功响应时从响应头提取OAuth账号的Codex使用量数据
- 非failover错误场景下应用管理员配置的错误透传规则
2026-03-07 08:40:07 +08:00
Wesley Liddick
0787d2b47a
Merge pull request #829 from JIA-ss/fix/usage-query-rate-limit
...
fix(usage): 修复用量查询 429 重试风暴,增加负缓存、请求去重与随机延迟
2026-03-07 08:32:29 +08:00
ckken
97bf1d85ab
feat(ccswitch): use site_name as default provider name in import link
2026-03-07 01:19:10 +08:00
ckken
207a493fab
fix(ccswitch): parse remaining quota from /v1/usage response
2026-03-07 01:19:10 +08:00
JIA-ss
1f3f9e131e
fix: resolve golangci-lint errors (gofmt alignment, errcheck)
...
- Fix gofmt: align struct field comments in UsageCache, trim trailing
whitespace on const comments
- Fix errcheck: use comma-ok on type assertion for singleflight result
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 00:58:08 +08:00
JIA-ss
4ddedfaaf9
merge: resolve conflict with main (keep both openAI probe and usage fix)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 00:49:30 +08:00
JIA-ss
3ebebef95f
fix(usage): add negative caching, singleflight, and jitter to usage queries
...
Prevents 429 rate-limit retry storms and reduces upstream correlation risk
for Anthropic usage API queries.
Three changes:
1. Negative caching (1 min TTL) — 429/error responses are now cached,
preventing every subsequent page load from re-triggering failed API calls.
2. singleflight dedup — concurrent requests for the same account are
collapsed into a single upstream call, preventing cache stampede.
3. Random jitter (0–800 ms) — staggers multi-account cache-miss bursts so
requests from different accounts don't hit upstream simultaneously with
identical TLS fingerprints, reducing anti-abuse correlation risk.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 00:39:16 +08:00
Gemini Wen
9f7ad47598
fix(account): clean up stale credentials fields after spreading currentCredentials
...
When customErrorCodes is disabled or modelMapping is empty, explicitly
delete the fields inherited from currentCredentials spread to avoid
preserving stale values.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 23:38:58 +08:00
Gemini Wen
3c83cd8be2
Merge remote-tracking branch 'origin/main' into fix/apikey-credentials-preserve-existing-fields
2026-03-06 23:38:18 +08:00
Wesley Liddick
963b3b768c
Merge pull request #825 from FizzlyCode/fix/setup-token-real-utilization
...
fix: Setup Token 账号使用真实 utilization 值替代状态估算
2026-03-06 22:46:20 +08:00
Wesley Liddick
f6709fb5d6
Merge pull request #824 from pkssssss/fix/ws-usage-window-pr
...
fix(openai): 修复 WS 模式下用量窗口不显示
2026-03-06 22:45:36 +08:00
shaw
921599948b
feat: /v1/messages端点适配codex账号池
2026-03-06 22:44:07 +08:00
神乐
5df3cafa99
style(go): format account usage service
2026-03-06 21:31:36 +08:00
神乐
1a2143c1fe
fix(openai): adapt messages path to codex transform signature
2026-03-06 21:17:27 +08:00
神乐
dd25281305
chore(test): resolve merge conflict for ws usage window pr
2026-03-06 21:16:21 +08:00
FizzlyCode
49d0301dde
fix: Setup Token 账号使用真实 utilization 值替代状态估算
...
从响应头 anthropic-ratelimit-unified-5h-utilization 获取并存储真实
utilization 值,解决进度条始终显示 0% 的问题。窗口重置时清除旧值,
避免残留上个窗口的数据。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 21:04:44 +08:00
神乐
d90e56eb45
chore(openai): clean up ws usage window branch
2026-03-06 21:04:24 +08:00
神乐
838ada8864
fix(openai): restore ws usage window display
2026-03-06 20:49:47 +08:00
Elysia
65a106792a
fix issue #791
2026-03-06 20:37:09 +08:00
Elysia
ee4bfcbb81
Merge remote-tracking branch 'origin/main'
2026-03-06 20:37:09 +08:00
Gemini Wen
a087f089b8
fix(account): preserve existing credentials when saving apikey accounts
...
When editing an apikey account, the credentials object was built from
scratch, causing fields like tier_id that are not exposed in the UI to
be silently dropped on save. Spread currentCredentials first so unknown
fields are retained, then let the known fields overwrite them.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-06 20:19:19 +08:00
Wesley Liddick
afbe8bf001
Merge pull request #809 from alfadb/feature/openai-messages
...
feat(openai): 添加 /v1/messages 端点和 API 兼容层
2026-03-06 20:16:06 +08:00
Wesley Liddick
2a3ef0be06
Merge pull request #818 from pkssssss/fix/remote-compact
...
fix(openai): support remote compact task
2026-03-06 19:41:04 +08:00
神乐
3403909354
fix(openai): support remote compact task
2026-03-06 18:51:05 +08:00
Wesley Liddick
005d0c5f53
Merge pull request #815 from mt21625457/pr/openai-user-group-rate-upstream
...
fix(openai): 统一专属倍率计费链路并补齐回归测试
2026-03-06 17:33:09 +08:00
Wesley Liddick
8aaaeb29cc
Merge pull request #813 from FizzlyCode/fix/account-usage-display
...
fix: 修复账号列表五小时用量显示为 $0.00 的问题
2026-03-06 17:25:03 +08:00
yangjianbo
230f8abd04
test(openai): 修复回归测试未使用字段告警
...
移除订阅扣费 stub 中未被使用的状态字段与赋值,
消除 golangci-lint 的 unused 告警,保持回归测试语义不变。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 17:08:41 +08:00
yangjianbo
a18bbb5f2f
fix(openai): 统一专属倍率计费链路并补齐回归测试
...
抽取共享的用户分组专属倍率解析器,统一缓存、singleflight 与回退逻辑。\n\n让 OpenAI 独立计费链路复用专属倍率解析,修复 usage 记录与实际扣费未命中用户专属倍率的问题。\n\n补齐 OpenAI 计费与解析器单元测试,并修复全量回归中暴露的 lint 阻塞项。\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 16:47:51 +08:00
wioos
60fce4f1dc
fix: 修复 lite 模式跳过窗口费用查询导致 $0.00 显示的问题
...
commit 80ae592c 引入 lite 模式优化首次加载性能,但将窗口费用查询也一起跳过了。
commit 491a7444 尝试用 30 秒快照缓存修复,但缓存过期后问题复现。
移除窗口费用查询的 lite/非 lite 区分,始终执行 PostgreSQL 聚合查询。
同时删除不再需要的 account_window_cost_cache.go 文件。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 16:42:12 +08:00
wioos
9af65efcdb
fix: 修复 zh.ts 缺少 protocols 翻译
...
在 admin.proxies 下添加 protocols 对象的中文翻译,
与 en.ts 保持一致。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 16:42:12 +08:00
alfadb
bc194a7d8c
fix: address PR review - Anthropic error format in panic recovery and nil guard
...
- Add recoverAnthropicMessagesPanic for Messages handler to return
Anthropic-formatted errors instead of OpenAI Responses format on panic
- Add nil check for rateLimitService.HandleUpstreamError in
ForwardAsAnthropic to match defensive pattern used elsewhere
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 15:40:15 +08:00
alfadb
ff1f114989
feat(openai): add /v1/messages endpoint and API compatibility layer
...
Add Anthropic Messages API support for OpenAI platform groups, enabling
clients using Claude-style /v1/messages format to access OpenAI accounts
through automatic protocol conversion.
- Add apicompat package with type definitions and bidirectional converters
(Anthropic ↔ Chat, Chat ↔ Responses, Anthropic ↔ Responses)
- Implement /v1/messages endpoint for OpenAI gateway with streaming support
- Add model mapping UI for OpenAI OAuth accounts (whitelist + mapping modes)
- Support prompt caching fields and codex OAuth transforms
- Fix tool call ID conversion for Responses API (fc_ prefix)
- Ensure function_call_output has non-empty output field
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 14:29:22 +08:00
Wesley Liddick
cac230206d
Merge pull request #806 from touwaeriol/fix/openai-passthrough-model-check
...
fix(openai): passthrough accounts bypass model mapping check
2026-03-06 14:09:07 +08:00
erio
79ae15d5e8
fix: OpenAI passthrough accounts bypass model mapping check
...
透传模式账号仅替换认证,应允许所有模型通过。之前调度阶段的
isModelSupportedByAccount 不感知透传模式,导致 model_mapping
中未配置的新模型(如 gpt-5.4)被拒绝返回 503。
2026-03-06 14:01:47 +08:00
shaw
0cce0a8877
chore: gpt-5.4示例配置修改model_reasoning_effort为xhigh
2026-03-06 11:29:43 +08:00
shaw
225fd035ae
chore: 更新codex配置部分支持gpt-5.4的长上下文
2026-03-06 10:55:09 +08:00
Wesley Liddick
fb7d1346b5
Merge pull request #800 from mt21625457/pr/gpt54-support-upstream
...
feat(openai): 增加 GPT-5.4 支持并修复长上下文计费与白名单回归
2026-03-06 10:42:01 +08:00
shaw
491a744481
fix: 修复账号列表首次加载窗口费用显示 $0.00
...
lite 模式下从快照缓存读取窗口费用,非 lite 模式查询后写入缓存
2026-03-06 10:23:22 +08:00
yangjianbo
f366026435
fix(openai): 修复 gpt-5.4 长上下文计费与快照白名单
...
补齐 gpt-5.4 fallback 的长上下文计费元信息,\n确保超过 272000 输入 token 时对整次会话应用\n2x 输入与 1.5x 输出计费规则。\n\n同时将官方快照 gpt-5.4-2026-03-05 加入前端\n白名单候选与回归测试,避免 whitelist 模式误拦截。\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
(cherry picked from commit d95497af87f608c6dadcbe7d6e851de9413ae147)
2026-03-06 10:16:23 +08:00
yangjianbo
1a0d4ed668
feat(openai): 增加 gpt-5.4 模型支持与定价配置
...
- 接入 gpt-5.4 模型识别与规范化,补充默认模型列表
- 增加 gpt-5.4 输入/缓存命中/输出价格与计费兜底逻辑
- 同步前端模型白名单与 OpenCode 上下文窗口(1050000/128000)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
(cherry picked from commit 924476dcac6181cd0f3ee731ec7b73672ff03793)
2026-03-06 10:16:23 +08:00
Wesley Liddick
63a8c76946
Merge pull request #798 from touwaeriol/feature/account-load-factor
...
feat: add account load_factor for scheduling load calculation
2026-03-06 09:42:10 +08:00
Wesley Liddick
f355a68bc9
Merge pull request #796 from touwaeriol/feature/apikey-quota-limit
...
feat: add configurable spending limit for API Key accounts
2026-03-06 09:37:52 +08:00
erio
c87e6526c1
fix: use real Concurrency instead of LoadFactor for metrics and monitoring
...
LoadFactor should only affect scheduling weight, not load rate reporting.
2026-03-06 05:18:45 +08:00
erio
af3a5076d6
fix: add load_factor upper bound validation to BulkUpdateAccounts
2026-03-06 05:17:52 +08:00
erio
18f2e21414
fix: use HTML-safe expressions for @input handlers in Vue templates
...
Replace `<` comparisons with Math.max/ternary+>= to avoid Vue template
parser treating `<` as HTML tag start in attribute values.
2026-03-06 05:07:52 +08:00