fix(runtime-fallback): make fallback provider selection provider-agnostic (fixes #2303)

This commit is contained in:
MoerAI
2026-03-19 21:02:34 +09:00
committed by sspark-kisane
parent d2a49428b9
commit 0e610a72bc
4 changed files with 82 additions and 3 deletions
+9 -2
View File
@@ -130,14 +130,21 @@ export function getNextFallback(
const providerModelsCache = readProviderModelsCache()
const connectedProviders = providerModelsCache?.connected ?? readConnectedProvidersCache()
const connectedSet = connectedProviders ? new Set(connectedProviders) : null
const connectedSet = connectedProviders
? new Set(connectedProviders.map((provider) => provider.toLowerCase()))
: null
const isReachable = (entry: FallbackEntry): boolean => {
if (!connectedSet) return true
// Gate only on provider connectivity. Provider model lists can be stale/incomplete,
// especially after users manually add models to opencode.json.
return entry.providers.some((p) => connectedSet.has(p))
if (entry.providers.some((provider) => connectedSet.has(provider.toLowerCase()))) {
return true
}
const preferredProvider = state.providerID.toLowerCase()
return connectedSet.has(preferredProvider)
}
while (state.attemptCount < fallbackChain.length) {