From c39ad38424325423b195e794e63fd5b7cf314ec7 Mon Sep 17 00:00:00 2001 From: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Date: Tue, 28 Jul 2026 09:09:45 +0800 Subject: [PATCH] fix(app): refresh global provider state (#39220) --- packages/app/src/components/dialog-connect-provider.tsx | 8 +------- packages/app/src/context/server-sync.tsx | 6 ++++++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/app/src/components/dialog-connect-provider.tsx b/packages/app/src/components/dialog-connect-provider.tsx index 19aa8ce89e7..e47a5cd174f 100644 --- a/packages/app/src/components/dialog-connect-provider.tsx +++ b/packages/app/src/components/dialog-connect-provider.tsx @@ -28,7 +28,6 @@ import { Switch, } from "solid-js" import { createStore, produce } from "solid-js/store" -import { useQueryClient } from "@tanstack/solid-query" import { useParams } from "@solidjs/router" import { Link } from "@/components/link" import { useServerSDK } from "@/context/server-sdk" @@ -38,7 +37,6 @@ import { useSettings } from "@/context/settings" import { popularProviders, useProviders } from "@/hooks/use-providers" import { CustomProviderForm } from "./dialog-custom-provider" import { decode64 } from "@/utils/base64" -import { pathKey } from "@/utils/path-key" const CUSTOM_ID = "_custom" type ConnectMethod = Extract @@ -386,7 +384,6 @@ function ProviderConnection(props: { const dialog = useDialog() const serverSync = useServerSync() const serverSDK = useServerSDK() - const queryClient = useQueryClient() const params = useParams() const language = useLanguage() const settings = useSettings() @@ -707,10 +704,7 @@ function ProviderConnection(props: { }) async function complete() { - const value = directory() - await queryClient - .refetchQueries(serverSync().queryOptions.providers(value ? pathKey(value) : null)) - .catch(() => undefined) + await serverSync().refreshProviders().catch(() => undefined) dialog.close() showToast({ variant: "success", diff --git a/packages/app/src/context/server-sync.tsx b/packages/app/src/context/server-sync.tsx index 6fe6d4bd099..196cda84794 100644 --- a/packages/app/src/context/server-sync.tsx +++ b/packages/app/src/context/server-sync.tsx @@ -290,6 +290,10 @@ export function createServerSyncContextInner(serverSDK: ServerSDK) { const queryClient = useQueryClient() const homeSessions = createHomeSessionIndexCache(queryClient, ServerConnection.key(serverSDK.server)) + const refreshProviders = () => + queryClient.refetchQueries({ + predicate: (query) => query.queryKey[0] === serverSDK.scope && query.queryKey[2] === "providers", + }) let bootedAt = 0 let bootingRoot = false @@ -537,6 +541,7 @@ export function createServerSyncContextInner(serverSDK: ServerSDK) { homeSessions.apply(event) } homeSessions.refresh(event.type) + if (eventType === "integration.connection.updated") void refreshProviders() if (directory === "global") { if (eventType === "server.connected" && activeSessionsQuery.data === undefined && !activeSessionsQuery.isFetching) @@ -678,6 +683,7 @@ export function createServerSyncContextInner(serverSDK: ServerSDK) { peek: children.peek, disableMcp: children.disableMcp, queryOptions: queryOptionsApi, + refreshProviders, // bootstrap, updateConfig: updateConfigMutation.mutateAsync, project: projectApi,