- A viewer holds one screen and any number of cameras; cameras play in the
tiles (own one mirrored), a click enlarges one
- "Watch all cameras" joins the round: cameras in the channel are watched as
they come on. Turning your own camera on joins it too
- Sound, statistics and stop work per stream
- Relay quotas and port range raised: a round uses a route per pair of people
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Vanadium forbids direct UDP for WebRTC, and mobile and company networks often
block direct connections; the only route then is a relay reached over TCP.
- server/turn.ts: STUN and TURN on one port, over UDP and TCP, with
short-lived credentials from /api/turn, quotas and a peer filter
- The browser build fetches credentials and offers the relay automatically
- Stats for nerds says when a stream is relayed and how the relay is reached
- Tests: a TURN client over UDP and TCP, and a browser limited to the relay
over TCP in the web E2E
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>