Commit Graph

1156 Commits

Author SHA1 Message Date
rxchi1d
4d380e03f1 docs: update Cherry Studio integration guide
Update Claude Sonnet model ID to claude-sonnet-4-5-20250929 (v4.5) and
fix API endpoint formats for Cherry Studio compatibility. Remove
trailing slashes from all endpoint URLs to allow Cherry Studio to
automatically append v1 version parameter.

Add important notes about Cherry Studio URL format requirements,
explaining that URLs without trailing slashes and URLs with /v1/
suffix are equivalent, while URLs with single trailing slash will
ignore the v1 version.

Changes:
- Update Claude Sonnet model from claude-sonnet-4-20250514 to
  claude-sonnet-4-5-20250929
- Fix Claude endpoint: /claude/ → /claude
- Fix Gemini endpoint: /gemini/ → /gemini
- Fix Codex endpoint: /openai/ → /openai
- Add URL format explanation and best practices section

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 15:22:00 +08:00
jft0m
530dac0e7f refactor: 重构 handleChatCompletions 函数模块化
- 使用策略模式处理不同后端(Claude/OpenAI/Gemini)
- 添加 OpenAI chat/completions 兼容支持
2025-10-04 14:11:13 +08:00
github-actions[bot]
1fdfce1e4f chore: sync VERSION file with release v1.1.162 [skip ci] 2025-10-04 03:53:47 +00:00
shaw
2872198259 chore: claude绑定账号响应限流提示 2025-10-04 11:31:21 +08:00
shaw
cd72a29674 chore: opus周限提示增加重置时间 2025-10-04 11:10:55 +08:00
shaw
d44582dc31 feat: 适配claude新opus周限规则 2025-10-04 10:49:40 +08:00
sususu98
57e75cd526 fix: 用户登录接口在开发环境 404 错误
修复 user.js 中未使用 API_PREFIX 导致的路径问题。
  现在开发环境正确使用 /webapi 前缀进行代理转发。
2025-10-03 22:34:31 +08:00
shaw
bda1875466 Merge PR #507: add rate limit recovery notifications 2025-10-03 22:25:46 +08:00
shaw
06a3aff069 Merge PR #506: limit 5-hour warning notifications 2025-10-03 22:25:40 +08:00
wfunc
a3666e3a3e feat: add rate limit recovery webhook notifications
添加限流恢复的 webhook 通知功能,当账户从限流状态自动恢复时发送通知。

主要改进:

1. **新增通知类型** (webhookConfigService.js)
   - 添加 `rateLimitRecovery` 通知类型
   - 在配置获取和保存时自动合并默认通知类型
   - 确保新增的通知类型有默认值

2. **增强限流清理服务** (rateLimitCleanupService.js)
   - 改进自动停止账户的检测逻辑
   - 在 `finally` 块中确保 `clearedAccounts` 列表被重置,避免重复通知
   - 对自动停止的账户显式调用 `removeAccountRateLimit`
   - 为 Claude 和 Claude Console 账户添加 `autoStopped` 和 `needsAutoStopRecovery` 检测

3. **改进 Claude Console 限流移除** (claudeConsoleAccountService.js)
   - 检测并恢复因自动停止而禁用调度的账户
   - 清理过期的 `rateLimitAutoStopped` 标志
   - 增加详细的日志记录

4. **前端 UI 支持** (SettingsView.vue)
   - 在 Webhook 设置中添加"限流恢复"通知类型选项
   - 更新默认通知类型配置

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-02 23:54:30 +08:00
wfunc
ea0f818251 feat(claude): limit 5-hour warning notifications to prevent spam
## Problem
- Original implementation sends webhook notification on EVERY request when
  account reaches 5-hour limit warning status
- Users receive hundreds of duplicate notifications within same 5-hour window

## Solution
- Add `maxFiveHourWarningsPerWindow` config (default: 1, max: 10)
- Track warning count per session window with metadata:
  - fiveHourWarningWindow: identifies current window
  - fiveHourWarningCount: tracks notifications sent
  - fiveHourWarningLastSentAt: last notification timestamp
