6e83d5291b
Expose a shutdown() method on the JS-side IPN object that stops the LocalBackend, closes the safesocket listener (which unblocks srv.Run), and signals main() to return so the Go runtime exits cleanly. This allows the host environment (Node.js process or browser service worker) to terminate normally once the Tailscale WASM module is no longer needed, instead of being kept alive indefinitely by open handles, goroutines, or the Go runtime's blocking main goroutine. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>