Wesley Liddick
|
4592773ea2
|
Merge pull request #381 from Edric-Li/fix/dedicated-account-schedulable-check
fix: 修复专属账号停止调度后仍能使用的问题
|
2025-09-09 12:19:41 +08:00 |
|
Wesley Liddick
|
da744528bc
|
Merge pull request #383 from Edric-Li/feature/smtp-notification
feat: 添加SMTP邮件通知功能
|
2025-09-09 12:19:26 +08:00 |
|
Edric Li
|
f375f9f841
|
fix: 修复 ESLint 错误 - 解决未定义变量问题
- claudeConsoleRelayService.js: 将 account 变量声明提到更高作用域
- claudeRelayService.js: 移除 _makeClaudeStreamRequest 函数中的未定义变量引用
|
2025-09-09 11:10:27 +08:00 |
|
Edric Li
|
52820a7e49
|
style: 修复 Prettier 格式问题
- 格式化 src/app.js
- 格式化 src/services/claudeConsoleRelayService.js
- 格式化 src/services/claudeRelayService.js
|
2025-09-09 04:14:27 +08:00 |
|
Edric Li
|
283362acd0
|
feat: 添加SMTP邮件通知功能
新增功能:
- 支持SMTP邮件通知平台,可通过邮件接收系统通知
- 支持配置SMTP服务器、端口、用户名、密码、发件人和收件人
- 支持TLS/SSL加密连接
- 提供美观的HTML邮件模板和纯文本备用格式
代码优化:
- 重构邮件格式化逻辑,提取buildNotificationDetails减少重复代码
- 优化前端表单验证逻辑,提取validatePlatformForm统一验证
- 清理UI中的冗余提示信息和配置项
UI改进:
- 移除SMTP配置说明文字
- 移除超时设置和忽略TLS证书验证选项
- 简化测试成功提示消息
- SMTP平台显示收件人邮箱而非URL
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-09 04:00:35 +08:00 |
|
Edric Li
|
756918b0ce
|
feat: 在错误日志中添加账号信息
- 在 claudeRelayService.js 的所有错误日志中添加账号名称或 ID
- 在 claudeConsoleRelayService.js 的错误日志中添加账号信息
- 便于排查 529 (过载) 和 504 (超时) 错误对应的具体账号
问题背景:
用户反馈错误日志中没有账号信息,无法定位是哪个账号出现问题,
特别是 529 和 504 错误频繁出现时难以排查。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-09 02:45:47 +08:00 |
|
Edric Li
|
4c2660a2d3
|
fix: 修复专属账号停止调度后仍能使用的问题
- 在 selectAccountForApiKey 方法中为所有专属账号类型添加 schedulable 检查
- 在 _getAllAvailableAccounts 方法中为所有专属账号类型添加 schedulable 检查
- 改进日志输出,显示账号不可用的具体原因(isActive、status、schedulable 状态)
问题描述:
当 Claude Console/OAuth/Bedrock 账号设置为专属账号并停止调度(schedulable=false)后,
系统仍然会使用该账号,没有正确回退到账号池。
修复内容:
1. Claude OAuth 账号:添加 this._isSchedulable(boundAccount.schedulable) 检查
2. Claude Console 账号:添加 this._isSchedulable(boundConsoleAccount.schedulable) 检查
3. Bedrock 账号:添加 this._isSchedulable(boundBedrockAccountResult.data.schedulable) 检查
兼容性:
_isSchedulable 方法已处理向后兼容,当 schedulable 字段为 undefined/null 时默认返回 true
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-09 02:33:50 +08:00 |
|
Edric Li
|
908e323db0
|
feat: 为普通Claude账户添加529错误处理功能
- 添加可配置的529错误处理机制,通过CLAUDE_OVERLOAD_HANDLING_MINUTES环境变量控制
- 支持流式和非流式请求的529错误检测
- 自动标记过载账户并在指定时间后恢复
- 成功请求后自动清除过载状态
- 默认禁用,需手动配置启用(0表示禁用,>0表示过载持续分钟数)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-09 00:46:40 +08:00 |
|
shaw
|
7f8fae70e6
|
fix: azure转发问题修复
|
2025-09-08 17:26:14 +08:00 |
|
shaw
|
fec80a16fa
|
fix: 优化请求超时配置
|
2025-09-08 16:34:27 +08:00 |
|
shaw
|
399e6b9d8c
|
fix: 优化codex 429限流显示为恩替
|
2025-09-08 16:34:26 +08:00 |
|
Wesley Liddick
|
5c8136ddd4
|
Merge branch 'dev' into main
|
2025-09-08 16:14:54 +08:00 |
|
Edric Li
|
8cb9f52c1a
|
feat: 优化粘性会话TTL管理策略
- 将TTL默认值从15天改为1小时,更适合短期会话场景
- 将续期阈值默认设为0,默认不自动续期,提高控制精度
- 时间单位从天调整为小时/分钟,提供更细粒度的控制
- 添加环境变量配置支持:STICKY_SESSION_TTL_HOURS 和 STICKY_SESSION_RENEWAL_THRESHOLD_MINUTES
- 保持向后兼容性,所有现有部署将自动使用新的默认值
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-08 16:06:12 +08:00 |
|
Edric Li
|
3aa7c89e25
|
feat: 完全移除 API Key 图标功能
彻底删除 API Key 图标功能的所有相关代码:
前端改动:
- 删除 IconPicker.vue 组件文件
- 移除 ApiKeysView.vue 中的图标显示和 updateApiKeyIcon 方法
- 清理 CreateApiKeyModal.vue 中的图标选择器
- 清理 EditApiKeyModal.vue 中的图标选择器
- 移除所有 IconPicker 组件的引用
后端改动:
- 从 apiKeyService.js 中移除 icon 字段更新支持
- 从 admin.js 路由中移除 icon 参数处理和验证逻辑
- 清理创建和更新 API Key 时的 icon 参数
此改动简化了 API Key 管理界面,移除了不必要的图标功能。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-08 16:06:12 +08:00 |
|
Edric Li
|
b46ccb10d0
|
Revert "feat: 实现基于日费用的智能负载均衡策略"
This reverts commit 8976c470e584f1179bcfb30c4856aa6b76633484.
|
2025-09-08 16:06:12 +08:00 |
|
Edric Li
|
f51d345ad9
|
Revert "feat: 将费用优先调度逻辑集成到 UnifiedClaudeScheduler"
This reverts commit 1a5b3b614961e889a0700809e3e86b08eccb5e19.
|
2025-09-08 16:06:12 +08:00 |
|
Edric Li
|
bd2f25dc19
|
feat: 将费用优先调度逻辑集成到 UnifiedClaudeScheduler
- 替换 _sortAccountsByPriority 为 _sortAccountsByCost 方法
- 支持多种账户类型的费用获取(claude-official、claude-console、bedrock)
- 实现智能降级机制:费用获取失败时自动回退到优先级排序
- 排序优先级:日费用 → 账户优先级 → 最后使用时间
- 添加详细的费用排名调试日志
- 确保所有 API 调用都使用费用优化的账户选择策略
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-08 16:06:12 +08:00 |
|
Edric Li
|
cc27b377d8
|
feat: 实现基于日费用的智能负载均衡策略
- 新增 sortAccountsByCost() 方法,支持按日费用排序账号
- 修改账号选择逻辑从时间排序改为费用排序
- 添加多层容错机制:单账号失败、全局失败、方法异常
- 费用获取失败的账号设为最低优先级,避免故障传播
- 费用相同时仍按时间排序,保持负载均衡
- 增强日志输出,显示账号费用排名和选中账号费用
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-08 16:06:12 +08:00 |
|
Edric Li
|
9cbf3195e0
|
feat: 优化粘性会话TTL管理策略
- 将默认TTL从1小时延长至15天,更适合长期项目开发
- 实现智能续期机制:剩余时间<14天时自动续期到15天
- 添加配置化支持:通过环境变量STICKY_SESSION_TTL_DAYS和STICKY_SESSION_RENEWAL_THRESHOLD_DAYS调整TTL策略
- 集成到所有调度器:Claude、OpenAI、Gemini的普通会话和分组会话
- 提升用户体验:活跃项目会话持续有效,停用项目自动清理
- 性能优化:智能判断减少不必要的Redis EXPIRE操作
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-08 16:06:12 +08:00 |
|
Edric Li
|
9fa7602947
|
feat: 优化错误处理机制和代码重构
- 将5xx错误阈值从10次降低到3次,符合行业标准(AWS ELB: 2次, K8s: 3次)
- 新增网络超时(ETIMEDOUT)错误处理,触发账户降级机制
- 重构错误处理逻辑,提取统一方法_handleServerError,消除75%重复代码
- 支持不同上下文的错误日志(Network, Request, Stream等)
- 修复流式请求中的参数作用域问题,确保错误处理一致性
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-08 16:06:12 +08:00 |
|
shaw
|
e824858d60
|
feat: claude账户支持使用统一的客户端标识
|
2025-09-08 11:35:44 +08:00 |
|
Edric Li
|
8c9d6381f3
|
feat: API Keys图标系统和UI优化
主要功能增强:
- 实现API Key自定义图标功能,支持图片上传、裁剪和智能压缩
- 新增IconPicker组件,提供内置图标选择和图片上传功能
- 支持固定尺寸裁剪区域,可拖拽定位选择头像区域
- 智能图片压缩:PNG保留透明度,JPEG用于不透明图片
UI/UX改进:
- 优化表格布局:移除账号列,在名称下方显示账号绑定信息
- 调整行高和字体大小,提升信息密度
- 最后使用时间改为相对时间显示,悬浮显示具体时间
- 过期时间编辑改为点击文本触发,带悬浮下划线效果
- 更新默认API Key图标为蓝色渐变设计
- 修复表格悬浮偏移和横向滚动条问题
- 将"TOKEN 数量"改为"Token数"
后端支持:
- apiKeyService增加icon字段持久化
- admin路由增加图标数据处理和验证
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-07 22:18:34 +08:00 |
|
shaw
|
e28080bb51
|
docs: codex cli配置优先使用apikey
|
2025-09-07 13:40:26 +08:00 |
|
sczheng189
|
0cb58c099d
|
去除掉统一user-agent的冗余逻辑,增加流式处理日志打印
|
2025-09-07 08:41:11 +08:00 |
|
sczheng189
|
9d1906c0b1
|
Merge branch 'dev' of https://github.com/Wei-Shaw/claude-relay-service into dev
|
2025-09-06 23:40:10 +08:00 |
|
shaw
|
d2f3f6866c
|
feat: Codex账号管理优化与API Key激活机制
✨ 新功能
- 支持通过refreshToken新增Codex账号,创建时立即验证token有效性
- API Key新增首次使用自动激活机制,支持activation模式设置有效期
- 前端账号表单增加token验证功能,确保账号创建成功
🐛 修复
- 修复Codex token刷新失败问题,增加分布式锁防止并发刷新
- 优化token刷新错误处理,提供更详细的错误信息和建议
- 修复OpenAI账号token过期检测和自动刷新逻辑
📝 文档更新
- 更新README中Codex使用说明,改为config.toml配置方式
- 优化Cherry Studio等第三方工具接入文档
- 添加详细的配置示例和账号类型说明
🎨 界面优化
- 改进账号创建表单UI,支持手动和OAuth两种模式
- 优化API Key过期时间编辑弹窗,支持激活操作
- 调整教程页面布局,提升移动端响应式体验
💡 代码改进
- 重构token刷新服务,增强错误处理和重试机制
- 优化代理配置处理,确保OAuth请求正确使用代理
- 改进webhook通知,增加token刷新失败告警
|
2025-09-06 18:04:06 +08:00 |
|
Wesley Liddick
|
2f6e5ab289
|
Merge pull request #357 from YNZH/dev
webHook通知时间适配时区
|
2025-09-06 08:28:50 +08:00 |
|
maplegao
|
96e505d662
|
eslint fix
|
2025-09-05 21:42:49 +08:00 |
|
maplegao
|
d4989f5401
|
format
|
2025-09-05 20:51:07 +08:00 |
|
maplegao
|
503f20b06b
|
webhook时间可以指定时区
|
2025-09-05 17:54:06 +08:00 |
|
sususu
|
19cf38d92d
|
fix(unifiedClaudeScheduler): Add error logging for quota check failures.
|
2025-09-05 17:01:40 +08:00 |
|
sususu
|
c16cfe60ab
|
Merge branch 'dev' of https://github.com/sususu98/claude-relay-service into dev
|
2025-09-05 16:41:25 +08:00 |
|
sususu
|
4cc937a144
|
feat(Claude Console): 添加Claude Console账号每日配额
1. 额度检查优先级更高:即使不启用限流机制,超额仍会禁用账户
2. 状态会被覆盖:quota_exceeded 会覆盖 rate_limited
3. 两种恢复时间:
- 限流恢复:分钟级(如60分钟)
- 额度恢复:天级(第二天重置)
4. 独立控制:
- rateLimitDuration = 0:只管理额度,忽略429
- rateLimitDuration > 0:同时管理限流和额度
|
2025-09-05 14:58:59 +08:00 |
|
iaineng
|
d8e833ef1a
|
fix: 修复会话粘性机制下Pro账户被错误调度用于Opus请求的问题
- 在 _isAccountAvailable 方法中添加了模型兼容性检查,避免Pro账户被用于Opus请求
- 创建 _isModelSupportedByAccount 统一方法来处理模型兼容性验证
- 支持Claude OAuth账户的订阅类型检查(Pro/Free/Max)
- 支持Claude Console账户的supportedModels配置检查
|
2025-09-04 23:26:18 +08:00 |
|
sczheng189
|
ae727d381c
|
fix:确保清楚了5xx错误导致的临时熔断状态,修复之前没有添加的5分钟定时器
|
2025-09-04 13:49:55 +08:00 |
|
sczheng189
|
4b0861eb7f
|
fix:修复了重置状态只删除js对象而没有删除redis的问题
|
2025-09-04 13:09:55 +08:00 |
|
Wesley Liddick
|
d6745dbe4a
|
Merge pull request #335 from iaineng/dev
feat: 添加Claude账户403错误处理和封禁状态支持
|
2025-09-04 10:46:44 +08:00 |
|
Wesley Liddick
|
75ac51bb57
|
Merge pull request #337 from sczheng189/dev
优化Claude Code User-Agent识别逻辑,更适配多段版本号比较的代码
|
2025-09-04 10:46:09 +08:00 |
|
shaw
|
5a29502fcd
|
fix: 修复gemini转发
|
2025-09-04 10:45:07 +08:00 |
|
sczheng189
|
8f08d7843f
|
fix: 优化Claude Code User-Agent识别逻辑
- 将字符串匹配改为正则表达式匹配,提高准确性
- 统一版本号提取正则,支持多段版本号格式
- 修复isRealClaudeCodeRequest中的User-Agent验证逻辑"
|
2025-09-04 09:19:39 +08:00 |
|
iaineng
|
1ff14e38cb
|
feat: 添加Claude账户403错误处理和封禁状态支持
- 新增Claude账户403错误自动检测和处理机制
- 区分Claude账户401未授权和403封禁两种错误状态
- 支持非流式和流式请求中的401/403错误处理
- 优化Claude账户错误处理代码,减少重复逻辑
- 支持前端显示不同的Claude账户错误状态和颜色
- 完善Claude账户异常Webhook通知错误码区分
|
2025-09-04 00:50:28 +08:00 |
|
Wesley Liddick
|
5bed7c932b
|
Merge pull request #333 from sczheng189/dev
feat: 添加统一Claude Code User-Agent支持及缓存管理功能(仅支持Claude账户,不支持api)
|
2025-09-03 21:35:51 +08:00 |
|
sczheng189
|
39c49fe2bb
|
feat: 添加统一Claude Code User-Agent支持及缓存管理功能
### **核心功能**
* **自动更新**:自动获取并使用最新的 “Claude Code” 客户端版本号。
* **智能缓存**:获取到的版本会缓存25小时,然后自动刷新。
* **独立开关**:每个账户都可以单独设置是否启用此功能。
### **前端界面**
* **新增开关**:账户设置里增加了“使用统一版本”的选项。
* **信息显示**:能直接看到当前正在使用的版本号。
* **手动刷新**:提供“清除缓存”按钮,可手动强制更新。
### **后端技术**
* **核心方法**:开发了新的后台功能,用于捕获、比较和管理版本号。
* **管理接口**:为管理员提供了新的API (`/admin/claude-code-version`),方便查询和刷新。
|
2025-09-03 20:14:58 +08:00 |
|
Feng Yue
|
54d1bc076c
|
Merge branch 'main-um-8' into dev-um-8
|
2025-09-03 15:21:58 +08:00 |
|
Feng Yue
|
bec9cf565b
|
feat: add Windows Active Directory LDAP authentication support
|
2025-09-03 15:15:13 +08:00 |
|
Feng Yue
|
f69333f312
|
Revert "add support of Windows AD Server"
This reverts commit a1005e91c8.
|
2025-09-03 15:03:14 +08:00 |
|
Feng Yue
|
a1005e91c8
|
add support of Windows AD Server
|
2025-09-03 13:30:13 +08:00 |
|
Feng Yue
|
1fc35197e1
|
Merge remote-tracking branch 'f3n9/dev' into dev-um-8
|
2025-09-03 09:45:52 +08:00 |
|
Feng Yue
|
3860f7d9b3
|
update default limit of apikey number per user to one and disallow key deletion by default
|
2025-09-02 21:42:48 +08:00 |
|
shaw
|
81ad098678
|
fix: 修复apikeys页面的一些bug
|
2025-09-02 21:38:54 +08:00 |
|