fa68e33a78
PLAYWRITER_HOST now accepts full URLs like `https://x-tunnel.traforo.dev` in addition to plain hostnames. Previously it always constructed `http://${host}:19988` which broke when using traforo tunnels (HTTPS on port 443). Added `parseRelayHost()` utility that detects URL protocols and returns correct HTTP/WebSocket base URLs. Updated all consumers: - cli.ts: getServerUrl() - mcp.ts: getLogServerUrl(), checkRemoteServer() - executor.ts: checkExtensionStatus() - utils.ts: getCdpUrl() (ws:// → wss:// for HTTPS hosts) Plain hostnames still work as before (appends :19988). Added docs/remote-access.md covering: - Architecture: playwriter serve + traforo tunnel through Cloudflare - Host and remote machine setup with env vars - Use cases: remote Mac mini, user support, multi-machine, VM/devcontainer - Security model: non-guessable URLs, token auth, localhost-only extension endpoint, no open ports, visible automation, instant revocation