feat: skip model resolution for delegated tasks when provider cache not yet created
Before provider cache exists (first run), resolveModelForDelegateTask now returns undefined instead of guessing a model. This lets OpenCode use its system default model when no model is specified in the prompt body. User-specified model overrides still take priority regardless of cache state.
This commit is contained in:
@@ -2,6 +2,7 @@ import type { FallbackEntry } from "../../shared/model-requirements"
|
||||
import { normalizeModel } from "../../shared/model-normalization"
|
||||
import { fuzzyMatchModel } from "../../shared/model-availability"
|
||||
import { transformModelForProvider } from "../../shared/provider-model-id-transform"
|
||||
import { hasConnectedProvidersCache, hasProviderModelsCache } from "../../shared/connected-providers-cache"
|
||||
|
||||
function isExplicitHighModel(model: string): boolean {
|
||||
return /(?:^|\/)[^/]+-high$/.test(model)
|
||||
@@ -25,6 +26,12 @@ export function resolveModelForDelegateTask(input: {
|
||||
return { model: userModel }
|
||||
}
|
||||
|
||||
// Before provider cache is created (first run), skip model resolution entirely.
|
||||
// OpenCode will use its system default model when no model is specified in the prompt.
|
||||
if (input.availableModels.size === 0 && !hasProviderModelsCache() && !hasConnectedProvidersCache()) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
const categoryDefault = normalizeModel(input.categoryDefaultModel)
|
||||
const explicitHighBaseModel = categoryDefault ? getExplicitHighBaseModel(categoryDefault) : null
|
||||
const explicitHighModel = explicitHighBaseModel ? categoryDefault : undefined
|
||||
|
||||
Reference in New Issue
Block a user