Commit Graph

1676 Commits

Author SHA1 Message Date
Lukin
fe52a62cda fix(console): transform system role messages for Console API compatibility
Claude Console API (e.g., GLM accounts) does not accept messages with
role='system' in the messages array, returning 422 error:
"Input should be 'user' or 'assistant'"

This fix automatically transforms system messages by merging them into
the first user message's content, maintaining compatibility with clients
like opencode that send system role messages.

Changes:
- Add _transformSystemMessages() method to merge system content into user messages
- Apply transformation in both relayRequest() and relayStreamRequestWithUsageCapture()
- Only affects claude-console account type, no impact on official API

Fixes issues where opencode users get 422 errors when using Console API accounts.
2026-02-12 23:32:26 +08:00
github-actions[bot]
02e82cd245 chore: sync VERSION file with release v1.1.274 [skip ci] v1.1.274 2026-02-10 11:15:57 +00:00
Wesley Liddick
5fd834857e Merge pull request #966 from TyrantLucifer/fix-cluade-opus-limit
fix: update the claude model limit logic
2026-02-10 19:15:41 +08:00
github-actions[bot]
0efb634988 chore: sync VERSION file with release v1.1.273 [skip ci] v1.1.273 2026-02-10 11:12:22 +00:00
shaw
0cdfd65142 Merge branch 'main' into feat/oai_optimize 2026-02-10 19:09:59 +08:00
tyrantlucifer
f444af49bf fix: update the limit logic, and if the daily limit is not reached after reaching the opus weekly limit, other claude models can be used 2026-02-10 14:17:36 +08:00
github-actions[bot]
00a954c7e9 chore: sync VERSION file with release v1.1.272 [skip ci] v1.1.272 2026-02-10 03:22:22 +00:00
shaw
4ed0108a9c fix: 移除特定system以适配新版cc客户端缓存失效的bug 2026-02-10 11:22:02 +08:00
SunSeekerX
cc82e071dc 1 2026-02-09 22:14:34 +08:00
SunSeekerX
c21997b7f4 1 2026-02-09 22:06:15 +08:00
SunSeekerX
29f2c4aba1 1 2026-02-09 20:33:04 +08:00
SunSeekerX
a08d51ba57 1 2026-02-09 20:24:38 +08:00
SunSeekerX
4637ee03b1 Merge branch 'main' into feat/oai_optimize 2026-02-09 18:17:28 +08:00
SunSeekerX
a119cb1744 1 2026-02-09 18:13:45 +08:00
github-actions[bot]
aa7bc00552 chore: sync VERSION file with release v1.1.271 [skip ci] v1.1.271 2026-02-09 08:31:49 +00:00
shaw
b66d65d50f fix: 修复openai账号多分组保存问题 2026-02-09 16:31:31 +08:00
github-actions[bot]
61e772fd95 chore: sync VERSION file with release v1.1.270 [skip ci] v1.1.270 2026-02-07 11:29:06 +00:00
shaw
21fd4113c8 feat: 新增opus4.6支持 2026-02-07 19:28:42 +08:00
shaw
d2a2505f01 docs: update readme 2026-02-07 16:38:42 +08:00
github-actions[bot]
7a957f0f6e chore: sync VERSION file with release v1.1.269 [skip ci] v1.1.269 2026-02-06 03:12:30 +00:00
Wesley Liddick
20db21f99d Merge pull request #947 from sczheng189/main
MOD: API-Key详情页限制的显示补充 + claude周费用补充注解以及修改
2026-02-06 11:12:12 +08:00
github-actions[bot]
18dbc29a26 chore: sync VERSION file with release v1.1.268 [skip ci] 2026-02-05 03:46:09 +00:00
sczheng
d224a7f4c1 fix: 修复速率限制的使用次数显示问题 2026-02-05 11:43:53 +08:00
shaw
1ff0d84e21 chore: update readme 2026-02-04 14:51:54 +08:00
github-actions[bot]
a1b695510b chore: sync VERSION file with release v1.1.268 [skip ci] v1.1.268 2026-01-30 01:33:26 +00:00
shaw
f96e21c615 chore: upgrade Antigravity User-Agent to 1.15.8 2026-01-30 09:33:04 +08:00
Wesley Liddick
6a45af3d0d Merge pull request #933 from foamzou/patch-1 [skip ci]
Fix API endpoint for exchanging setup token
2026-01-30 09:31:04 +08:00
foam
c2351e03f8 Fix API endpoint for exchanging setup token 2026-01-29 15:22:15 +08:00
sczheng
88c96f8813 Merge remote-tracking branch 'upstream/main' 2026-01-27 22:21:51 +08:00
shaw
2c2039d1a1 docs: update readme 2026-01-27 14:48:52 +08:00
shaw
56eb7c3c7d docs: update readme 2026-01-27 14:46:22 +08:00
github-actions[bot]
03dfedc3d9 chore: sync VERSION file with release v1.1.267 [skip ci] v1.1.267 2026-01-25 05:12:51 +00:00
Wesley Liddick
866806301f Merge pull request #924 from DaydreamCoding/feat/codex_exec
feat(codex): 添加 codex_exec 用户代理支持
2026-01-25 13:12:37 +08:00
QTom
816c47b51d feat(codex): 添加 codex_exec 用户代理支持
支持 Codex CLI 的非交互式/脚本模式(codex exec),使其与 codex_vscode 和 codex_cli_rs 共享相同的验证逻辑和权限配置。修复 codex exec 0.89.0 版本因客户端限制导致的 403 错误。
2026-01-25 12:24:19 +08:00
github-actions[bot]
c97bfb6478 chore: sync VERSION file with release v1.1.266 [skip ci] v1.1.266 2026-01-24 12:22:09 +00:00
Wesley Liddick
efda870e96 Merge pull request #923 from DaydreamCoding/feature/fix_api_auth
fix(auth): 修复客户端限制绕过漏洞,添加路径白名单检查
2026-01-24 20:21:52 +08:00
Wesley Liddick
1ae310f2a1 Merge pull request #920 from arksou/main [skip ci]
fix: 配额超限优化
2026-01-24 20:21:34 +08:00
QTom
6dc85b39c9 refactor(validators): 消除重复代码,使用映射表和复用函数
代码审查后的重构:
- isPathAllowedForClient 复用 getClientDefinitionById 避免重复查找
- validateRequest 中使用 getClientDefinitionById 替代内联查找
- 使用 VALIDATOR_MAP 映射表替代 switch 语句
- getSupportedClients 改为从映射表动态获取,避免硬编码
- 导入 CLIENT_IDS 枚举,提高类型安全性

