diff --git a/src/main/services/team/TeamProvisioningService.ts b/src/main/services/team/TeamProvisioningService.ts index 4bf2b3f1..f9bac3c5 100644 --- a/src/main/services/team/TeamProvisioningService.ts +++ b/src/main/services/team/TeamProvisioningService.ts @@ -8267,6 +8267,12 @@ export class TeamProvisioningService { const primaryReason = prepare.diagnostics.find((entry) => entry.trim().length > 0) ?? prepare.reason; + if (isOpenCodeProjectEvidenceMissingPrepareFailure(prepare)) { + details.push(`Selected model ${modelId} verified for launch.`); + pushUniqueProvisioningWarning(warnings, OPENCODE_PROJECT_EVIDENCE_NOTE); + continue; + } + const unavailableLine = `Selected model ${modelId} is unavailable. ${primaryReason}`; const verificationWarningLine = `Selected model ${modelId} could not be verified. ${primaryReason}`; if (prepare.retryable) { @@ -8356,6 +8362,14 @@ export class TeamProvisioningService { if (!sharedPrepare.ok) { const primaryReason = sharedPrepare.diagnostics.find((entry) => entry.trim().length > 0) ?? sharedPrepare.reason; + if (isOpenCodeProjectEvidenceMissingPrepareFailure(sharedPrepare)) { + pushUniqueProvisioningWarning(warnings, OPENCODE_PROJECT_EVIDENCE_NOTE); + for (const modelId of modelIds) { + details.push(`Selected model ${modelId} verified for launch.`); + } + return { details, warnings, blockingMessages }; + } + for (const modelId of modelIds) { const unavailableLine = `Selected model ${modelId} is unavailable. ${primaryReason}`; const verificationWarningLine = `Selected model ${modelId} could not be verified. ${primaryReason}`; diff --git a/src/renderer/components/team/dialogs/providerPrepareDiagnostics.ts b/src/renderer/components/team/dialogs/providerPrepareDiagnostics.ts index 18896cd3..e182d279 100644 --- a/src/renderer/components/team/dialogs/providerPrepareDiagnostics.ts +++ b/src/renderer/components/team/dialogs/providerPrepareDiagnostics.ts @@ -492,6 +492,20 @@ function resolveModelResultFromCompatibilityBatch( ? (getResultReason(modelId, result) ?? normalizeModelReason(result.message)) : null; + const hasVerifiedLine = modelScopedEntries.some((entry) => + /selected model .* verified for launch\./i.test(entry) + ); + if (hasVerifiedLine) { + return { + kind: 'terminal', + result: { + status: 'ready', + line: buildModelSuccessLine(providerId, modelId), + warningLine: null, + }, + }; + } + const hasCompatibilityLine = modelScopedEntries.some((entry) => /selected model .* is compatible\. deep verification pending\./i.test(entry) );