From cce3bc68284d9bbbdfc80e9a679bc38ff92ad259 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Mon, 13 Apr 2026 10:26:28 -0500 Subject: [PATCH] fix(model-resolver): gate saved default restore on provider readiness Restore the isProviderRequestReady() guard lost during the main merge. Tests in model-resolver.test.ts and model-resolver-initial-model-auth.test.ts require findInitialModel() to skip an unauth'd saved default and fall through to the first available model. --- packages/pi-coding-agent/src/core/model-resolver.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/pi-coding-agent/src/core/model-resolver.ts b/packages/pi-coding-agent/src/core/model-resolver.ts index 721140600..7b608fad5 100644 --- a/packages/pi-coding-agent/src/core/model-resolver.ts +++ b/packages/pi-coding-agent/src/core/model-resolver.ts @@ -474,7 +474,10 @@ export async function findInitialModel(options: { // 3. Try saved default from settings — use it exactly as configured. // Whatever the user chose is what gets used; no silent substitution. - if (defaultProvider && defaultModelId) { + // Skip the saved default if its provider is not request-ready (no auth + // available) so we fall through to an actually-usable model instead of + // returning a stale selection every selector surface would display. + if (defaultProvider && defaultModelId && modelRegistry.isProviderRequestReady(defaultProvider)) { const found = modelRegistry.find(defaultProvider, defaultModelId); if (found) { model = found;