Commit Graph

1676 Commits

Author SHA1 Message Date
Lukin
feb8d3974d fix: patch orphaned tool_use blocks missing tool_result in Claude relay
Clients (e.g. opencode) may truncate conversation history in long sessions, leaving tool_use blocks without corresponding tool_result. The upstream Claude API strictly validates this pairing and returns 400. This adds _patchOrphanedToolUse() to claudeRelayService._processRequestBody(), which detects orphaned tool_use IDs and synthesizes error tool_result blocks — the same approach already used in anthropicGeminiBridgeService for the Antigravity path.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-13 11:41:39 +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