From 2dfef8779e046dc9b3fe87668022f4ed0907adbb Mon Sep 17 00:00:00 2001 From: maria Date: Sun, 4 Oct 2026 08:55:44 -0300 Subject: [PATCH] fix(web): restore project action preview opening (#15490) --- apps/web/src/components/ChatView.tsx | 36 ++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/apps/web/src/components/ChatView.tsx b/apps/web/src/components/ChatView.tsx index e001dad666d804439c081614384449b2a22bee2b..38a53eff064dd3be29550185909c5a6c71897ad6 100644 --- a/apps/web/src/components/ChatView.tsx +++ b/apps/web/src/components/ChatView.tsx @@ -252,7 +252,8 @@ import { setActivePreviewTab, useThreadPreviewState, } from "../previewStateStore"; -import { BrowserSettingsReadError } from "../browser/openFileInPreview"; +import { BrowserSettingsReadError, openUrlInPreview } from "../browser/openFileInPreview"; +import { resolveDiscoveredServerUrl } from "../browser/browserTargetResolver"; import { previewRuntimeTabId } from "../browser/previewRuntimeTabId"; import { addBrowserSurface } from "./preview/addBrowserSurface"; import { closePreviewSession } from "./preview/closePreviewSession"; @@ -4892,12 +4893,32 @@ export default function ChatView(props: ChatViewProps) { data: `${script.command}\r`, }, }); - if (writeResult._tag === "Failure" && !isAtomCommandInterrupted(writeResult)) { - const error = squashAtomCommandFailure(writeResult); - setThreadError( - activeThreadId, - error instanceof Error ? error.message : `Failed to run script "${script.name}".`, - ); + if (writeResult._tag === "Failure") { + if (!isAtomCommandInterrupted(writeResult)) { + const error = squashAtomCommandFailure(writeResult); + setThreadError( + activeThreadId, + error instanceof Error ? error.message : `Failed to run script "${script.name}".`, + ); + } + return; + } + if (script.autoOpenPreview && script.previewUrl && isPreviewSupportedInRuntime()) { + const previewResult = await openUrlInPreview({ + threadRef: activeThreadRef, + url: resolveDiscoveredServerUrl(activeThreadRef.environmentId, script.previewUrl), + openPreview, + }); + if (previewResult._tag === "Failure" && !isAtomCommandInterrupted(previewResult)) { + const error = squashAtomCommandFailure(previewResult); + toastManager.add( + stackedThreadToast({ + type: "error", + title: "Could not open preview", + description: error instanceof Error ? error.message : "An unexpected error occurred.", + }), + ); + } } }, [ @@ -4913,6 +4934,7 @@ export default function ChatView(props: ChatViewProps) { setLastInvokedScriptByProjectId, environmentId, openTerminal, + openPreview, activeKnownTerminalIds, allocatableActiveTerminalIds, runningTerminalIds, -- 2.54.0