From bde0efc9b00b96e71191c81c8a3b18ef79a765c8 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Tue, 26 May 2026 11:35:20 +0700 Subject: [PATCH] Stop rereading provider snapshots while loading --- .../src/hooks/use-providers-snapshot.test.ts | 20 +++++++++---------- .../app/src/hooks/use-providers-snapshot.ts | 8 -------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/packages/app/src/hooks/use-providers-snapshot.test.ts b/packages/app/src/hooks/use-providers-snapshot.test.ts index 175ca3545..5bae5f4a9 100644 --- a/packages/app/src/hooks/use-providers-snapshot.test.ts +++ b/packages/app/src/hooks/use-providers-snapshot.test.ts @@ -226,23 +226,21 @@ describe("providers snapshot hook cache scope", () => { await waitForSnapshotEntries(result, [codexEntry("ready", [readyCodexModel])]); }); - it("refetches loading snapshot updates through the read path but ignores empty updates", async () => { + it("applies loading snapshot updates without refetching through the read path", async () => { enableProvidersSnapshot(); - mockClient.getProvidersSnapshot - .mockResolvedValueOnce(providersSnapshot([codexEntry("ready", [])])) - .mockResolvedValueOnce(providersSnapshot([codexEntry("ready", [readyCodexModel])])); + mockClient.getProvidersSnapshot.mockResolvedValueOnce( + providersSnapshot([codexEntry("ready", [])]), + ); - renderProvidersSnapshotHook(); + const { result } = renderProvidersSnapshotHook(); await waitForSnapshotReads(1); - await emitProvidersSnapshotUpdate([]); + const loadingEntries = [codexEntry("loading")]; + await emitProvidersSnapshotUpdate(loadingEntries); + + await waitForSnapshotEntries(result, loadingEntries); expect(mockClient.getProvidersSnapshot).toHaveBeenCalledTimes(1); - - await emitProvidersSnapshotUpdate([codexEntry("loading")]); - await waitForSnapshotReads(2); - - expect(mockClient.getProvidersSnapshot).toHaveBeenLastCalledWith({}); expect(mockClient.refreshProvidersSnapshot).not.toHaveBeenCalled(); }); diff --git a/packages/app/src/hooks/use-providers-snapshot.ts b/packages/app/src/hooks/use-providers-snapshot.ts index 2af8d6607..7be26a7c5 100644 --- a/packages/app/src/hooks/use-providers-snapshot.ts +++ b/packages/app/src/hooks/use-providers-snapshot.ts @@ -85,14 +85,6 @@ export function useProvidersSnapshot( generatedAt: message.payload.generatedAt, requestId: "providers_snapshot_update", }); - const shouldRefetch = message.payload.entries.some((entry) => entry.status === "loading"); - if (shouldRefetch) { - void queryClient.invalidateQueries({ - queryKey: updateQueryKey, - exact: true, - refetchType: "active", - }); - } }); }, [client, enabled, isConnected, queryClient, serverId, supportsSnapshot]);