Two regressions where the phone went silent across a leave + re-enter cycle, with no way to recover short of a hard refresh: 1. Leave handler tore down WebRTC + members + tiles but left: - streamMode (Set of streaming pubHexes) - streamAudio (uuid -> <audio>) - audioPath (uuid -> 'dj'|'rtc') - autoEnrolRetryTimer running On the next entry as listener, autoEnableDjModeForListener would skip every pubHex because streamMode.has(pubHex) was still true from the prior session → startStream never called → no HTTP /stream request → phone falls back to WebRTC and stays there even when the host's mic publish is live. Fix: stopAutoEnrolRetryLoop + autoDisableDjModeForAll + remove every stale streamAudio element from the DOM + clear all three maps as part of the leave click handler. 2. primeAudioOnGesture had an audioPrimed=true short-circuit that skipped the silent-WAV prime on re-entry. Mobile browsers can suspend the audio session on tab background / leave, so a one-shot prime doesn't carry across sessions. Drop the gate — every entry click re-primes. The primer element self-removes 500ms after play() resolves so we don't accumulate hidden <audio> elements. Tests green (83 fsm + 16 zebra-spaces). |
||
|---|---|---|
| .. | ||
| blog | ||
| fonts | ||
| chat.html | ||
| host-your-own.html | ||
| how-it-works.html | ||
| index.html | ||
| kernel.html | ||
| stamp.js | ||
| zebra-audio.html | ||
| zebra-spaces.html | ||