From 7f785b8fa589a45f6742b9bb4fb60aaa4a12863a Mon Sep 17 00:00:00 2001 From: Chris Staley Date: Thu, 2 Apr 2026 12:44:18 -0600 Subject: [PATCH] fix(gemini): refresh Available Models UI after API key add/delete Auto-sync is fire-and-forget on the server, so the dashboard needs to poll for model updates after saving a Gemini key (3s delay). On delete, refresh models immediately since DB cleanup is synchronous. --- src/app/(dashboard)/dashboard/providers/[id]/page.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/app/(dashboard)/dashboard/providers/[id]/page.tsx b/src/app/(dashboard)/dashboard/providers/[id]/page.tsx index ce09f91b3a..d1ef2eb525 100644 --- a/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +++ b/src/app/(dashboard)/dashboard/providers/[id]/page.tsx @@ -1070,6 +1070,10 @@ export default function ProviderDetailPage() { const res = await fetch(`/api/providers/${id}`, { method: "DELETE" }); if (res.ok) { setConnections(connections.filter((c) => c.id !== id)); + // Refresh model list after connection deletion (synced models may change) + if (providerId === "gemini") { + await fetchProviderModelMeta(); + } } } catch (error) { console.log("Error deleting connection:", error); @@ -1091,6 +1095,10 @@ export default function ProviderDetailPage() { if (res.ok) { await fetchConnections(); setShowAddApiKeyModal(false); + // For Gemini: auto-sync is fire-and-forget, poll for model updates + if (providerId === "gemini") { + setTimeout(() => fetchProviderModelMeta(), 3000); + } return null; } const data = await res.json().catch(() => ({}));