Commit Graph

1735 Commits

Author SHA1 Message Date
Wesley Liddick
11a1925a13 Merge pull request #1008 from DragonFSKY/fix/sticky-session-temp-unavailable-fallback [skip ci]
fix: 补全账户临时不可用检查,修复粘性会话不自动切换
2026-02-25 10:29:26 +08:00
谢栋梁
bd437e29f2 fix: 补全账户临时不可用检查,修复粘性会话及池选择不自动切换的问题
_isAccountAvailable()、_getAllAvailableAccounts() 专属账户优先分支、
selectAccountFromGroup() 和 _getAvailableCcrAccounts() 均缺少
isAccountTemporarilyUnavailable() 检查,导致账户被 markTempUnavailable
标记后仍可能被选中,粘性会话不回退、池选择不排除。

本次在所有缺失路径统一补充该检查,与已有的共享池选择逻辑对齐。
2026-02-24 22:26:36 +08:00
github-actions[bot]
5d0c8144dd chore: sync VERSION file with release v1.1.281 [skip ci] v1.1.281 2026-02-24 02:05:39 +00:00
shaw
ba7024a8dc fix: 修复claude code客户端system billing-header部分的判断 2026-02-24 10:05:16 +08:00
Wesley Liddick
8b684117af Merge pull request #996 from yptse123/feat/per-key-weekly-reset-time [skip ci]
feat: add per-API-key weekly cost reset day/hour configuration
2026-02-24 08:53:47 +08:00
Wesley Liddick
0b7a2aa9a2 Merge pull request #981 from codsaf/fix/gemini-stream-usage [skip ci]
fix(gemini): resolve stream usage data loss due to split chunks
2026-02-24 08:53:27 +08:00
Wesley Liddick
66f5208de0 Merge pull request #979 from Jackwwg83/fix/enterprise-profile-account-type [skip ci]
Fix Claude Enterprise account type detection from OAuth profile
2026-02-24 08:52:25 +08:00
Wesley Liddick
4bbe264b8c Merge pull request #965 from bensonz/main [skip ci]
fix: Bedrock compatibility — 修复了 bedrock 不能用的问题. cache_control sanitization, Opus 4.6 mapping, [1m] suffix stripping
2026-02-24 08:45:36 +08:00
Wesley Liddick
ffc7e920c3 Merge pull request #969 from shiiwuz/debug/sticky-session-pick-logging [skip ci]
Sticky session: support OpenClaw prompt_cache_key fallback
2026-02-24 08:40:07 +08:00
Wesley Liddick
5a42294a08 Merge pull request #997 from mylukin/feat/add-gemini-3.1-pro-preview [skip ci]
feat: add gemini-3.1-pro-preview model support
2026-02-24 08:38:48 +08:00
Wesley Liddick
8723c4afa1 Merge pull request #1002 from yuanhaitao/fix/weekly-claude-cost-stats [skip ci]
fix: 修复 Claude 周额度统计范围,从仅 Opus 扩展到全部 Claude 模型
2026-02-24 08:37:57 +08:00
github-actions[bot]
b227617f40 chore: sync VERSION file with release v1.1.280 [skip ci] v1.1.280 2026-02-24 00:31:36 +00:00
Wesley Liddick
259e2aefbb Merge pull request #991 from DragonFSKY/fix/403-permission-error-ban-detection
fix: 识别 403 permission_error 为账号封禁状态,避免 30 分钟无限循环
2026-02-24 08:31:16 +08:00
Wesley Liddick
5730542294 Merge pull request #986 from sususu98/fix/error-sanitizer-upstream-format [skip ci]
fix: errorSanitizer 无法识别 Anthropic 错误格式导致 400 误映射为 E015/500
2026-02-24 08:30:55 +08:00
Wesley Liddick
e0d36fcfdd Merge pull request #952 from sczheng189/feature/claude_price_count [skip ci]
feat: 1m上下文计费,1h计费
2026-02-24 08:30:37 +08:00
sczheng189
823693afda 格式化 2026-02-23 23:27:19 +08:00
sczheng189
93b655d65c Revert "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"
This reverts commit f444af49bf.
2026-02-23 21:23:38 +08:00
sczheng189
6e7c3b2fb6 Merge remote-tracking branch 'upstream/main' into feature/claude_price_count 2026-02-23 21:21:11 +08:00
sczheng189
bfae62bfeb feat: 添加对 ephemeral 5m 和 1h 令牌的支持,优化费用计算逻辑 2026-02-23 21:20:18 +08:00
sczheng189
5376428dd9 fix: 添加对 ephemeral 5m 和 1h 令牌的支持,优化费用计算逻辑 2026-02-23 20:12:42 +08:00
yuanhaitao
67a81e4941 fix: 修复 Claude 周额度统计范围,从仅 Opus 扩展到全部 Claude 模型
- 将 isOpusModel 替换为 isClaudeFamilyModel,使周额度限制覆盖所有 Claude 系列模型
- 前端 ApiKeysView 新增 Claude 周限制进度条显示
- 修复"无任何限制"提示在有周限制时仍然显示的问题

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 16:02:26 +08:00
Lukin
9bf52c67b1 feat: add gemini-3.1-pro-preview model support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:12:17 +08:00
yptse123
955b2af08e feat: add per-API-key weekly cost reset day/hour configuration
Allow each API key to configure its own weekly reset day (1-7, Mon-Sun)
and hour (0-23) so the relay service's weekly limit tracking can align
with upstream Claude account reset schedules instead of using a fixed
Monday 00:00 boundary for all keys.
2026-02-22 17:56:42 +08:00
bensonz
9256d02e89 fix: ESLint errors in _sanitizeCacheControl — strict equality and curly braces
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 12:11:07 +08:00
谢栋梁
ce7df12281 fix: 识别 403 permission_error 为账号封禁状态,避免 30 分钟无限循环
Claude 封禁账号后返回 HTTP 403 + permission_error:
"OAuth authentication is currently not allowed for this organization."

