From c294f338d0ae5aa65f276063b6f5fbdedf5ab7fb Mon Sep 17 00:00:00 2001 From: Jonathan Dobson Date: Thu, 10 Jul 2025 17:48:01 -0400 Subject: [PATCH] rewrite WS url more robustly (#2927) --- skyvern-frontend/src/components/BrowserStream.tsx | 6 +----- .../src/routes/browserSession/BrowserSession.tsx | 2 ++ skyvern-frontend/src/util/env.ts | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/skyvern-frontend/src/components/BrowserStream.tsx b/skyvern-frontend/src/components/BrowserStream.tsx index fd4945d0..1e58b3fc 100644 --- a/skyvern-frontend/src/components/BrowserStream.tsx +++ b/skyvern-frontend/src/components/BrowserStream.tsx @@ -8,19 +8,15 @@ import { useCredentialGetter } from "@/hooks/useCredentialGetter"; import { envCredential } from "@/util/env"; import { toast } from "@/components/ui/use-toast"; import RFB from "@novnc/novnc/lib/rfb.js"; -import { environment } from "@/util/env"; +import { environment, wssBaseUrl, newWssBaseUrl } from "@/util/env"; import { cn } from "@/util/utils"; import { useClientIdStore } from "@/store/useClientIdStore"; import type { TaskApiResponse, WorkflowRunStatusApiResponse, } from "@/api/types"; - import "./browser-stream.css"; -const wssBaseUrl = import.meta.env.VITE_WSS_BASE_URL; -const newWssBaseUrl = wssBaseUrl.replace("/api", ""); - interface CommandTakeControl { kind: "take-control"; } diff --git a/skyvern-frontend/src/routes/browserSession/BrowserSession.tsx b/skyvern-frontend/src/routes/browserSession/BrowserSession.tsx index 8641ff14..fded8e38 100644 --- a/skyvern-frontend/src/routes/browserSession/BrowserSession.tsx +++ b/skyvern-frontend/src/routes/browserSession/BrowserSession.tsx @@ -20,8 +20,10 @@ function BrowserSession() { try { await client.get(`/browser_sessions/${browserSessionId}`); setHasBrowserSession(true); + return true; } catch (error) { setHasBrowserSession(false); + return false; } }, }); diff --git a/skyvern-frontend/src/util/env.ts b/skyvern-frontend/src/util/env.ts index 661d2069..faba1b04 100644 --- a/skyvern-frontend/src/util/env.ts +++ b/skyvern-frontend/src/util/env.ts @@ -26,6 +26,19 @@ const lsKeys = { optimisticBrowserSession: "skyvern.optimisticBrowserSession", }; +const wssBaseUrl = import.meta.env.VITE_WSS_BASE_URL; + +let newWssBaseUrl = wssBaseUrl; +try { + const url = new URL(wssBaseUrl); + if (url.pathname.startsWith("/api")) { + url.pathname = url.pathname.replace(/^\/api/, ""); + } + newWssBaseUrl = url.toString(); +} catch (e) { + newWssBaseUrl = wssBaseUrl.replace("/api", ""); +} + export { apiBaseUrl, environment, @@ -33,4 +46,6 @@ export { artifactApiBaseUrl, apiPathPrefix, lsKeys, + wssBaseUrl, + newWssBaseUrl, };