The production code calls connection.session.getRuntimeMetrics() when
closing the WebSocket server, but MockSession in the relay-reconnect
tests didn't implement this method, causing all close() calls to throw.
Add x86_64-apple-darwin Rust target alongside the existing aarch64 target
and switch Tauri build to --target universal-apple-darwin, producing a single
DMG that runs natively on both Apple Silicon and Intel Macs.