apps/server/src/preview/PortScanner.test.ts | 557 ++++++++++++++++++++++++++++++-- apps/server/src/preview/PortScanner.ts | 336 +++++++++++++++++-- apps/server/src/ws.ts | 22 +- apps/web/src/components/preview/PreviewEmptyState.test.tsx | 2 - apps/web/src/components/preview/PreviewEmptyState.tsx | 9 +- apps/web/src/components/preview/PreviewLocalServerCard.tsx | 23 +- apps/web/src/components/preview/PreviewView.tsx | 1 - apps/web/src/components/preview/useDiscoveredLocalServers.test.ts | 113 ++++--- apps/web/src/components/preview/useDiscoveredLocalServers.ts | 81 ++--- apps/web/src/portDiscoveryState.test.ts | 35 ++ apps/web/src/portDiscoveryState.ts | 61 +++- packages/client-runtime/src/state/preview.ts | 3 + packages/contracts/src/preview.test.ts | 20 ++ packages/contracts/src/preview.ts | 10 +- packages/contracts/src/rpc.ts | 5 +- 15 files changed, 1065 insertions(+), 213 deletions(-)