shaw
|
6bb39dadd9
|
Merge branch 'dev'
|
2025-07-17 08:55:59 +08:00 |
|
shaw
|
ee9bd4aea4
|
feat: 实现Claude账户专属绑定功能
- 添加账户类型(dedicated/shared)支持
- API Key可绑定专属账户,优先使用绑定账户
- 未绑定的API Key继续使用共享池和粘性会话
- 修复专属账户下拉框显示问题(isActive类型不匹配)
- 修复getBoundAccountName方法未定义错误
- 添加删除账户前的API Key绑定检查
- 完全保留原有粘性会话机制
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-17 08:50:12 +08:00 |
|
shaw
|
7e61a31f0f
|
fix: process.env.REDIS_ENABLE_TLS 字符串引起的判断问题
|
2025-07-16 21:20:59 +08:00 |
|
shaw
|
522065c5bb
|
update readme
|
2025-07-16 18:40:44 +08:00 |
|
shaw
|
f9bf2d544e
|
update readme
|
2025-07-16 18:33:28 +08:00 |
|
shaw
|
a64ced0e36
|
fix: 修复非流式响应JSON解析错误和max_tokens参数校验
- 修复gzip压缩响应处理:添加zlib模块支持,正确解压缩Claude API响应
- 优化max_tokens验证机制:从硬编码改为动态读取model_pricing.json文件
- 改进错误处理:增强响应数据处理的容错性
- 修复SSE错误事件格式:统一字符串引号风格
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 18:12:19 +08:00 |
|
shaw
|
66a53230e1
|
fix: 修复管理界面用户菜单z-index层级问题
- 修复用户菜单被主内容区域遮挡的问题
- 调整顶部导航和主内容区域的z-index层级
- 优化用户菜单的定位方式,改为相对定位
- 确保用户菜单在所有情况下都能正确显示
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 17:57:14 +08:00 |
|
shaw
|
8ca9ffee68
|
fix: 改进socket hang up和网络错误处理机制
- 修复socket hang up错误导致返回空字符串的问题
- 改进非流式请求的错误处理,根据错误类型返回适当的HTTP状态码
- 优化流式请求的错误处理,返回SSE格式的错误事件
- 增强错误日志记录,包含详细的网络错误信息
- 确保在任何情况下都返回有效的JSON响应格式
修复内容:
- ECONNRESET错误返回502状态码和明确的错误信息
- ENOTFOUND错误返回502状态码和DNS解析失败信息
- ECONNREFUSED错误返回502状态码和连接被拒绝信息
- ETIMEDOUT错误返回504状态码和超时信息
- 流式请求错误时返回符合SSE规范的错误事件
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 17:56:29 +08:00 |
|
shaw
|
06ad6ec440
|
fix: 修复用户界面显示问题
- 修复用户菜单下拉框被glass-strong元素遮挡的问题,改为fixed定位并提高z-index
- 修复登录界面label颜色与背景色相同的问题,改为text-gray-900
- 修复错误消息提示框文字颜色问题,从text-red-200改为text-red-800提高可读性
- 确保所有UI元素在各种背景下都有良好的可见性和对比度
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 17:32:56 +08:00 |
|
shaw
|
c16c6b63cf
|
fix: 修复用户菜单显示问题和真实用户名显示
- 修复登录接口返回真实用户名而非输入用户名
- 新增获取当前用户信息的API接口(/web/auth/user)
- 修复前端用户名显示逻辑,页面初始化时获取真实用户名
- 提高下拉菜单z-index确保正确显示
- 解决用户名显示为Admin而非data/init.json中真实用户名的问题
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 17:26:02 +08:00 |
|
shaw
|
156bfa9b58
|
feat: 添加管理员账户信息修改功能
- 新增右上角用户菜单,包含修改账户信息和退出登录选项
- 实现修改用户名和密码功能,支持独立修改或同时修改
- 添加密码强度验证(最少8位)和确认密码验证
- 修改后自动退出登录,确保安全性
- 同步更新Redis和data/init.json文件,保持数据一致性
- 优化用户体验,提供实时反馈和错误提示
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 17:16:29 +08:00 |
|
shaw
|
5a0271d536
|
fix: 统一仪表盘Token消耗费用计算逻辑
- 修复今日费用和总费用计算不一致的问题
- 总费用计算现在优先使用Redis中的详细模型统计数据
- 使用真实模型价格进行费用计算,而不是固定的'unknown'价格
- 添加智能回退机制,无模型数据时使用Haiku价格
- 增加详细的日志记录以便跟踪费用计算过程
- 解决了总Token消耗大但费用显示偏低的异常问题
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 16:41:54 +08:00 |
|
shaw
|
63906c9fa3
|
refactor: 简化CLI工具管理命令
- 移除复杂的API Key管理和账户管理命令
- 简化admin命令直接创建初始管理员
- 保留核心的status命令用于系统状态查看
- 减少CLI工具的复杂度,专注于核心功能
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 16:17:07 +08:00 |
|
shaw
|
48c09b1286
|
feat: 优化SSL证书获取推荐和token刷新机制
- 将README中的certbot推荐改为acme.sh,更轻量且功能更强
- 中英文文档同步更新SSL证书获取方式
- 调整token刷新提前时间从10秒改为60秒,提供更充足的缓冲时间
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 16:15:17 +08:00 |
|
shaw
|
59bc309ae4
|
fix: 修复 User-Agent 暴露问题并实现安全的 header 转发
- 移除硬编码的 'claude-relay-service/1.0.0' User-Agent,防止代理身份暴露
- 添加 _filterClientHeaders 方法过滤敏感请求头
- 实现完整的客户端 header 转发功能
- 默认 User-Agent 设置为 'claude-cli/1.0.53 (external, cli)'
- 过滤 x-api-key, authorization, host 等敏感 headers
- 更新所有 _makeClaudeRequest 方法支持 clientHeaders 参数
- 修改 API 路由传递 req.headers 到服务层
安全改进:
- 防止代理服务身份暴露
- 提升请求透明性和安全性
- 保持客户端原始请求特征
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 16:01:11 +08:00 |
|
shaw
|
567e3b25aa
|
feat: 优化并发控制和移除冗余限制功能
主要改进:
1. 改进并发控制机制
- 使用 once 代替 on 避免重复监听
- 监听多个事件确保可靠性(close、finish)
- 支持客户端断开时立即释放并发槽位
2. 支持非流式请求的客户端断开处理
- 客户端断开时立即中断上游请求
- 避免资源浪费和不必要的 API 调用
3. 移除 requestLimit(请求数限制)功能
- 移除配置和验证逻辑
- 保留请求统计用于监控分析
4. 移除速率限制(Rate Limit)功能
- 移除 RATE_LIMIT_* 配置
- 简化中间件逻辑
- 避免与并发控制重复
现在系统仅保留:
- Token 使用量限制
- 并发数限制(更精确的资源控制)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 14:40:37 +08:00 |
|
shaw
|
f9bc2ddb23
|
fix: 优化 API Key 并发控制机制
- 调整并发计数器过期时间为3分钟,支持长时间流式请求
- 为流式响应添加客户端断开检测,确保计数正确减少
- 添加响应关闭和错误事件监听器,防止并发计数泄漏
- 提高系统稳定性和资源管理准确性
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 11:10:44 +08:00 |
|
shaw
|
de0a2f685a
|
feat: 添加手动输入 Access Token 时的获取说明
- 在添加 Claude 账户时,选择手动输入方式会显示详细提示
- 说明 Access Token 应从 ~/.claude/.credentials.json 文件获取
- 明确提醒不要使用 Claude 官网 API Keys 页面的密钥
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 11:08:26 +08:00 |
|
shaw
|
08f93e9872
|
fix: 修复并发计数器在请求异常时不能正确减少的问题
- 增强事件监听机制
- 监听 req 的 close 和 aborted 事件
- 监听 res 的 finish 和 error 事件
- 使用标志位确保只减少一次计数
- 改进日志记录
- 增加并发计数增减的详细日志
- 记录请求关闭和中断事件
- 确保计数器安全性
- 使用 Lua 脚本原子操作防止负数
- 优化 Redis 操作逻辑
- 增强管理界面
- API Keys 列表显示当前并发数
- 并发数超过 0 时用橙色标记
- 显示当前并发数/限制数格式
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 10:21:17 +08:00 |
|
shaw
|
e2c9f26135
|
chore: 移除测试脚本和文档文件
- 删除 test-concurrency.js 测试脚本
- 删除 CONCURRENCY_CONTROL.md 文档
- 删除 API_KEY_EDIT_FEATURE.md 文档
保留核心功能代码,移除仅用于开发测试的文件
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 09:48:39 +08:00 |
|
shaw
|
12b41ceb25
|
feat: 添加API Key并发控制和编辑功能
- 新增API Key并发控制功能
- 创建API Key时可设置并发限制(0为不限制)
- 在认证中间件中实现并发检查
- 使用Redis原子操作确保计数准确
- 添加自动清理机制处理异常情况
- 新增API Key编辑功能
- 支持修改Token限制和并发限制
- 前端添加编辑按钮和模态框
- 后端限制只能修改指定字段
- 其他改进
- 添加test-concurrency.js测试脚本
- 添加详细的功能说明文档
- 所有代码通过ESLint检查
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-16 09:48:07 +08:00 |
|
Wesley Liddick
|
efa7048018
|
Merge pull request #8 from hst-Sunday/main
feat: 添加 Redis TLS 支持
|
2025-07-16 08:59:58 +08:00 |
|
sunday
|
36bf69adbb
|
feat: 添加 Redis TLS 支持
- 在 .env.example 中新增 REDIS_ENABLE_TLS 配置项
- 更新 config.example.js 以支持 TLS 连接
- 修改 RedisClient 类以根据配置启用或禁用 TLS
|
2025-07-16 02:52:21 +08:00 |
|
shaw
|
ec9847fa05
|
update readme
|
2025-07-15 22:57:41 +08:00 |
|
shaw
|
45a1832f6b
|
update readme
|
2025-07-15 22:25:09 +08:00 |
|
shaw
|
fbf942a5fd
|
feat: 支持手动添加 Claude 账户 Access Token
- 添加 OAuth 和手动输入两种账户添加方式
- 支持直接输入 Access Token 和 Refresh Token
- 新增账户编辑功能,可更新 Token 和代理设置
- 优化 Token 刷新失败时的回退机制
- 改进用户体验,支持手动维护长期有效的 Token
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-15 19:28:14 +08:00 |
|
shaw
|
8f7d3fcadf
|
fix: 修复管理员会话键名冲突问题
- 恢复管理员会话管理的原始键名格式 session:${sessionId}
- 更改sticky会话映射使用独立前缀 sticky_session:${sessionHash}
- 避免sticky会话功能与管理后台会话冲突
- 添加sticky_session:*到cleanup清理模式
- 确保向后兼容性,管理后台功能正常
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-15 18:43:32 +08:00 |
|
shaw
|
db8964d0f7
|
Merge remote-tracking branch 'origin/main' into dev
|
2025-07-15 18:18:11 +08:00 |
|
shaw
|
b2b8d8c719
|
feat: 添加智能sticky会话保持功能
- 新增 sessionHelper.js 实现会话哈希生成,基于Anthropic的prompt caching机制
- 扩展 claudeAccountService.selectAvailableAccount 支持会话绑定
- 更新 claudeRelayService 集成会话保持功能
- 添加 Redis 会话映射存储,支持1小时过期
- 支持故障转移:绑定账户不可用时自动重新选择
- 三级fallback策略:cacheable内容 → system内容 → 第一条消息
- 完全向后兼容,自动启用无需配置
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-15 18:15:53 +08:00 |
|
Wesley Liddick
|
1b2f6454c5
|
Merge pull request #4 from Alfonsxh/bugfix/oauth-serialization
fix: 改进 OAuth 会话管理对象序列化
|
2025-07-15 18:14:50 +08:00 |
|
shaw
|
2257b42527
|
Modify the default timeout period
|
2025-07-15 18:00:52 +08:00 |
|
Alfonsxh
|
4946968577
|
fix: 改进 OAuth 会话管理对象序列化
- 在 setOAuthSession 中添加复杂对象序列化逻辑
- 在 getOAuthSession 中添加 proxy 字段反序列化
- 增强对 proxy 配置等复杂对象的存储支持
- 添加错误处理,解析失败时将 proxy 设为 null
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-15 17:52:51 +08:00 |
|
shaw
|
f2af099e7d
|
update readme
|
2025-07-15 11:09:43 +08:00 |
|
shaw
|
1bbad561bb
|
update readme
|
2025-07-15 11:06:54 +08:00 |
|
shaw
|
beb0734fae
|
update readme
|
2025-07-15 11:04:14 +08:00 |
|
shaw
|
34a7a020a3
|
update readme
|
2025-07-15 11:03:09 +08:00 |
|
shaw
|
4c28f41878
|
add preview
|
2025-07-15 09:57:37 +08:00 |
|
shaw
|
fb06d71a3b
|
update README
|
2025-07-14 18:58:26 +08:00 |
|
shaw
|
d3f50607a3
|
update README
|
2025-07-14 18:46:58 +08:00 |
|
shaw
|
e89d89e3ef
|
update README
|
2025-07-14 18:45:30 +08:00 |
|
shaw
|
f224c63ed4
|
update README
|
2025-07-14 18:38:54 +08:00 |
|
shaw
|
2333cbb952
|
update README
|
2025-07-14 18:35:33 +08:00 |
|
shaw
|
baa0a58844
|
update README
|
2025-07-14 18:34:32 +08:00 |
|
shaw
|
69d4f8455c
|
add: LICENSE
|
2025-07-14 18:32:47 +08:00 |
|
shaw
|
4168a4182f
|
update README
|
2025-07-14 18:30:37 +08:00 |
|
shaw
|
2c4847f3f0
|
update README
|
2025-07-14 18:17:06 +08:00 |
|
shaw
|
b1ca3f307e
|
first commit
|
2025-07-14 18:14:13 +08:00 |
|
Wesley Liddick
|
a96a372011
|
Initial commit
|
2025-07-14 18:11:32 +08:00 |
|