原有的 _isOrganizationDisabledError 只检测 HTTP 400,无法识别该错误。
且 else if 分支中通用 403 在 organizationDisabledError 之前,
即使修改函数也会被截断。

修复内容:
1. _isOrganizationDisabledError 兼容 403 + permission_error 场景
2. 非流式路径:将 organizationDisabledError 检测提前到通用 403 之前
3. 流式路径:在 403 分支内部优先判断是否为封禁性质的 403

Closes #990
2026-02-18 18:09:49 +08:00
sczheng189
3b25cf01ad feat: 添加 Claude 计费特性和请求元信息支持,优化长上下文计费逻辑 2026-02-14 21:32:09 +08:00
Anonymous Contributor
3f81afabce style(gemini): apply linter fixes for code quality check 2026-02-14 15:54:27 +08:00
Anonymous Contributor
3f0dabc5fa fix(gemini): resolve incomplete fix and race conditions in usage capture 2026-02-14 15:44:25 +08:00
sususu
8f88cf8e91 fix: 修复上游400错误被错误映射为E015/500的问题
extractOriginalMessage 未处理 Anthropic 错误格式 {"error":{"message":"..."}},
导致消息提取为空,所有上游 400 错误回退为默认的 E015 Internal server error。

- 新增 error.error?.message 路径检查
- ERROR_MATCHERS 增加 invalid.*argument 匹配 INVALID_ARGUMENT 错误
2026-02-14 15:02:22 +08:00
Jackwwg83
a8afb1523b style: format enterprise profile mapping line for prettier 2026-02-14 10:22:03 +08:00
github-actions[bot]
d6ced986b6 chore: sync VERSION file with release v1.1.279 [skip ci] v1.1.279 2026-02-13 16:41:43 +00:00
Wesley Liddick
91ee5299ba Merge pull request #983 from Wei-Shaw/revert-982-feat/add-gpt-5.3-codex-spark
Revert "feat: add gpt-5.3-codex-spark model support"
2026-02-14 00:41:27 +08:00
Wesley Liddick
3680153d3f Merge branch 'main' into revert-982-feat/add-gpt-5.3-codex-spark 2026-02-14 00:41:16 +08:00
Wesley Liddick
7331945034 Revert "feat: add gpt-5.3-codex-spark model support" 2026-02-14 00:40:37 +08:00
github-actions[bot]
d0931968b5 chore: sync VERSION file with release v1.1.278 [skip ci] v1.1.278 2026-02-13 16:40:05 +00:00
Wesley Liddick
ef422c05b3 Merge pull request #982 from mylukin/feat/add-gpt-5.3-codex-spark
feat: add gpt-5.3-codex-spark model support
2026-02-14 00:39:51 +08:00
Wesley Liddick
a99dd48170 Merge pull request #971 from daheli/fix/increase-stream-watchdog-timeout [skip ci]
fix: increase stream watchdog timeout from 45s to 90s
2026-02-14 00:38:42 +08:00
Wesley Liddick
f695466ff8 Merge pull request #980 from mylukin/fix/patch-orphaned-tool-use [skip ci]
fix: patch orphaned tool_use blocks missing tool_result in Claude relay
2026-02-13 20:15:16 +08:00
Lukin
b08c34e40a feat: add gpt-5.3-codex-spark model support
Add gpt-5.3-codex-spark to model service and config.
Also add gpt-5.3-codex to model service (was only in config).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 16:26:53 +08:00
Anonymous Contributor
29d36bdf14 fix(gemini): handle split chunks correctly in stream usage capture 2026-02-13 15:11:10 +08:00
Lukin
abc66cc86f 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:42:48 +08:00
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
Jackwwg83
0dacab0d51 Merge remote-tracking branch 'upstream/main' into fix/enterprise-profile-account-type 2026-02-13 10:31:09 +08:00
Jackwwg83
a011595581 Fix enterprise profile mapping for Claude OAuth account type 2026-02-13 10:05:53 +08:00
github-actions[bot]
25cbcd313b chore: sync VERSION file with release v1.1.277 [skip ci] 2026-02-12 15:42:52 +00:00
Lukin
bf847b8aaf ci: remove Docker Hub, use only GHCR for releases
- Remove Docker Hub login step
- Remove docker.io image tags from build
- Update Telegram notification to show only GHCR images
2026-02-12 23:41:27 +08:00
github-actions[bot]
bdecbdedae chore: sync VERSION file with release v1.1.276 [skip ci] 2026-02-12 15:37:51 +00:00
Lukin
647420b10c Merge fix for Console API system role handling 2026-02-12 23:32:31 +08:00
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
Lukin
8a78f96564 ci: configure workflow for GHCR-only releases
- Remove Docker Hub dependency, use only GitHub Container Registry
- Update image naming logic for personal fork
- Simplify release notes to show GHCR images only
2026-02-12 23:31:02 +08:00