shaw
6f6c274877
fix: 继续修复PR-541遗留的系列bug
2025-10-12 22:13:38 +08:00
shaw
b7da43f615
fix: 修复部分账号转发gemini api失败的问题
2025-09-12 11:41:14 +08:00
shaw
7c4feec5aa
feat: 添加账户状态监控和自动恢复机制
...
- 实现账户健康度监控系统,支持30分钟内错误率检测
- 添加自动恢复机制,失败账户在30分钟后自动尝试恢复
- 优化账户选择策略,优先选择健康账户
- 增强Redis键管理,添加账户状态和错误追踪功能
- 改进Gemini服务错误处理和重试逻辑
- 新增standardGeminiRoutes标准化路由支持
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-11 22:02:53 +08:00
shaw
5a29502fcd
fix: 修复gemini转发
2025-09-04 10:45:07 +08:00
Feng Yue
1762669de4
use proxy if configured in Gemini OAuth requests
2025-08-31 01:00:49 +08:00
shaw
102fc54e8e
fix: 修复gemini转发代理ip未使用的问题
2025-08-21 10:55:05 +08:00
shaw
cb29b3f7e4
fix: 代理ip使用重构为统一方法
2025-08-20 23:21:32 +08:00
shaw
65ba0ffb8f
feat: 优化 Gemini 项目ID处理逻辑
...
- 统一使用账户配置的项目ID,忽略客户端请求中的project参数
- 增强日志记录,更清晰地追踪项目ID的使用情况
- 移除无用的 geminiAuthInterceptor 中间件
- 移除调试用的 console.log
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-18 09:33:15 +08:00
shaw
3bcdb511fe
feat: 实现多服务账户缓存优化系统
...
- 添加通用LRU缓存工具类,支持过期时间和内存限制
- 实现缓存监控系统,提供统计和健康检查接口
- 为所有账户服务(Claude、Gemini、OpenAI、Bedrock、Claude Console)添加缓存层
- 优化账户选择性能,减少Redis查询频率
- 添加缓存统计监控端点 /admin/cache/stats
性能提升:
- 账户列表查询从O(n)优化到O(1)
- 减少90%以上的Redis查询
- 响应时间降低50ms以上
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-17 15:38:49 +08:00
shaw
812e98355f
feat: 实现 OpenAI token 自动刷新功能并优化账户管理界面
...
主要更改:
1. OpenAI Token 自动刷新
- 实现 refreshAccessToken 函数,支持 OAuth 2.0 refresh_token grant type
- 使用 Codex CLI 官方 CLIENT_ID (app_EMoamEEZ73f0CkXaXp7hrann)
- 支持 SOCKS5 和 HTTP/HTTPS 代理
- 自动更新 access token、id token 和 refresh token
2. 账户管理界面优化
- 移除手动刷新 token 按钮(桌面端和移动端)
- 保留后端自动刷新机制
- 优化代码结构,删除不再需要的函数和变量
3. 测试和文档
- 添加 test-openai-refresh.js 测试脚本
- 创建详细的实现文档
技术细节:
- Token 端点: https://auth.openai.com/oauth/token
- 默认有效期: 1小时
- 加密存储: AES-256-CBC
所有平台现在都支持自动 token 刷新:
✅ Claude - OAuth 自动刷新
✅ Gemini - Google OAuth2 自动刷新
✅ OpenAI - OAuth 自动刷新(新实现)
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-15 16:56:44 +08:00
iRubbish
c9b0c3eb82
feat: 增强 webhook 通知功能,支持手动禁用账号通知
...
- 添加手动禁用账号时的 webhook 通知功能
- 支持所有账号类型:Claude OAuth、Claude Console、Gemini
- 新增错误代码:MANUALLY_DISABLED 系列
- 更新 README.md 文档,添加完整的 webhook 配置说明
- 包含企业微信配置示例和测试方法
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-14 18:28:48 +08:00
weidian
e01e539108
feat: 添加账号异常状态 Webhook 通知功能
...
## 功能概述
- 新增账号禁用/异常状态的 Webhook 实时通知机制
- 支持 Claude OAuth、Claude Console、Gemini 三种平台的账号监控
- 提供完整的 Webhook 管理 API 和配置选项
## 主要变更
### 新增文件
- `src/utils/webhookNotifier.js`: Webhook 通知核心服务
- `src/routes/webhook.js`: Webhook 管理 API 路由
### 功能集成
- Claude OAuth 账号:unauthorized 状态 + token 刷新错误通知
- Claude Console 账号:blocked 状态通知
- Gemini 账号:token 刷新错误通知
### 配置支持
- 新增环境变量:WEBHOOK_ENABLED, WEBHOOK_URLS, WEBHOOK_TIMEOUT, WEBHOOK_RETRIES
- 支持多个 Webhook URL 并发通知
- 自动重试机制(指数退避)+ 超时保护
### 管理端点
- POST /admin/webhook/test: 测试连通性
- POST /admin/webhook/test-notification: 发送测试通知
- GET /admin/webhook/config: 查看配置信息
## 通知格式
```json
{
"type": "account_anomaly",
"data": {
"accountId": "uuid",
"accountName": "账号名称",
"platform": "claude-oauth|claude-console|gemini",
"status": "unauthorized|blocked|error",
"errorCode": "CLAUDE_OAUTH_UNAUTHORIZED",
"reason": "具体异常原因",
"timestamp": "2025-01-13T10:30:00.000Z"
}
}
```
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-13 17:52:46 +08:00
wt
0f66ea7d4a
Fixes: Gemini账户调度状态在页面刷新后与实际设置不符
2025-08-11 16:48:34 +08:00
mouyong
4bcd2878f2
feat: 增强账户管理页面的平台筛选和缓存优化功能
...
- 添加平台筛选功能到账户管理页面
* 后端:在所有账户接口中支持platform和groupId查询参数
* 前端:添加平台筛选下拉框,支持条件性API请求
- 使用智能缓存机制优化数据加载
* 缓存API Keys、账户分组和分组成员数据
* 通过Ctrl/⌘+点击刷新按钮实现强制重新加载
* 在数据变更时自动清除相关缓存(创建/编辑/删除)
- 改进Gemini账户限流状态显示
* 在geminiAccountService中添加限流信息支持
* 统一所有平台的限流状态格式
* 修复仪表板统计,排除被限流的账户
- 提升用户界面体验
* 将原生title提示替换为Element Plus的el-tooltip组件
* 支持跨平台键盘快捷键(Ctrl/⌘+点击)
* ESLint规范合规和代码格式化改进
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-10 12:40:24 +08:00
千羽
8a74bf5afe
refactor: standardize code formatting and linting configuration
...
- Replace .eslintrc.js with .eslintrc.cjs for better ES module compatibility
- Add .prettierrc configuration for consistent code formatting
- Update package.json with new lint and format scripts
- Add nodemon.json for development hot reloading configuration
- Standardize code formatting across all JavaScript and Vue files
- Update web admin SPA with improved linting rules and formatting
- Add prettier configuration to web admin SPA
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-07 18:19:31 +09:00
shaw
b1ea32caba
feat: 添加Gemini定价功能和界面优化
...
- 实现Gemini定价查询服务,支持实时计算token成本
- 改进API Key管理界面,添加模型快速选择功能
- 优化账户表单组件的渲染性能
- 更新Gemini账户服务,增强token刷新和错误处理
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-06 18:09:43 +08:00
mouyong
54ad8452c3
feat: gemini 流式响应
2025-08-04 20:34:17 +08:00
mouyong
2eee902988
feat: 处理 openai 格式请求
2025-08-04 18:20:39 +08:00
shaw
ef4f7483d3
feat: 完善 Gemini 功能与 Claude 保持一致
...
- 添加 Gemini 账户的 schedulable 字段和调度开关 API
- 实现 Gemini 调度器的模型过滤功能
- 完善 Gemini 数据统计,记录 token 使用量
- 修复 Gemini 流式响应的 SSE 解析和 AbortController 支持
- 在教程页面和 README 中添加 Gemini CLI 环境变量说明
- 修复前端 Gemini 账户调度开关限制
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-04 16:53:11 +08:00
千羽
33837c23aa
feat: 增强 Gemini 服务支持并添加统一调度器
...
- 新增 unifiedGeminiScheduler.js 统一账户调度服务
- 增强 geminiRoutes.js 支持更多 Gemini API 端点
- 优化 geminiAccountService.js 账户管理和 token 刷新机制
- 添加对 v1internal 端点的完整支持(loadCodeAssist、onboardUser、countTokens、generateContent、streamGenerateContent)
- 改进错误处理和流式响应管理
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-04 14:47:03 +09:00
千羽
a80b36896d
feat: 更新 Gemini OAuth 流程支持新的授权方式
...
- 使用 codeassist.google.com 作为新的回调地址
- 实现 PKCE 认证流程增强安全性
- 更新前端授权流程指引
- 简化授权码输入流程
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-04 00:16:29 +08:00
shaw
414856f152
feat: 全新的Vue3管理后台(admin-spa)和路由重构
...
🎨 新增功能:
- 使用Vue3 + Vite构建的全新管理后台界面
- 支持Tab切换的API统计页面(统计查询/使用教程)
- 优雅的胶囊式Tab切换设计
- 同步了PR #106的会话窗口管理功能
- 完整的响应式设计和骨架屏加载状态
🔧 路由调整:
- 新版管理后台部署在 /admin-next/ 路径
- 将根路径 / 重定向到 /admin-next/api-stats
- 将 /web 页面路由重定向到新版,保留 /web/auth/* 认证路由
- 将 /apiStats 页面路由重定向到新版,保留API端点
🗑️ 清理工作:
- 删除旧版 web/admin/ 静态文件
- 删除旧版 web/apiStats/ 静态文件
- 清理相关的文件服务代码
🐛 修复问题:
- 修复重定向循环问题
- 修复环境变量配置
- 修复路由404错误
- 优化构建配置
🚀 生成方式:使用 Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-07-29 12:40:51 +08:00
shaw
2a6bb2ab01
feat: 改进 Gemini token 刷新机制和错误处理
...
- Token 刷新成功后自动将账户状态更新为 active
- 清空之前的错误信息
- 确保账户在成功刷新后可以正常使用
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-07-26 14:36:28 +08:00
shaw
4789c03ea3
fix: 修复 Gemini token 刷新时的二次解密错误
...
- refreshAccountToken 中的 account.refreshToken 已经是解密后的值
- 移除多余的 decrypt() 调用,避免二次解密导致的错误
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-07-26 14:34:45 +08:00
shaw
3d13542fff
fix: 修复 Gemini 账户 refreshToken 解密错误
...
- 修复 updateAccount 中对已解密数据的二次解密问题
- 改进解密函数,使用固定长度的 IV 避免冒号分隔符问题
- 确保 refreshToken 能正确存储和使用
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-07-26 12:10:03 +08:00
shaw
dd73045223
feat: 改进 Gemini token 刷新机制和错误处理
...
- 修复 token 刷新时的错误处理逻辑
- 添加详细的错误日志记录
- 新增 test-gemini-refresh.js 测试脚本
- 更新 CLAUDE.md 文档,添加 Gemini token 刷新故障排除指南
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-07-26 11:41:17 +08:00
mouyong
33561bcc80
修复用户提供的 密钥太短导致无法保存授权的问题
2025-07-23 22:34:26 +08:00
shaw
12d68af421
update default redirectUri
2025-07-22 11:52:07 +08:00
shaw
ed99043127
fix: 修复 geminiAccountService 配置读取错误并添加 secret scanning 排除规则
...
- 直接使用硬编码的 Gemini OAuth 凭据,避免配置依赖
- 添加 .github/secret_scanning.yml 排除公开的 OAuth 凭据文件
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-07-22 10:37:43 +08:00
shaw
38c1fc4785
feat: 添加多模型支持和OpenAI兼容接口
...
- 新增 Gemini 模型支持和账户管理功能
- 实现 OpenAI 格式到 Claude/Gemini 的请求转换
- 添加自动 token 刷新服务,支持提前刷新策略
- 增强 Web 管理界面,支持 Gemini 账户管理
- 优化 token 显示,添加掩码功能
- 完善日志记录和错误处理
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-07-22 10:17:39 +08:00