zebra-report/web
Russell Ballestrini bd770230f9
zebra-spaces: graceful mic re-acquire on BT/USB swap — no more leave+rejoin
When the host's mic device disappears (BT disconnect, USB unplug, OS
audio swap to laptop speakers), the active MediaStreamTrack ends but
the senders on every PC keep pointing at the dead track. Host goes
silent until a full leave+rejoin tears everything down and re-publishes.

Fix:
- watchMicTrack(track) listens for 'ended' on every mic track we hand
  out (initial getMic + applyMicMode re-acquire)
- reacquireMic() gets a fresh getUserMedia with the same constraints,
  then sender.replaceTrack on every live mesh peer + sfuPubPC.
  No renegotiation — codec / SDP stays the same, just the track
  swaps under the existing transceiver. Single in-flight guard so a
  burst of devicechange events doesn't race.
- devicechange listener is now an active probe: if the current track
  has gone readyState='ended' or muted=true since the last event,
  trigger reacquireMic. Firefox in particular doesn't always fire
  'ended' on BT swap — the track stays 'live' but emits silence.
2026-06-02 10:45: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 css: .row uses minmax(0, max-content) so long labels shrink + wrap 2026-06-02 09:27:55 -04:00
host-your-own.html zebra: dark mode default on all pages + unified theme key 2026-06-01 22:18:02 -04:00
how-it-works.html zebra: dark mode default on all pages + unified theme key 2026-06-01 22:18:02 -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 css: .row uses minmax(0, max-content) so long labels shrink + wrap 2026-06-02 09:27:55 -04:00
zebra-spaces.html zebra-spaces: graceful mic re-acquire on BT/USB swap — no more leave+rejoin 2026-06-02 10:45:53 -04:00