apps/server/src/orchestration-v2/EffectOutbox.ts | 5 + apps/server/src/orchestration-v2/EffectWorker.ts | 11 ++ apps/server/src/orchestration-v2/ResourceCleanupService.ts | 16 +- apps/server/src/orchestration-v2/ThreadDeletion.test.ts | 1 + apps/server/src/orchestration-v2/ThreadDeletion.ts | 6 + apps/server/src/preview/DesktopBrowserChannel.ts | 7 + apps/server/src/preview/Manager.ts | 3 + apps/server/src/preview/PortScanner.test.ts | 114 ++++++++++++++ apps/server/src/preview/PortScanner.ts | 161 +++++++++++++++++++- apps/server/src/preview/PreviewBrowserHost.test.ts | 36 ++++- apps/server/src/preview/PreviewBrowserHost.ts | 33 +++-- apps/server/src/preview/ServerBrowser.test.ts | 255 +++++++++++++++++++++++++++++++- apps/server/src/preview/ServerBrowser.ts | 148 +++++++++++++++++- apps/server/src/preview/ServerBrowserContexts.ts | 66 ++++++++- apps/server/src/preview/ServerBrowserPage.test.ts | 31 ++++ apps/server/src/preview/ServerBrowserPage.ts | 28 +++- apps/server/src/preview/ServerBrowserStream.ts | 1 + apps/server/src/project/ProjectService.deletion.test.ts | 18 ++- apps/web/src/browser/ServerBrowserSurface.tsx | 5 + apps/web/src/components/preview/PreviewUnreachable.tsx | 44 ++++++ apps/web/src/components/preview/PreviewView.tsx | 52 ++++++- apps/web/src/components/preview/ThreadPreviewMiniPlayer.tsx | 2 + apps/web/src/components/preview/showPreviewPopup.ts | 24 +++ apps/web/src/hooks/useThreadActions.ts | 3 + apps/web/src/previewStateStore.ts | 40 +++++ packages/client-runtime/src/preview/serverBrowserStream.ts | 8 +- packages/contracts/src/preview.ts | 10 ++ packages/shared/src/preview.test.ts | 50 +++++++ packages/shared/src/preview.ts | 68 +++++++++ 29 files changed, 1202 insertions(+), 44 deletions(-)