zebra-report/web
Russell Ballestrini 61d456d113
zebra-spaces: prime audioCtx on first interaction anywhere (fix desktop auto-rejoin regression)
Fox 2026-06-05: "speaker on firefox chrome was hard restarted and
cannot hear host" / "host is working phone listeners hear host, speaker
does not see hosts mic open or waveform."

Root cause: desktop auto-rejoin reaches joinSpace() without a click,
so primeAudioOnGesture() never fires. Chrome (Fedora especially)
leaves audioCtx suspended until a real user gesture, and the
fire-and-forget audioCtx.resume() inside attachAudioStreamViaWorklet
silently fails outside one. Worklet reports "started" but the
destination renders nothing, the meter analyser pulls no samples →
no audio, no waveform, no mic-open indicator (the indicator IS the
waveform).

Pre-zero-click-auto-rejoin, the manual entry button always primed
audio; the regression arrived with that convenience. Now: install a
document-wide one-shot click/keydown/touchstart listener that calls
primeAudioOnGesture() on first interaction anywhere. Zero-click
auto-rejoin convenience preserved — any later page click engages
audio for the rest of the session.

Listener self-unregisters after firing so we don't repeatedly spawn
silent oscillators. Idempotent — primeAudioOnGesture's audioCtx
check makes re-runs safe.
2026-06-05 16:05:54 -04:00
..
blog phase 1: unfirehose reconstruction from session JSONL ingest 2026-05-27 13:51:14 -04:00
fonts phase 2: gap analysis — cat>> append + binary asset recovery 2026-05-27 13:54:19 -04:00
chat.html zebra-spaces: listener mute button doubles as audio-unlock gesture 2026-06-03 20:57:09 -04:00
host-your-own.html zebra-spaces: listener mute button doubles as audio-unlock gesture 2026-06-03 20:57:09 -04:00
how-it-works.html zebra-spaces: listener mute button doubles as audio-unlock gesture 2026-06-03 20:57:09 -04:00
index.html web: bump mobile body padding from 1rem to 1.25rem so the right edge has visible breathing room 2026-05-31 14:13:25 -04:00
kernel.html web: bump mobile body padding from 1rem to 1.25rem so the right edge has visible breathing room 2026-05-31 14:13:25 -04:00
stamp.js web: stamp each zebra-report page with build date + md5/sha256 2026-05-28 17:50:12 -04:00
zebra-audio.html zebra-spaces: listener mute button doubles as audio-unlock gesture 2026-06-03 20:57:09 -04:00
zebra-spaces.html zebra-spaces: prime audioCtx on first interaction anywhere (fix desktop auto-rejoin regression) 2026-06-05 16:05:54 -04:00