From 6094b16986bfc39af8927907fcb4fd0c11b60059 Mon Sep 17 00:00:00 2001 From: ciregenz Date: Fri, 26 Jun 2026 07:13:17 -0700 Subject: [PATCH] [eric] browser: go back to off-screen parking for cross-dashboard cards (reload-probe PROVES off-screen keeps the login; on-screen visibility just ghosts through) --- frontend/src/app/pages/Dashboard/cards/BrowserCard.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/pages/Dashboard/cards/BrowserCard.tsx b/frontend/src/app/pages/Dashboard/cards/BrowserCard.tsx index 4e88f1a2..8ab1a462 100644 --- a/frontend/src/app/pages/Dashboard/cards/BrowserCard.tsx +++ b/frontend/src/app/pages/Dashboard/cards/BrowserCard.tsx @@ -742,14 +742,13 @@ const BrowserCard: React.FC = ({ }} sx={{ position: 'absolute', - // Kept-alive card from another dashboard: hidden via visibility but LEFT AT ITS NORMAL POSITION on purpose. Moving it off-screen makes Chromium occlusion-cull the guest, which drops a logged-in session (Discord logs out); keeping it on-screen keeps the webContents composited + alive so the login survives. Click-through so it never eats input. - visibility: keepAliveHidden ? 'hidden' : undefined, + // Kept-alive card from another dashboard: parked far off-screen so its webview surface can't bleed onto the dashboard you're viewing; click-through, webContents stays mounted. pointerEvents: keepAliveHidden ? 'none' : undefined, // contain: webview repaints don't shake neighbor cards. contain: 'layout style', // Own compositor layer so hover/paint invalidations stay contained to this card. See AgentCard for full rationale. willChange: 'transform', - left: displayX, + left: keepAliveHidden ? -100000 : displayX, top: displayY, width: displayW, height: displayH,