apps/desktop/package.json | 2 +- apps/desktop/src/app/DesktopLifecycle.test.ts | 1 + apps/desktop/src/backend/DesktopBackendPool.test.ts | 1 + apps/desktop/src/electron/ElectronDialog.ts | 9 +- apps/desktop/src/ipc/channels.ts | 1 + apps/desktop/src/ipc/methods/preview.ts | 3 + apps/desktop/src/preload.ts | 10 ++ apps/desktop/src/preview/BrowserSession.test.ts | 96 ++++++++++++++- apps/desktop/src/preview/BrowserSession.ts | 120 ++++++++++++++++++- apps/desktop/src/preview/DesktopBrowserHost.test.ts | 29 +++++ apps/desktop/src/preview/DesktopBrowserHost.ts | 20 ++++ apps/desktop/src/preview/Manager.test.ts | 185 +++++++++++++++++++++++++---- apps/desktop/src/preview/Manager.ts | 203 ++++++++++++++++++++++---------- apps/desktop/src/preview/PickPreload.ts | 2 + apps/desktop/src/window/DesktopApplicationMenu.test.ts | 30 ++++- apps/desktop/src/window/DesktopApplicationMenu.ts | 34 ++++-- apps/desktop/src/window/DesktopWindow.test.ts | 41 ++++++- apps/desktop/src/window/DesktopWindow.ts | 21 ++++ apps/web/src/browser/BrowserSurfaceSlot.tsx | 6 + apps/web/src/browser/ElectronBrowserHost.tsx | 31 ++++- apps/web/src/browser/browserTargetResolver.test.ts | 29 +++++ apps/web/src/browser/browserTargetResolver.ts | 17 +++ apps/web/src/browser/browserViewportLayout.test.ts | 10 +- apps/web/src/browser/browserViewportLayout.ts | 5 +- apps/web/src/browser/openFileInPreview.ts | 38 +++++- apps/web/src/components/AppSidebarLayout.tsx | 9 +- apps/web/src/components/ChatView.tsx | 16 +++ apps/web/src/components/ReopenClosedViewShortcut.test.tsx | 18 ++- apps/web/src/components/ReopenClosedViewShortcut.tsx | 46 +++++--- apps/web/src/components/composerContextPresentation.test.ts | 38 ++++++ apps/web/src/components/composerContextPresentation.tsx | 29 ++++- apps/web/src/components/preview/openPreviewSession.test.ts | 88 +++++++++++++- packages/contracts/src/ipc.ts | 9 ++ pnpm-lock.yaml | 22 ++-- pnpm-workspace.yaml | 2 +- 35 files changed, 1069 insertions(+), 152 deletions(-)