startAudio() now dynamically loads the selected WZP client variant:
- /audio-variant [pure|hybrid|full|ws|ws-fec|ws-full]
- Loads variant JS from wzp-web's /audio/js/ path via Caddy
- Falls back to inline pure implementation if variant fails to load
- Variant persisted in localStorage across sessions
- Call bar shows active variant: "In call [ws-fec] with 0x..."
Variants:
pure — raw PCM over WS (bridge needed, no WASM)
hybrid — raw PCM + WASM FEC over WS (bridge needed)
full — WebTransport + FEC + crypto (no bridge, future)
ws — WZP protocol over WS (relay direct)
ws-fec — WZP + WASM FEC over WS (relay direct)
ws-full — WZP + FEC + E2E crypto over WS (relay direct)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>