这些改动提高了代码的可维护性,添加新客户端时只需修改映射表。
2026-01-24 17:45:13 +08:00
QTom
6c4670213e fix(auth): 修复客户端限制绕过漏洞,添加路径白名单检查
当 API Key 启用客户端限制(如仅允许 Claude Code)时,攻击者可通过
/api/v1/chat/completions 等 OpenAI 兼容端点绕过验证。原因是
ClaudeCodeValidator 对非 messages 路径仅检查 User-Agent。

修复方案:
- 为每个客户端类型定义允许的路径白名单
- 在客户端验证前进行路径检查
- 路径不在白名单中则直接拒绝,无需继续验证

修改文件:
- src/validators/clientDefinitions.js:添加 allowedPathPrefixes 配置
- src/validators/clientValidator.js:添加路径白名单前置检查

Claude Code 限制时的路由保护:
- 允许访问:/api/v1/messages, /claude/v1/messages 等原生端点
- 拒绝访问:/api/v1/chat/completions, /openai/claude/v1/chat/completions 等
- 其他客户端类型(Gemini CLI、Codex CLI、Droid CLI)也同样适用

相关问题:/api/v1/chat/completions 端点在启用 Claude Code 限制后
依然可以使用,深入分析原因并提供修复方案 #security #client-restriction
2026-01-24 17:37:42 +08:00
gaozitian
d16b75293d fix: optimize Claude Console quota exceeded status display
- Keep account status as 'active' when quota exceeded (not 'quota_exceeded')
- Keep isActive as true, only use quotaStoppedAt to mark quota exceeded
- Show green status in UI for quota exceeded accounts (normal state)
- Show '余额不足' as unschedulable reason instead of '已暂停'
- Simplify resetDailyUsage() to only check quotaStoppedAt field

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 12:06:09 +08:00
github-actions[bot]
2ac31a5706 chore: sync VERSION file with release v1.1.265 [skip ci] v1.1.265 2026-01-23 11:16:24 +00:00
Wesley Liddick
a3a922ac09 Merge pull request #919 from arksou/hotfix/claude-console-quota-exceeded-recovery
fix: Claude Console 配额超限状态优化,支持主动自动恢复
2026-01-23 19:16:10 +08:00
Wesley Liddick
0073d40299 Merge pull request #916 from enzyme2013/fix/allow-new-session-after-clear [skip ci]
fix: allow new session binding after /clear command
2026-01-23 19:15:59 +08:00
jett.gao
d812af9159 fix: Claude Console 配额超限状态优化,支持主动自动恢复
- 新增 rateLimitCleanupService 配额超限恢复检查(每5分钟)
- 调度器预检查配额超限账户,到达重置时间自动恢复
- 前端显示"余额不足"替代默认的"手动停止调度"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 18:19:34 +08:00
github-actions[bot]
4ed5cc631a chore: sync VERSION file with release v1.1.264 [skip ci] v1.1.264 2026-01-23 02:41:20 +00:00
Wesley Liddick
4019b043ec Merge pull request #918 from Chapoly1305/fix/crypto-import
fix: add missing crypto module import in geminiAccountService
2026-01-23 10:41:04 +08:00
Junming Chen
9d70110139 fix: add missing crypto module import in geminiAccountService 2026-01-22 21:32:49 -05:00
sczheng
c0c944f904 mod: 补充API KEY详情页进度条 2026-01-23 09:54:00 +08:00
github-actions[bot]
2180c42b84 chore: sync VERSION file with release v1.1.263 [skip ci] v1.1.263 2026-01-22 13:57:22 +00:00
Wesley Liddick
0883bb6b39 Merge pull request #859 from SunSeekerX/feat/optimize
feat: 大规模性能优化 - Redis Pipeline 批量操作、索引系统、连接池优化
2026-01-22 21:57:07 +08:00