('/api/providers/auth-status')
},
diff --git a/desktop/src/config/providerPresets.ts b/desktop/src/config/providerPresets.ts
new file mode 100644
index 00000000..b5fcee83
--- /dev/null
+++ b/desktop/src/config/providerPresets.ts
@@ -0,0 +1,6 @@
+import providerPresetsJson from '../../../src/server/config/providerPresets.json'
+import type { ProviderPreset } from '../types/providerPreset'
+
+// Presets ship with the desktop bundle. Provider creation must remain available
+// even when the local HTTP control plane is temporarily unavailable.
+export const BUNDLED_PROVIDER_PRESETS = providerPresetsJson as ProviderPreset[]
diff --git a/desktop/src/pages/Settings.tsx b/desktop/src/pages/Settings.tsx
index 1469d507..406f7c22 100644
--- a/desktop/src/pages/Settings.tsx
+++ b/desktop/src/pages/Settings.tsx
@@ -361,9 +361,7 @@ function ProviderSettings() {
hasLoadedProviders,
presets,
isLoading,
- isPresetsLoading,
fetchProviders,
- fetchPresets,
deleteProvider,
reorderProviders,
activateProvider,
@@ -388,8 +386,7 @@ function ProviderSettings() {
useEffect(() => {
void fetchProviders()
- void fetchPresets()
- }, [fetchPresets, fetchProviders])
+ }, [fetchProviders])
const presetMap = useMemo(
() => new Map(presets.map((preset) => [preset.id, preset])),
@@ -462,7 +459,7 @@ function ProviderSettings() {
{t('settings.providers.title')}
{t('settings.providers.description')}
-