From fa9b465d54a2a2db74546857352bb3c67fad884e Mon Sep 17 00:00:00 2001 From: Jon Ayers Date: Mon, 24 Nov 2025 18:34:33 -0500 Subject: [PATCH 1/2] fix: fix web terminals not spawning for electron --- src/desktop/terminalWindowManager.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/desktop/terminalWindowManager.ts b/src/desktop/terminalWindowManager.ts index d63e1e995..6431e4b9f 100644 --- a/src/desktop/terminalWindowManager.ts +++ b/src/desktop/terminalWindowManager.ts @@ -5,7 +5,7 @@ * Each workspace can have multiple terminal windows open simultaneously. */ -import { BrowserWindow } from "electron"; +import { app, BrowserWindow } from "electron"; import * as path from "path"; import { log } from "@/node/services/log"; import type { Config } from "@/node/config"; @@ -71,19 +71,18 @@ export class TerminalWindowManager { }); // Load the terminal page - const isDev = !process.env.NODE_ENV || process.env.NODE_ENV === "development"; - - if (isDev) { + // app.isPackaged is true when running from a built .app/.exe, false in development + if (app.isPackaged) { + // Production mode - load from built files + await terminalWindow.loadFile(path.join(__dirname, "../terminal.html"), { + query: { workspaceId }, + }); + } else { // Development mode - load from Vite dev server await terminalWindow.loadURL( `http://localhost:5173/terminal.html?workspaceId=${encodeURIComponent(workspaceId)}` ); terminalWindow.webContents.openDevTools(); - } else { - // Production mode - load from built files - await terminalWindow.loadFile(path.join(__dirname, "../terminal.html"), { - query: { workspaceId }, - }); } log.info(`Terminal window ${windowId} opened for workspace: ${workspaceId}`); From c89e5e6212b68d3ee2b2c6eb09b8f572082e01c7 Mon Sep 17 00:00:00 2001 From: Jon Ayers Date: Mon, 24 Nov 2025 18:43:26 -0500 Subject: [PATCH 2/2] feedback --- src/desktop/terminalWindowManager.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/desktop/terminalWindowManager.ts b/src/desktop/terminalWindowManager.ts index 6431e4b9f..1b581cc4a 100644 --- a/src/desktop/terminalWindowManager.ts +++ b/src/desktop/terminalWindowManager.ts @@ -71,18 +71,21 @@ export class TerminalWindowManager { }); // Load the terminal page - // app.isPackaged is true when running from a built .app/.exe, false in development - if (app.isPackaged) { - // Production mode - load from built files - await terminalWindow.loadFile(path.join(__dirname, "../terminal.html"), { - query: { workspaceId }, - }); - } else { + // Match main window logic: use dev server unless packaged or MUX_E2E_LOAD_DIST=1 + const forceDistLoad = process.env.MUX_E2E_LOAD_DIST === "1"; + const useDevServer = !app.isPackaged && !forceDistLoad; + + if (useDevServer) { // Development mode - load from Vite dev server await terminalWindow.loadURL( `http://localhost:5173/terminal.html?workspaceId=${encodeURIComponent(workspaceId)}` ); terminalWindow.webContents.openDevTools(); + } else { + // Production mode (or E2E dist mode) - load from built files + await terminalWindow.loadFile(path.join(__dirname, "../terminal.html"), { + query: { workspaceId }, + }); } log.info(`Terminal window ${windowId} opened for workspace: ${workspaceId}`);