diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx index c314e52269f..73dad32da70 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx @@ -336,8 +336,18 @@ const CustomProviderDialog = (props: CustomProviderDialogProps) => { merged.map((m) => ({ variants: m.variants.map(() => ({})) })), ) setFetchStatus(language.t("provider.custom.models.fetch.added", { count: String(picked.length) })) - setFetchedModels(undefined) - setSearch("") + + // Keep the picker open with the un-picked models so the user can keep adding. + // Only close the picker when every fetched model has been added. + const pickedIds = new Set(picked.map((m) => m.id)) + const remaining = models.filter((m) => !pickedIds.has(m.id)) + if (remaining.length === 0) { + setFetchedModels(undefined) + setSearch("") + } else { + setFetchedModels(remaining) + setSelected(new Set()) + } } function cancelFetch() {