zebra-report/web
Russell Ballestrini 1984bb1d41
zebra-spaces: always-SFU receive audio + 0.7s worklet cushion
SFU is the only receive-audio path. Mesh PCs carry our outbound
mic; their inbound audio is ignored. handleRemoteSfuTrack always
attaches the SFU stream regardless of mesh peer state. mesh
pc.ontrack is a no-op breadcrumb.

SPEAKER_PLAYOUT_DELAY_SEC bumped 0.5s → 0.7s so the worklet
cushion absorbs the 200ms host-wiggle that mesh's lower-latency
path used to absorb. DD_BASE_TARGET_SEC tracks at 0.7s as the
Double Dragon adaptive floor.

Tests pin the new contract:
  - SPEAKER_PLAYOUT_DELAY_SEC === 0.7
  - SFU attaches across every mesh peer state (connected,
    failed, connecting, disconnected, missing)
  - in-place setWorkletStream still works (renegotiation path)
2026-06-07 19:33:58 -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: fresh-stream wrap on mic ontrack + mute-gate mesh swap (kill fedora-chrome silence) 2026-06-07 11:33:57 -04:00
host-your-own.html zebra-spaces: fresh-stream wrap on mic ontrack + mute-gate mesh swap (kill fedora-chrome silence) 2026-06-07 11:33:57 -04:00
how-it-works.html zebra-spaces: fresh-stream wrap on mic ontrack + mute-gate mesh swap (kill fedora-chrome silence) 2026-06-07 11:33:57 -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: fresh-stream wrap on mic ontrack + mute-gate mesh swap (kill fedora-chrome silence) 2026-06-07 11:33:57 -04:00
zebra-spaces.html zebra-spaces: always-SFU receive audio + 0.7s worklet cushion 2026-06-07 19:33:58 -04:00