Wesley Liddick
|
3f98267738
|
Merge branch 'main' into antigravity
|
2025-12-26 00:56:27 -05:00 |
|
Wesley Liddick
|
e187b8946a
|
Merge pull request #825 from atoz03/feat/account-quota [skip ci]
Feat:account quota
|
2025-12-26 00:53:33 -05:00 |
|
Wesley Liddick
|
8917019a78
|
Merge pull request #814 from Guccbai/feature/multi-select-permissions [skip ci]
feat(permissions): 服务权限从单选改为多选
|
2025-12-26 00:52:42 -05:00 |
|
52227
|
9960f237b8
|
feat: 实现 Antigravity OAuth 账户支持与路径分流
|
2025-12-25 14:33:24 +08:00 |
|
shaw
|
b6da77cabe
|
docs: update readme
|
2025-12-25 14:27:23 +08:00 |
|
github-actions[bot]
|
e561387e81
|
chore: sync VERSION file with release v1.1.241 [skip ci]
v1.1.241
|
2025-12-25 06:23:55 +00:00 |
|
shaw
|
982cca1020
|
fix: 修复鉴权检测的重大安全漏洞
|
2025-12-25 14:23:35 +08:00 |
|
github-actions[bot]
|
792ba51290
|
chore: sync VERSION file with release v1.1.240 [skip ci]
v1.1.240
|
2025-12-25 02:46:09 +00:00 |
|
Wesley Liddick
|
74d138a2fb
|
Merge pull request #842 from IanShaw027/feat/account-export-api
feat(admin): 添加账户导出同步 API
|
2025-12-24 21:45:55 -05:00 |
|
IanShaw027
|
b88698191e
|
style(admin): fix ESLint curly rule violations in sync.js
为单行 if 语句添加花括号以符合 ESLint curly 规则要求
|
2025-12-24 17:57:30 -08:00 |
|
IanShaw027
|
11c38b23d1
|
style(admin): format sync.js with prettier
修复 CI 格式化检查失败问题
|
2025-12-24 17:52:51 -08:00 |
|
IanShaw027
|
b2dfc2eb25
|
feat(admin): 添加账户导出同步 API
- 新增 /api/accounts 端点,支持导出所有账户数据
- 新增 /api/proxies 端点,支持导出所有代理配置
- 支持 Sub2API 从 CRS 批量同步账户
- 包含完整的 credentials 和 extra 字段
- 提供账户类型标识 (oauth/setup_token/api_key)
相关 PR: Sub2API 端实现账户同步功能
|
2025-12-24 17:35:11 -08:00 |
|
github-actions[bot]
|
59ce0f091c
|
chore: sync VERSION file with release v1.1.239 [skip ci]
v1.1.239
|
2025-12-24 11:56:05 +00:00 |
|
shaw
|
67c20fa30e
|
feat: 为 claude-official 账户添加 403 错误重试机制
针对 OAuth 和 Setup Token 类型的 Claude 账户,遇到 403 错误时:
- 休息 2 秒后进行重试
- 最多重试 2 次(总共最多 3 次请求)
- 重试后仍是 403 才标记账户为 blocked
同时支持流式和非流式请求,并修复了流式请求中的竞态条件问题。
|
2025-12-24 19:54:25 +08:00 |
|
shaw
|
671451253f
|
fix: 修复并发清理任务 WRONGTYPE 错误
问题:
- 并发清理定时任务在遇到非 zset 类型的遗留键时报 WRONGTYPE 错误
- 错误键如 concurrency:wait:*, concurrency:user:*, concurrency:account:* 等
修复:
- app.js: 使用原子 Lua 脚本先检查键类型再执行清理,消除竞态条件
- redis.js: 为 6 个并发管理函数添加类型检查
- getAllConcurrencyStatus(): 跳过 queue 键 + 类型检查
- getConcurrencyStatus(): 类型检查,非 zset 返回 invalidType
- forceClearConcurrency(): 类型检查,任意类型都删除
- forceClearAllConcurrency(): 跳过 queue 键 + 类型检查
- cleanupExpiredConcurrency(): 跳过 queue 键 + 类型检查
- 遗留键会被自动识别并删除,同时记录日志
|
2025-12-24 17:51:19 +08:00 |
|
Guccbai
|
534fbf6ac2
|
fix(eslint): 修复 ESLint 检查错误
- 修复 apiKeyService.js 中 if 语句缺少大括号的 curly 错误
- 移除 openaiGeminiRoutes.js 中重复声明 apiKeyService 导致的 no-shadow 错误
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-23 20:26:18 +08:00 |
|
github-actions[bot]
|
0173ab224b
|
chore: sync VERSION file with release v1.1.238 [skip ci]
v1.1.238
|
2025-12-21 14:41:29 +00:00 |
|
shaw
|
11fb77c8bd
|
chore: trigger release [force release]
|
2025-12-21 22:41:03 +08:00 |
|
shaw
|
3d67f0b124
|
chore: update readme
|
2025-12-21 22:37:13 +08:00 |
|
shaw
|
84f19b348b
|
fix: 适配cc遥测端点
|
2025-12-21 22:29:36 +08:00 |
|
shaw
|
8ec8a59b07
|
feat: claude账号新增支持拦截预热请求
|
2025-12-21 22:28:22 +08:00 |
|
shaw
|
00d8ac4bec
|
Merge branch 'main' into dev
|
2025-12-21 21:35:16 +08:00 |
|
atoz03
|
b6f3459522
|
修复 eslint
|
2025-12-20 01:40:41 +08:00 |
|
atoz03
|
e56d797d87
|
修复 tests/accountBalanceService.test.js 的 Prettier 格式问题
|
2025-12-20 01:35:30 +08:00 |
|
atoz03
|
4c6879a9c2
|
Prettier 格式化
|
2025-12-20 01:24:08 +08:00 |
|
atoz03
|
1c8084a3b1
|
fix(admin): 打开余额脚本弹窗时重置表单,避免跨账户残留配置
- 打开弹窗先重置表单字段(baseUrl/apiKey/extra 等),仅保留示例脚本\n- 若后端存在已保存配置,则加载后覆盖\n- 同步清理测试结果与 loading 状态,避免残留误导
|
2025-12-20 01:18:49 +08:00 |
|
atoz03
|
f6f4b5cfec
|
feat(admin): 余额脚本驱动的余额/配额刷新与管理端体验修复
- 明确刷新语义:仅脚本启用且已配置时触发远程查询;未配置时前端禁用并提示\n- 新增余额脚本安全开关 BALANCE_SCRIPT_ENABLED(默认开启),脚本测试接口受控\n- Redis 增加单账户脚本配置存取,响应透出 scriptEnabled/scriptConfigured 供 UI 判定\n- accountBalanceService:本地统计汇总改用 SCAN+pipeline,避免 KEYS;仅缓存远程成功结果,避免失败/降级覆盖有效缓存\n- 管理端体验:刷新按钮按配置状态灰置;脚本弹窗内容可滚动、底部操作栏固定,并 append-to-body 使弹窗跟随当前视窗
|
2025-12-20 01:18:49 +08:00 |
|
atoz03
|
26ca696b91
|
fix:修复了重复声明 redis 导致的启动报错,并保留余额脚本功能接入账户
|
2025-12-20 01:18:49 +08:00 |
|
atoz03
|
ce496ed9e6
|
feat:单账户配置余额脚本 + 刷新按钮即用脚本”,并去掉独立页面/标签。
具体改动
- 后端
- src/models/redis.js:新增脚本配置存取 account_balance_script:{platform}:{accountId}。
- src/services/accountBalanceService.js:支持脚本查询。若账户有脚本配置且 queryApi=true,调用 balanceScriptService.execute 获取余额/配额,缓存后返回。
- src/routes/admin/accountBalance.js:新增接口
- GET /admin/accounts/:id/balance/script?platform=...
- PUT /admin/accounts/:id/balance/script?platform=...
- POST /admin/accounts/:id/balance/script/test?platform=...
- 前端
- 新增弹窗 AccountBalanceScriptModal,在账户管理页每个账户“余额/配额”下方有“配置余额脚本”按钮,支持填写 baseUrl/apiKey/token/extra/超时/自动间隔、编写脚本、测试、保存。
- 将余额脚本独立路由/标签移除。
- 格式/ lint 已通过(新组件及 AccountsView)。
|
2025-12-20 01:18:49 +08:00 |
|
atoz03
|
f6ed420401
|
feat(admin): 新增账户余额/配额查询与展示
- 新增 accountBalanceService 与多 Provider 适配(Claude/Claude Console/OpenAI Responses/通用)
- Redis 增加余额查询结果与本地统计缓存读写
- 管理端新增 /admin/accounts/balance 相关接口与汇总接口,并在应用启动时注册 Provider
- 后台前端新增余额组件与 Dashboard 余额/配额汇总、低余额/高使用提示
- 补充 accountBalanceService 单元测试
|
2025-12-20 01:15:33 +08:00 |
|
github-actions[bot]
|
5863816882
|
chore: sync VERSION file with release v1.1.237 [skip ci]
v1.1.237
|
2025-12-19 14:30:21 +00:00 |
|
shaw
|
638d2ff189
|
feat: 支持claude单账户开启串行队列
|
2025-12-19 22:29:57 +08:00 |
|
github-actions[bot]
|
fa2fc2fb16
|
chore: sync VERSION file with release v1.1.236 [skip ci]
v1.1.236
|
2025-12-19 07:50:25 +00:00 |
|
Wesley Liddick
|
6d56601550
|
Merge pull request #821 from guoyongchang/feat/cron-test-support
feat: Claude账户定时测试功能
|
2025-12-19 02:50:08 -05:00 |
|
guoyongchang
|
dd8a0c95c3
|
fix: use template literals instead of string concatenation
- Convert string concatenation to template literals per ESLint prefer-template rule
- Fixes ESLint errors in sessionKeyPrefix logging (lines 281, 330)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2025-12-19 15:46:38 +08:00 |
|
guoyongchang
|
126eee3712
|
feat/cron-test-support format fix.
|
2025-12-19 14:59:47 +08:00 |
|
guoyongchang
|
26bfdd6892
|
[feat/cron-test-support]optimize.
|
2025-12-19 14:03:31 +08:00 |
|
guoyongchang
|
cd3f51e9e2
|
refactor: optimize cron test support feature
**优化内容:**
1. **验证和安全性加强**
- 移除cron验证重复,统一使用accountTestSchedulerService.validateCronExpression()方法
- 添加model参数类型和长度验证(max 256 chars)
- 限制cronExpression长度至100字符防止DoS攻击
- 双层验证:service层和route层都进行长度检查
2. **性能优化**
- 优化_refreshAllTasks()使用Promise.all()并行加载所有平台配置(之前是顺序加载)
- 改进错误处理,平台加载失败时继续处理其他平台
3. **数据管理改进**
- 为test config添加1年TTL过期机制(之前没有过期设置)
- 保证test history已有30天TTL和5条记录限制
4. **错误响应标准化**
- 统一所有API响应格式,确保error状态都包含message字段
- 改进错误消息的可读性和上下文信息
5. **用户体验改进**
- Vue组件使用showToast()替代原生alert()
- 移除console.error()改用toast通知用户
- 成功保存时显示成功提示
6. **代码整理**
- 移除未使用的maxConcurrentTests变量及其getStatus()中的引用
- 保持代码整洁性
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2025-12-19 13:39:39 +08:00 |
|
guoyongchang
|
9977245d59
|
feat/cron-test-support package lock fix.
|
2025-12-19 13:32:16 +08:00 |
|
guoyongchang
|
09cf951cdc
|
[feat/cron-test-support]done.
|
2025-12-19 10:25:43 +08:00 |
|
Guccbai
|
33ea26f2ac
|
feat(permissions): 服务权限从单选改为多选
- 将 API Key 的服务权限从单选改为多选,支持同时选择多个服务
- 移除"全部服务"选项,空数组表示允许访问全部服务
- 后端自动兼容旧格式('all' -> [], 'claude' -> ['claude'])
- 前端 radio 改为 checkbox,更新账户选择器联动逻辑
修改文件:
- apiKeyService.js: 添加 normalizePermissions/hasPermission 函数
- api.js, droidRoutes.js, openaiRoutes.js, unified.js, openaiGeminiRoutes.js, geminiHandlers.js: 使用新权限验证函数
- admin/apiKeys.js: 支持数组格式权限验证
- CreateApiKeyModal.vue, EditApiKeyModal.vue: UI 改为 checkbox 多选
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-17 11:35:11 +08:00 |
|
Wesley Liddick
|
ba93ae55a9
|
Merge pull request #811 from sususu98/feat/event-logging-endpoint
feat: 添加 Claude Code 遥测端点并优化日志级别
|
2025-12-16 19:34:44 -05:00 |
|
Wesley Liddick
|
53cda0fd18
|
Merge pull request #806 from XiaoXice/main [skip ci]
fix: 全时间api-token统计因为日token记录过期导致不准的问题
|
2025-12-16 19:34:35 -05:00 |
|
Wesley Liddick
|
151cb7536c
|
Merge pull request #808 from SilentFlower/fix/openai-scheduler-priority [skip ci]
fix(scheduler): 恢复OpenAI 账号选择支持 priority + lastUsedAt
|
2025-12-16 19:33:18 -05:00 |
|
sususu
|
0994eb346f
|
format
|
2025-12-16 18:32:11 +08:00 |
|
sususu
|
4863a37328
|
feat: 添加 Claude Code 遥测端点并优化日志级别
- 添加 /api/event_logging/batch 端点处理客户端遥测请求
- 将遥测相关请求日志改为 debug 级别,减少日志噪音
|
2025-12-16 18:31:07 +08:00 |
|
huajiwuyan
|
052e236a93
|
fix(scheduler): 恢复OpenAI 账号选择支持 priority + lastUsedAt
|
2025-12-15 23:17:44 +08:00 |
|
XiaoXice
|
c79ea19aa1
|
fix: 全时间api-token统计因为日token记录过期导致不准的问题
|
2025-12-15 15:14:09 +08:00 |
|
github-actions[bot]
|
79f2cebdb8
|
chore: sync VERSION file with release v1.1.235 [skip ci]
v1.1.235
|
2025-12-15 01:48:14 +00:00 |
|
Wesley Liddick
|
bd7b8884ab
|
Merge pull request #801 from miraserver/fix/cost-calculation-and-ui-display
fix: correct API key cost calculation and UI display issues
|
2025-12-14 20:48:00 -05:00 |
|