- Only send notification if count < max limit
- Auto-reset counters when entering new 5-hour window

## Changes
- Add warning limit control in constructor
- Add `_clearFiveHourWarningMetadata()` helper method
- Update `updateSessionWindowStatus()` with notification throttling
- Clear warning metadata on window refresh and manual schedule recovery

## Configuration
- Environment: CLAUDE_5H_WARNING_MAX_NOTIFICATIONS (1-10)
- Config: config.claude.fiveHourWarning.maxNotificationsPerWindow
- Default: 1 notification per window

## Testing
- Tested with accounts reaching 5h limit
- Verified single notification per window
- Confirmed counter reset on new window
2025-10-02 23:31:52 +08:00
github-actions[bot]
7183903147 chore: sync VERSION file with release v1.1.161 [skip ci] 2025-10-02 13:19:47 +00:00
shaw
fe894cc07a docs: issue-501 2025-10-02 19:25:59 +08:00
shaw
3f79e56209 Merge remote-tracking branch 'origin/dev' into dev 2025-10-02 18:37:26 +08:00
shaw
9148913ca4 feat: 增加Oauth Claude账户usage接口缓存 2025-10-02 18:35:41 +08:00
shaw
5024628fa6 Merge branch 'pr-503' into dev 2025-10-02 18:04:11 +08:00
shaw
7d1608edfe Merge pull request #505 from Wei-Shaw/20251002_45_fix 2025-10-02 17:35:04 +08:00
Wesley Liddick
4eddfd99dd Merge pull request #495 from geminiwen/dev
fix: 修复统一客户端标识的布尔值判断
2025-10-02 17:15:29 +08:00
duyaoguang
7fd5224e0a fix: 🐛 fee calc fix 2025-10-02 13:09:19 +08:00
iaineng
782e912a0d fix(oauth): auto-refresh expired tokens in fetchOAuthUsage
Replace direct token decryption with getValidAccessToken call to
enable automatic token expiration check and refresh. This fixes
authentication_error when fetching OAuth usage data with expired
access tokens.
2025-10-01 11:59:03 +08:00
iaineng
e88f07ca92 feat(ui): add OAuth usage display alongside Setup Token
Add OAuth usage visualization for Claude OAuth accounts while maintaining
existing Setup Token session window display. Accounts show different UI
based on authorization type detected via scopes.

Changes:
- Add loadClaudeUsage() for async OAuth usage data loading
- Add isClaudeOAuth() to detect auth type (checks user:profile + user:inference scopes)
- Add OAuth helpers: formatClaudeUsagePercent, getClaudeUsageWidth,
  getClaudeUsageBarClass, formatClaudeRemaining
- Display three OAuth windows (5h, 7d, 7d-Opus) for OAuth accounts
- Maintain original session window display for Setup Token accounts
- Color-coded progress bars (blue < 60%, yellow 60-90%, red >= 90%)
- Update tooltip with OAuth documentation
- Remove duplicate Claude fallback branch
- Apply to desktop and mobile views
2025-09-30 22:52:08 +08:00
iaineng
11c214449f feat(api): add Claude OAuth usage endpoint with async loading
Add dedicated API endpoint to fetch Claude account OAuth usage data
asynchronously, improving user experience by eliminating the need for
multiple page refreshes to view session window statistics.

Backend changes:
- Add GET /admin/claude-accounts/usage endpoint for batch fetching
- Implement fetchOAuthUsage() to call Claude API /api/oauth/usage
- Add buildClaudeUsageSnapshot() to construct frontend data structure
- Add updateClaudeUsageSnapshot() to persist data to Redis
- Add _toNumberOrNull() helper for safe type conversion
- Update getAllAccounts() to return claudeUsage from Redis cache

Data structure:
- Store three window types: 5h, 7d, 7d-Opus
- Track utilization percentage and reset timestamps
- Calculate remaining seconds for each window

