zebra-report/web
Russell Ballestrini cc46d96d30
zebra-spaces: queue SFU ontrack until peer-joined catches up
Race when the host rejoined during their 30s grace window: the SFU
renegotiation that delivered the new mic track arrived over SSE BEFORE
the signal-server's peer-joined for the rejoined host. ontrack's
streams[0].id (= host's pubkey hex) had no matching member yet, so
the track was silently discarded — the listener saw no audio.

Cache the unmatched stream by pubkey hex and flush whenever the
roster updates (peer-joined, host-promoted, state). When the rejoined
host's peer-joined arrives, the queued stream pops out and attaches
to their row. Cleared on sfuUnsubscribe so stale streams don't carry
across rejoins.
2026-05-31 14:08:53 -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 web: every page works on mobile without horizontal overflow 2026-05-31 13:52:32 -04:00
host-your-own.html web: every page works on mobile without horizontal overflow 2026-05-31 13:52:32 -04:00
how-it-works.html web: every page works on mobile without horizontal overflow 2026-05-31 13:52:32 -04:00
index.html web: every page works on mobile without horizontal overflow 2026-05-31 13:52:32 -04:00
kernel.html web: every page works on mobile without horizontal overflow 2026-05-31 13:52:32 -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 web: every page works on mobile without horizontal overflow 2026-05-31 13:52:32 -04:00
zebra-spaces.html zebra-spaces: queue SFU ontrack until peer-joined catches up 2026-05-31 14:08:53 -04:00