shaw
|
22928aeae3
|
fix: 优化droid默认启用推理的问题
|
2025-10-12 20:16:13 +08:00 |
|
shaw
|
2fa1b0b1dc
|
fix: 优化创建apikey成功弹窗
|
2025-10-12 19:59:01 +08:00 |
|
shaw
|
33e69ac6e2
|
fix: 修复droid claude的temperature参数问题
|
2025-10-12 19:14:25 +08:00 |
|
github-actions[bot]
|
0b00682e74
|
chore: sync VERSION file with release v1.1.171 [skip ci]
|
2025-10-12 10:36:15 +00:00 |
|
shaw
|
45dab2af40
|
fix: 修复temperature参数传递问题
|
2025-10-12 18:35:28 +08:00 |
|
shaw
|
40b7c68694
|
fix: 修复账号过期时间的一系列bug
|
2025-10-12 18:35:05 +08:00 |
|
github-actions[bot]
|
f513be4328
|
chore: sync VERSION file with release v1.1.170 [skip ci]
|
2025-10-12 06:11:52 +00:00 |
|
shaw
|
a3dacbccd0
|
refactor: 编辑账户时隐藏过期时间表单,使用独立编辑弹窗
## 问题分析
编辑账户时显示过期时间表单存在以下问题:
1. **相对时间 vs 绝对时间冲突**:
- 下拉框提供相对时间选项(30天、90天等)
- 实际存储的是绝对时间(如 2025-02-15)
- 过了1天后,无法准确对应原来的"30天"选项
2. **用户体验混乱**:
- 设置了30天过期,编辑时下拉框显示"永不过期"
- 无法准确回显用户当初的选择
- 容易误导用户
3. **功能重复**:
- 已有独立的AccountExpiryEditModal弹窗专门编辑过期时间
- 该弹窗使用绝对时间显示,更清晰准确
## 解决方案
仅在编辑模式下隐藏过期时间表单:
- 创建账户时:保留过期时间表单(相对时间设置合理)
- 编辑账户时:隐藏过期时间表单,引导用户使用独立的编辑弹窗
## 实现细节
在两处过期时间表单添加 v-if="!isEdit" 条件:
- 第645行:OAuth添加方式的表单
- 第2116行:手动添加方式的表单
## 用户流程改进
- 创建账户:可以快速选择相对过期时间(30天、90天等)
- 编辑账户:在列表中点击"编辑到期时间"按钮 → 使用独立弹窗编辑
- 弹窗优势:显示当前绝对过期时间、支持快捷延期、实时预览新时间
文件: web/admin-spa/src/components/accounts/AccountForm.vue:645,2116
|
2025-10-12 14:04:16 +08:00 |
|
shaw
|
62e457932e
|
fix: 修复账户编辑时过期时间不回显的问题
## 问题描述
在账户编辑页面,虽然过期时间已保存并在列表中正确显示,但点击编辑时:
- expireDuration 和 customExpireDate 字段为空
- 导致过期时间选择器显示为空白状态
## 根本原因
AccountForm.vue 的 form 初始化时:
- expiresAt 正确读取了 props.account?.expiresAt
- 但 expireDuration 和 customExpireDate 都初始化为空字符串
- 缺少从 expiresAt 反向初始化这两个字段的逻辑
## 修复方案
修改 form 初始化逻辑(第 3443-3457 行):
- expireDuration: 如果存在 expiresAt,设置为 'custom'
- customExpireDate: 如果存在 expiresAt,转换为 datetime-local 格式 (YYYY-MM-DDTHH:mm)
- expiresAt: 保持原有逻辑不变
## 技术细节
使用 IIFE (立即执行函数) 在 reactive 对象初始化时计算初始值:
```javascript
expireDuration: (() => {
if (props.account?.expiresAt) return 'custom'
return ''
})()
```
## 测试验证
- ✅ 编辑已设置过期时间的账户,过期时间正确回显
- ✅ 编辑未设置过期时间的账户,显示为永不过期
- ✅ AccountExpiryEditModal 组件已有正确的初始化逻辑,无需修改
文件: web/admin-spa/src/components/accounts/AccountForm.vue:3443-3457
|
2025-10-12 13:56:26 +08:00 |
|
shaw
|
0d7a200505
|
Merge PR #512: 添加 OpenAI chat/completions 兼容支持
## 主要功能
- ✅ 使用策略模式处理不同后端(Claude/OpenAI/Gemini)
- ✅ 添加 OpenAI chat/completions 兼容支持
- ✅ 修复代码缩进符合 ESLint 规范
## 核心变更
### 1. 后端检测机制
添加 `detectBackendFromModel()` 函数:
- 根据模型名称前缀检测后端(claude-/gpt-/gemini-)
- 默认使用 Claude 后端
### 2. 扩展模型列表
/v1/models 端点现在返回:
- Claude 模型:Sonnet 4.5, Opus 4.1, Sonnet 4, Haiku等
- OpenAI 模型:gpt-4o, gpt-4o-mini, gpt-4-turbo等
- Gemini 模型:gemini-1.5-pro, gemini-1.5-flash等
### 3. OpenAI 兼容支持
- 添加 `validateChatCompletionRequest()` 验证函数
- 支持 OpenAI chat/completions 请求格式
- 实现流式和非流式响应处理
### 4. 代码规范
- 修复 ESLint 缩进问题
- 统一代码格式
## 技术细节
- 修改文件:src/routes/api.js, src/services/openaiToClaude.js 等
- 版本更新:1.1.168 → 1.1.169
- 保留了之前添加的账户过期检查逻辑(来自PR #541)
作者: bottotl
PR: https://github.com/Wei-Shaw/claude-relay-service/pull/512
|
2025-10-12 13:49:20 +08:00 |
|
shaw
|
a84f344df6
|
Merge PR #541: 添加账户订阅到期时间管理功能 + 修复核心过期检查逻辑
## 原PR功能
- ✅ 后端添加subscriptionExpiresAt字段支持
- ✅ 前端提供到期时间设置界面(快捷选项 + 自定义日期)
- ✅ 账户列表显示到期状态(已过期🔴/即将过期🟠/永不过期⚪)
- ✅ 新增AccountExpiryEditModal.vue编辑弹窗组件
- ✅ 支持创建和更新账户时设置到期时间
- ✅ 完整支持暗黑模式
## 🔧 关键修复(本次提交)
原PR缺少核心过期检查逻辑,过期账户仍会被调度使用。本次合并时添加了:
1. **新增isAccountNotExpired()方法**:
- 检查账户subscriptionExpiresAt字段
- 未设置过期时间视为永不过期
- 添加debug日志记录过期账户
2. **在selectAvailableAccount()中添加过期检查**:
- 过滤逻辑中集成this.isAccountNotExpired(account)
- 确保过期账户不被选择
3. **在selectAccountForApiKey()中添加过期检查**:
- 绑定账户检查中添加过期验证
- 共享池过滤中添加过期验证
## 🗑️ 清理工作
- 移除了不应提交的account_expire_feature.md评审文档(756行)
## 技术细节
- API层使用expiresAt,存储层使用subscriptionExpiresAt
- 存储格式:ISO 8601 (UTC)
- 空值表示:null表示永不过期
- 时区处理:后端UTC,前端自动转换本地时区
作者: mrlitong (原PR) + Claude Code (修复)
PR: https://github.com/Wei-Shaw/claude-relay-service/pull/541
|
2025-10-12 13:42:57 +08:00 |
|
shaw
|
8e415f8ff8
|
Merge PR #545: 常用模型增加deepseek-chat;修复修改时默认选择白名单
- Claude Console类型账户默认白名单模型增加deepseek-chat模型
- 修复白名单模式下的初始化逻辑:
* 白名单模式:正确设置allowedModels用于显示勾选的模型
* 同时保留modelMappings以便用户切换到映射模式时有初始数据
* 映射模式:只设置modelMappings,不填充allowedModels
- 增加代码注释,清晰说明不同模式的数据设置逻辑
作者: looksgood
PR: https://github.com/Wei-Shaw/claude-relay-service/pull/545
|
2025-10-12 13:34:10 +08:00 |
|
shaw
|
df2527a86c
|
Merge PR #548: 修复Claude Console流式响应usage统计不完整问题
- 完善message_delta中usage数据提取逻辑,支持提取input_tokens、cache_read_input_tokens等所有字段
- 添加兜底保护机制,确保流结束时不会丢失未保存的usage数据
- 提升关键日志级别从debug到info,便于问题排查
- 修复流式请求中input_tokens和cache_read_input_tokens为0的统计bug
作者: DokiDoki1103
PR: https://github.com/Wei-Shaw/claude-relay-service/pull/548
|
2025-10-12 13:30:25 +08:00 |
|
shaw
|
b7cd143b4c
|
fix: 修复temperature参数冲突问题
|
2025-10-12 13:25:43 +08:00 |
|
shaw
|
a58d67940c
|
fix: 优化并发计数过期清理
|
2025-10-12 13:14:15 +08:00 |
|
jft0m
|
44c6be129b
|
Merge branch 'Wei-Shaw:main' into main
|
2025-10-12 09:28:12 +08:00 |
|
litongtongxue
|
c8c337099e
|
Merge upstream/main into feature/account-expiry-management
解决与 upstream/main 的代码冲突:
- 保留账户到期时间 (expiresAt) 功能
- 采用 buildProxyPayload() 函数重构代理配置
- 同步最新的 Droid 平台功能和修复
主要改动:
- AccountForm.vue: 整合到期时间字段和新的 proxy 处理方式
- 合并 upstream 的 Droid 多 API Key 支持等新特性
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-12 00:55:25 +08:00 |
|
github-actions[bot]
|
e337d1fb43
|
chore: sync VERSION file with release v1.1.169 [skip ci]
|
2025-10-11 15:06:40 +00:00 |
|
shaw
|
26894f485b
|
feat: droid账号增加apikey数量显示
|
2025-10-11 23:05:48 +08:00 |
|
shaw
|
0b2610842a
|
feat: droid apikey异常自动移除
|
2025-10-11 22:39:41 +08:00 |
|
shaw
|
53dee11a10
|
feat: droid的apikey模式适配多种更新方式
|
2025-10-11 22:15:38 +08:00 |
|
shaw
|
6dcb8b9449
|
fix: 修复droid转发流式请求判断
|
2025-10-11 20:46:05 +08:00 |
|
DokiDoki1103
|
b7fe75cb60
|
fix: 修复Claude Console流式响应usage统计不完整问题
- 完善message_delta中usage数据提取逻辑,支持提取input_tokens、cache_read_input_tokens等所有字段
- 添加兜底保护机制,确保流结束时不会丢失未保存的usage数据
- 提升关键日志级别从debug到info,便于问题排查
- 修复流式请求中input_tokens和cache_read_input_tokens为0的统计bug
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-11 20:16:44 +08:00 |
|
liangjie.wanglj
|
c81ec34ad8
|
常用模型增加deepseek-chat;修复修改时默认选择白名单
|
2025-10-11 18:53:41 +08:00 |
|
github-actions[bot]
|
6b85a027bd
|
chore: sync VERSION file with release v1.1.168 [skip ci]
|
2025-10-11 09:43:36 +00:00 |
|
shaw
|
56fe7be8ec
|
fix: 优化claude code系统提示词判断
|
2025-10-11 17:34:17 +08:00 |
|
github-actions[bot]
|
b408a7122d
|
chore: sync VERSION file with release v1.1.167 [skip ci]
|
2025-10-11 06:23:44 +00:00 |
|
shaw
|
cd9a2025b2
|
fix: 适配droid调用claude code订阅接口
|
2025-10-11 14:17:08 +08:00 |
|
github-actions[bot]
|
3862a1d77c
|
chore: sync VERSION file with release v1.1.166 [skip ci]
|
2025-10-11 05:03:04 +00:00 |
|
shaw
|
9b211b063b
|
feat: 适配claude的400错误码
|
2025-10-11 13:00:02 +08:00 |
|
shaw
|
4a925e2f8b
|
docs: 更新droid部分内容
|
2025-10-11 12:37:37 +08:00 |
|
shaw
|
a6f5876eca
|
fix: 修复droid类型账号类型显示
|
2025-10-11 11:48:20 +08:00 |
|
shaw
|
6f2307721b
|
fix: 修复droid账号调度接口404问题
|
2025-10-11 11:34:13 +08:00 |
|
shaw
|
6c2ef2eef3
|
fix: 修复droid账号更新丢失apikey的问题
|
2025-10-11 11:23:24 +08:00 |
|
shaw
|
c56bebdbe5
|
fix: 修复droid分组调度保存无效的问题
|
2025-10-11 11:07:05 +08:00 |
|
shaw
|
19fa518e65
|
fix: 修复droid追加和代理代理IP提交异常的问题
|
2025-10-11 10:50:26 +08:00 |
|
litongtongxue
|
a82dcebd7b
|
feat: 添加账户订阅到期时间管理功能
## 新增功能
- 支持为 Claude 账户设置订阅到期时间
- 前端提供到期时间选择器(快捷选项 + 自定义日期)
- 账户列表显示到期状态(已过期/即将过期/永不过期)
- 新增独立的到期时间编辑弹窗组件
## 技术变更
- 后端新增 subscriptionExpiresAt 字段存储
- 前端使用 expiresAt 字段进行交互
- 支持创建、编辑、显示完整流程
## 包含文件
- src/routes/admin.js: POST/PUT 端点支持 expiresAt 字段
- src/services/claudeAccountService.js: 存储和返回到期时间
- web/admin-spa/src/components/accounts/AccountForm.vue: 表单添加到期时间选择
- web/admin-spa/src/views/AccountsView.vue: 列表显示和编辑功能
- web/admin-spa/src/components/accounts/AccountExpiryEditModal.vue: 新增编辑弹窗
- account_expire_feature.md: 代码评审报告和优化建议
## 注意事项
⚠️ 本次提交包含初步实现,详细的优化建议请查看 account_expire_feature.md
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-11 01:05:21 +08:00 |
|
jft0m
|
1c80970aef
|
Merge branch 'Wei-Shaw:main' into main
|
2025-10-10 21:37:18 +08:00 |
|
github-actions[bot]
|
80059e2b09
|
chore: sync VERSION file with release v1.1.165 [skip ci]
|
2025-10-10 13:11:04 +00:00 |
|
shaw
|
c9ad287587
|
docs: 更新droid教程部分
|
2025-10-10 21:06:02 +08:00 |
|
shaw
|
6b02dbf040
|
fix: 优化droid转发错误传递
|
2025-10-10 20:05:13 +08:00 |
|
shaw
|
e150bc4beb
|
fix: droid转发移除claude code的metadata参数
|
2025-10-10 19:15:25 +08:00 |
|
shaw
|
1198ee1619
|
fix: 修复codex传递的gpt-5模型无法使用droid账号的问题
|
2025-10-10 18:40:19 +08:00 |
|
shaw
|
14e54c0473
|
docs: 更新Droid 使用教程
|
2025-10-10 17:34:53 +08:00 |
|
shaw
|
66fe3cf74a
|
fix: 优化count_tokens接口不受并发跟客户端限制
|
2025-10-10 17:16:10 +08:00 |
|
shaw
|
5165d6c536
|
Merge branch 'fix/tutorial-dark-theme' into merge-pr523
|
2025-10-10 16:38:45 +08:00 |
|
shaw
|
6a5b53c047
|
Merge branch 'pr-527' into merge-pr523
|
2025-10-10 16:38:32 +08:00 |
|
shaw
|
e209a23ae7
|
Merge branch 'pr-532' into merge-pr523
|
2025-10-10 16:37:35 +08:00 |
|
shaw
|
b28631e737
|
Merge branch 'pr-523' into merge-pr523
|
2025-10-10 16:34:29 +08:00 |
|
shaw
|
fad9e52c98
|
feat: Droid平台支持多apikey添加
|
2025-10-10 16:09:15 +08:00 |
|