Performance optimizations:
- Concurrent batch requests using Promise.allSettled
- Graceful error handling per account
- Non-blocking async execution
2025-09-30 22:51:54 +08:00
Gemini Wen
87bd54d9ea fix: 修复统一客户端标识的布尔值判断
将 useUnifiedClientId 的判断从直接布尔值比较改为字符串 'true' 比较,修复配置值为字符串时的判断问题。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 13:01:54 +08:00
github-actions[bot]
3e348cb7c8 chore: sync VERSION file with release v1.1.160 [skip ci] 2025-09-30 03:30:19 +00:00
shaw
fcf54565ec chore: 其他文件修改
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 11:25:43 +08:00
shaw
4ab91f233f refactor: 使用 claudeCodeValidator 统一验证逻辑
替换 _hasClaudeCodeSystemPrompt 方法,改用 claudeCodeValidator

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 11:25:35 +08:00
shaw
66b9b391d9 feat: 添加 Claude Agent SDK 系统提示词
新增 claudeOtherSystemPrompt3 支持 Agent SDK 格式

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 11:25:26 +08:00
shaw
4ad1ccc22c fix: 适配 claude-vscode 客户端
扩展正则表达式以支持 claude-cli/2.0.0 (external, claude-vscode)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 11:25:18 +08:00
shaw
c62b397fde docs: 更新vscode使用参数配置 [skip ci] 2025-09-30 09:31:02 +08:00
github-actions[bot]
29ee52ee2e chore: sync VERSION file with release v1.1.159 [skip ci] 2025-09-29 06:49:09 +00:00
shaw
c19acf2b01 fix: contents.js依赖改为CommonJS 2025-09-29 14:48:43 +08:00
github-actions[bot]
f8f0a7042e chore: sync VERSION file with release v1.1.158 [skip ci] 2025-09-29 06:36:44 +00:00
shaw
e705a3b16c fix: 补充pr-487依赖 2025-09-29 14:11:00 +08:00
shaw
973e51e6a7 Merge branch 'qyinter/main' into dev 2025-09-29 14:01:57 +08:00
千羽
3e69f17330 feat: 重构和更新 Claude Code 验证器组件
- 重构 src/utils/contents.js,添加完整的 prompt 定义和相似度检测功能
- 删除重复的 src/utils/text-similarity.js 文件
- 更新 claudeCodeValidator.js 中的验证逻辑和错误处理

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 14:39:29 +09:00
github-actions[bot]
286a269446 chore: sync VERSION file with release v1.1.157 [skip ci] 2025-09-28 15:36:42 +00:00
shaw
f0b7f5066c Merge branch 'dev' 2025-09-28 23:35:13 +08:00
shaw
b4d7ed06c5 fix: 修复5小时限制被停止调度未恢复的问题 2025-09-28 23:30:41 +08:00
shaw
aca2b1cccb feat: 账号列表支持批量删除 2025-09-28 21:43:57 +08:00
shaw
506bd5a205 fix: 修复redis密码传参问题 2025-09-28 15:52:33 +08:00
shaw
323f3ab6c4 style: api-stats布局优化 2025-09-28 15:43:37 +08:00
shaw
5e015e87e0 style: 优化api-stats布局 2025-09-28 14:54:24 +08:00
shaw
b123cc35c1 feat: api-stats页面查询专属账号会话窗口 2025-09-28 14:36:38 +08:00
shaw
90dce32cfc fix: 优化并发限制数的控制逻辑 2025-09-28 13:58:59 +08:00
shaw
5ce385d2bc fix: 修复账号筛选平台是oai显示异常 2025-09-28 11:53:46 +08:00
shaw
a12e076413 fix: 修复账号筛选平台是oai显示异常 2025-09-28 11:47:05 +08:00
shaw
3077c3d789 docs: codex配置说明优化 2025-09-28 10:53:57 +08:00
shaw
b9c606e82e Merge pr-484 2025-09-28 09:57:40 +08:00
shaw
ca2a12e7e8 Merge branch 'pr-484' into dev 2025-09-28 09:49:10 +08:00
shaw
e197fbdf80 Merge branch 'pr-485' into dev 2025-09-28 09:45:03 +08:00