diff --git a/docs/tickets/0001-fedora-chrome-cannot-hear-speakers.md b/docs/tickets/0001-fedora-chrome-cannot-hear-speakers.md new file mode 100644 index 0000000..6d4a660 --- /dev/null +++ b/docs/tickets/0001-fedora-chrome-cannot-hear-speakers.md @@ -0,0 +1,104 @@ +# 0001: fedora chrome cannot hear speakers + +**Status:** in-progress +**Priority:** P0 (silent regression — every invariant green except audible output) +**Surface:** fedora chrome — observed under both listener and speaker roles +**First seen:** 2026-06-04 (or earlier — "for days") +**Reporter:** fox (blanka-chrome identity) + +## Symptom + +On fedora chrome, no audio from any speaker in the room is audible. Affects +every role chrome takes: as listener, no mic audio plays. As speaker, no +peer mic audio plays through the mesh+SFU path. Same chrome can publish +mic + camera + screen fine — only the receive-side audio is silent. + +Other browsers on the same machine (firefox) hear the room correctly once +the same code is loaded — so the codebase is not uniformly broken. + +## Telemetry / Repro + +Signal-server log (`/var/log/zebra-spaces-signal.log`, +`CLIENT_LOG actor_handle="blanka-chrome"`) on 2026-06-06 ~23:24 UTC: + +``` +· role=speaker sub=connected/connected pub=connected/connected + mesh=2 sListen=0 streamMode=0 muted=1 xcr=off + aud.recv pkt=308 lost=0 bytes=197428 jitter=0.0080 level=0.000 jbuf=? lp=0.2s + aud.recv pkt=22075 lost=3 bytes=44147 jitter=0.3210 level=0.000 jbuf=? lp=0.9s + aud.recv pkt=44242 lost=4 bytes=751664 jitter=0.0260 level=0.000 jbuf=? lp=0.3s +``` + +- RTP arriving at ~50 pps on the active speaker (real Opus voice traffic) +- `level=0.000` on EVERY receiver +- `mesh=2` (both mesh peers connected) +- `sub=connected` and `pub=connected` (both SFU PCs healthy) + +Earlier in the session: + +``` +audio attach uuid=2d4a target=0.5s (current pool=3) +audio via AudioContext 2d4a target=0.5s ctxState=running +jitter-buffer installed uuid=2d4a target=0.5s +jitter-buffer started uuid=2d4a target=0.5s +mesh stream swapped into worklet for 2d4a — buffer cushion now applies to mesh too +``` + +Every attach invariant green. Worklet `started` event fired. ctxState=running. +Yet the user hears nothing. + +User report: chrome tab indicator shows NO audio playing. + +## Hypothesis + +**Primary (deployed 2026-06-06, awaiting retest):** the speaker-output +dropdown in the page calls `setSinkId` on `