mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-22 16:43:35 +00:00
fix: 修复重置账号状态后仍被认为不可用的bug
问题描述: - 重置账号状态时虽然正确设置了 schedulable: 'true' - 但在账号选择逻辑中缺少对 schedulable !== 'false' 的检查 - 导致重置后的账号仍被认为不可用 修复内容: - selectAvailableAccount: 在 activeAccounts 过滤中添加 schedulable 检查 - selectAccountForApiKey: 在绑定账户和 sharedAccounts 过滤中添加 schedulable 检查 - 确保重置状态后的账号能正确被识别为可用 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -630,7 +630,10 @@ class ClaudeAccountService {
|
||||
const accounts = await redis.getAllClaudeAccounts()
|
||||
|
||||
let activeAccounts = accounts.filter(
|
||||
(account) => account.isActive === 'true' && account.status !== 'error'
|
||||
(account) =>
|
||||
account.isActive === 'true' &&
|
||||
account.status !== 'error' &&
|
||||
account.schedulable !== 'false'
|
||||
)
|
||||
|
||||
// 如果请求的是 Opus 模型,过滤掉 Pro 和 Free 账号
|
||||
@@ -717,7 +720,12 @@ class ClaudeAccountService {
|
||||
// 如果API Key绑定了专属账户,优先使用
|
||||
if (apiKeyData.claudeAccountId) {
|
||||
const boundAccount = await redis.getClaudeAccount(apiKeyData.claudeAccountId)
|
||||
if (boundAccount && boundAccount.isActive === 'true' && boundAccount.status !== 'error') {
|
||||
if (
|
||||
boundAccount &&
|
||||
boundAccount.isActive === 'true' &&
|
||||
boundAccount.status !== 'error' &&
|
||||
boundAccount.schedulable !== 'false'
|
||||
) {
|
||||
logger.info(
|
||||
`🎯 Using bound dedicated account: ${boundAccount.name} (${apiKeyData.claudeAccountId}) for API key ${apiKeyData.name}`
|
||||
)
|
||||
@@ -736,6 +744,7 @@ class ClaudeAccountService {
|
||||
(account) =>
|
||||
account.isActive === 'true' &&
|
||||
account.status !== 'error' &&
|
||||
account.schedulable !== 'false' &&
|
||||
(account.accountType === 'shared' || !account.accountType) // 兼容旧数据
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user