From 1ff5392fb1e3a588efc27f178b3334733e0bf45e Mon Sep 17 00:00:00 2001 From: daniel-lxs Date: Thu, 30 Oct 2025 13:58:02 -0500 Subject: [PATCH] ui(router-models): guard subscription to only resolve matching provider filter to avoid race with active-only payload (pairs with #8916 backend filtering) --- .../src/components/ui/hooks/useRouterModels.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/webview-ui/src/components/ui/hooks/useRouterModels.ts b/webview-ui/src/components/ui/hooks/useRouterModels.ts index e2c4c9a1ca..5a3a761ecb 100644 --- a/webview-ui/src/components/ui/hooks/useRouterModels.ts +++ b/webview-ui/src/components/ui/hooks/useRouterModels.ts @@ -28,6 +28,18 @@ const getRouterModels = async (providers?: string[]) => const message: ExtensionMessage = event.data if (message.type === "routerModels") { + const msgProviders = message?.values?.providers as string[] | undefined + const requestedKey = providers && providers.length > 0 ? providers.slice().sort().join(",") : "all" + const responseKey = + Array.isArray(msgProviders) && msgProviders.length > 0 + ? msgProviders.slice().sort().join(",") + : "all" + + if (requestedKey !== responseKey) { + // Not our response; ignore and wait for the matching one + return + } + clearTimeout(timeout) cleanup()