apps/desktop/src/preview/Manager.test.ts | 16 +- apps/desktop/src/preview/Manager.ts | 10 +- apps/web/src/browser/ElectronBrowserHost.tsx | 11 +- apps/web/src/browser/HostedBrowserWebview.tsx | 78 +++++---- apps/web/src/browser/browserRecording.test.ts | 43 +++++ apps/web/src/browser/browserRecording.ts | 40 +++++ apps/web/src/browser/browserSurfaceStore.test.ts | 4 +- apps/web/src/browser/browserSurfaceStore.ts | 14 +- apps/web/src/browser/browserViewportActions.test.ts | 28 ++++ apps/web/src/browser/browserViewportActions.ts | 62 ++++--- apps/web/src/browser/browserViewportLayout.test.ts | 16 ++ apps/web/src/browser/browserViewportLayout.ts | 27 +++ apps/web/src/browser/desktopTabLifetime.test.ts | 35 ++++ apps/web/src/browser/previewRuntimeTabId.test.ts | 46 +++++ apps/web/src/browser/previewRuntimeTabId.ts | 23 +++ apps/web/src/components/preview/PreviewAutomationHosts.tsx | 286 +++++++++++++++++++++++--------- apps/web/src/components/preview/PreviewView.test.tsx | 22 ++- apps/web/src/components/preview/PreviewView.tsx | 102 +++++++----- apps/web/src/components/preview/ThreadPreviewMiniPlayer.tsx | 6 +- apps/web/src/components/preview/previewAutomationOpenReadiness.test.ts | 18 ++ apps/web/src/components/preview/previewAutomationOpenReadiness.ts | 23 ++- apps/web/src/components/preview/previewNavigationReadiness.test.ts | 56 +++++++ apps/web/src/components/preview/previewNavigationReadiness.ts | 74 +++++++++ apps/web/src/components/preview/previewViewportRollback.test.ts | 36 ++++ apps/web/src/components/preview/previewViewportRollback.ts | 18 ++ apps/web/src/components/preview/usePreviewBridge.ts | 14 +- apps/web/src/components/preview/usePreviewSession.ts | 8 +- apps/web/src/previewStateStore.test.ts | 42 +++++ apps/web/src/previewStateStore.ts | 15 +- 29 files changed, 938 insertions(+), 235 deletions(-)