fix(model-resolution): honor user config overrides on cold cache
When provider-models cache is cold (first run / cache miss),
resolveModelForDelegateTask returns {skipped: true}. Previously this
caused the subagent resolver to:
1. Ignore the user's explicit model override (e.g. explore.model)
2. Fall through to the hardcoded fallback chain which may contain
model IDs that don't exist in the provider catalog
Now:
- subagent-resolver: if resolution is skipped but user explicitly
configured a model, use it directly
- subagent-resolver: don't assign hardcoded fallback chain on skip
- category-resolver: same — don't leak hardcoded chain on skip
- general-agents: if user model fails resolution, use it as-is
instead of falling back to hardcoded chain first entry
Closes #2820
This commit is contained in:
@@ -78,12 +78,16 @@ export function collectPendingBuiltinAgents(input: {
|
||||
})
|
||||
if (!resolution) {
|
||||
if (override?.model) {
|
||||
log("[agent-registration] User-configured model could not be resolved, falling back", {
|
||||
// User explicitly configured a model but resolution failed (e.g., cold cache).
|
||||
// Honor the user's choice directly instead of falling back to hardcoded chain.
|
||||
log("[agent-registration] User-configured model not resolved, using as-is", {
|
||||
agent: agentName,
|
||||
configuredModel: override.model,
|
||||
})
|
||||
resolution = { model: override.model, provenance: "override" as const }
|
||||
} else {
|
||||
resolution = getFirstFallbackModel(requirement)
|
||||
}
|
||||
resolution = getFirstFallbackModel(requirement)
|
||||
}
|
||||
if (!resolution) continue
|
||||
const { model, variant: resolvedVariant } = resolution
|
||||
|
||||
Reference in New Issue
Block a user