Commit graph

356 commits

Author SHA1 Message Date
6e42fc180c
zebra-spaces: deploy worklet sticky-started re-arm fix 2026-06-04 15:34:58 -04:00
7e17f9a5d2
zebra-spaces: deploy AudioWorklet listener jitter buffer 2026-06-04 15:26:09 -04:00
64ac008440
zebra-spaces: deploy jitterBufferTarget + jbuf telemetry 2026-06-04 15:10:40 -04:00
9f9dc91f7f
zebra-spaces: deploy split outbound telemetry per kind 2026-06-04 14:53:41 -04:00
50452361ae
zebra-spaces: deploy audio priority='high' (wiggle-storm fix mirror) 2026-06-04 14:38:14 -04:00
80a936fe7b
zebra-spaces: deploy publisher-side telemetry 2026-06-04 14:37:04 -04:00
645db6aca7
zebra-spaces: deploy peer-booted/role-change epoch refresh (mirror) 2026-06-04 14:22:28 -04:00
a2ff20534b
zebra-spaces: MuteFSM deploy (mirror of zebra-report 7f9d827) 2026-06-04 14:13:42 -04:00
8d6bf481fe
zebra-report: deploy applyPublishStateUI for share/stop buttons 2026-06-04 13:58:05 -04:00
1f19037c6f
zebra-report: deploy FSM-driven publish lifecycle (mic/camera/screen) 2026-06-04 13:55:45 -04:00
bbffd61d89
zebra-report: deploy FSM-driven call-state UI 2026-06-04 13:49:29 -04:00
385ccf5723
zebra-report: deploy silent screen-share recovery 2026-06-04 13:44:32 -04:00
be57d7769d
zebra-report: deploy sub PC rebuild on remote close 2026-06-04 13:28:00 -04:00
88ade82cf9
zebra-report: deploy full uuid in latency panel 2026-06-04 13:17:15 -04:00
ce64dd2512
zebra-report: deploy hide entry-row while joined (privacy) 2026-06-04 13:12:09 -04:00
0983639b24
zebra-report: deploy self-listener FSM (state-machine driven) 2026-06-04 13:10:30 -04:00
c578779398
zebra-report: deploy MediaSession for backgrounded mobile listeners 2026-06-04 13:01:38 -04:00
b2e8ee1a30
zebra-report: deploy kicked-self UI cleanup 2026-06-04 12:52:32 -04:00
954b4cf8fd
zebra-report: deploy expanded telemetry (lp + signal firehose) 2026-06-04 12:39:56 -04:00
6c214a19fb
zebra-report: deploy label-based mic/speaker device persistence 2026-06-04 12:36:11 -04:00
9288555d8e
zebra-report: deploy UA-gated auto-rejoin (mobile waits for tap) 2026-06-04 11:53:18 -04:00
15eca2bc92
zebra-report: deploy AudioContext oscillator-prime for Firefox Android 2026-06-04 11:50:00 -04:00
9d6b27842d
zebra-report: deploy AudioContext listener audio path (Firefox Android autoplay fix) 2026-06-04 11:46:27 -04:00
10d705beb3
zebra-report: deploy silent wedge-recovery for stuck audio elements 2026-06-04 11:37:16 -04:00
aaf7402912
zebra-report: deploy state-based autoplay-block detection 2026-06-04 11:30:57 -04:00
b8fd50c37b
zebra-report: deploy tap-to-resume + kick-clears-auto-rejoin 2026-06-04 11:27:39 -04:00
e5bb1366fc
zebra-report: deploy mod-action serializer (two-kick fix) 2026-06-04 10:44:49 -04:00
382d72b687
zebra-report: deploy realtime telemetry 2026-06-04 10:38:14 -04:00
5fc18d2423
zebra-report: deploy self-listener-mode include-self fix 2026-06-04 10:33:32 -04:00
d9e8041a37
zebra-report: deploy self-listener mode
Speakers, cohosts, and hosts can flip their own row's stream toggle
to listen via the buffered HTTP Ogg/Opus broadcast tap instead of
WebRTC. Mic auto-mutes while in that mode; unmuting hops back to the
live mesh seamlessly. Survives cellular ICE churn that breaks the
WebRTC path.
2026-06-04 10:29:34 -04:00
f39f6a4ea9
zebra-report: deploy auto-rejoin restore
Hard refresh resumes the last space again — the one-tap friction
buyback didn't actually fix the Firefox Android listener-audio bug
it was supposed to fix.
2026-06-04 10:01:23 -04:00
0843aa1317
zebra-report: deploy DJ-unmute + video lip-sync fixes
- DJ self-monitor stream now plays audibly (was muted-start with no
  unmute path for non-listeners)
- Screen / camera / game receivers get the same playoutDelayHint as
  audio so the picture stays in sync with the voice
2026-06-04 09:52:33 -04:00
22ecc0b5ba
zebra-report: remove dead audioPath references — fixes leave button
Mirror of zebra-report 3bc3edf.
2026-06-03 23:01:14 -04:00
b0bb2a1be4
zebra-report: cache-busting meta on the HTML root
Mirror of zebra-report 7981e9e.
2026-06-03 22:44:14 -04:00
63ff3ba5ec
zebra-report: trace leave click + global JS error logging
Mirror of zebra-report 6d5a2d4.
2026-06-03 22:41:28 -04:00
ccab98bee6
zebra-report: auto-rejoin pre-fills only; mute+leave hidden idle
Mirror of zebra-report 12df78a.
2026-06-03 22:21:36 -04:00
0f70d62148
zebra-report: pre-bless audio-element pool on entry click
Mirror of zebra-report 44e05b2.
2026-06-03 22:12:59 -04:00
cef405c204
zebra-report: drop play button for listeners — autoplay WebRTC
Mirror of zebra-report 9eb5b82.
2026-06-03 22:04:10 -04:00
4891a90be0
zebra-report: revert auto-DJ for listeners, restore WebRTC playback
Mirror of zebra-report 901bab1.
2026-06-03 21:42:27 -04:00
2c5d2618d6
zebra-report: swap fresh <audio> in listener click — Firefox Android fix
Mirror of zebra-report 1de3f2c.
2026-06-03 21:26:39 -04:00
c81e7e00f2
zebra-report: deeper audio-element telemetry for listener path
Mirror of zebra-report c8fc119.
2026-06-03 21:22:49 -04:00
e9aa3412f2
zebra-report: clear DJ state on leave + re-prime audio every entry
Leave was tearing down WebRTC but leaving streamMode/streamAudio/
audioPath stale — re-entry as listener saw "already enrolled" and
never made a fresh /stream request. Now leave wipes all three maps,
removes the <audio> elements, and stops the retry loop. Plus the
primeAudio one-shot gate is gone so every entry click re-primes the
mobile audio session (it can be suspended across tab background).
2026-06-03 21:12:59 -04:00
013b5c775c
zebra-report: telemetry on listener audio path
Mirror of zebra-report f196714.
2026-06-03 21:04:31 -04:00
e8bb5aadbd
zebra-report: 4s auto-enrol retry loop covers post-join publish race
If the host's mic publish lands after the listener's initial DJ auto-
enrol attempt, the 404 from the SFU was permanent — no event re-
triggered enrol. 4s interval re-checks every speaker and starts streams
that are still missing. Stops on transition out of listener.
2026-06-03 21:02:29 -04:00
fb1fabc810
zebra-report: listener mute button doubles as audio-unlock gesture
Mirror of zebra-report 334ee82.
2026-06-03 20:57:18 -04:00
995a9b230e
zebra-report: prime audio on entry click — drop tap-to-resume
Replaces the regressive tap-anywhere-to-resume queue with
primeAudioOnGesture(): the entry-button click handler plays a 1-frame
silent WAV through a hidden <audio>, blessing the page for audio.
Auto-enrolled DJ streams then play() without further user gesture.
No more "tap anywhere" message; no more flip-flop on stalled.
2026-06-03 20:31:13 -04:00
31bb90293a
zebra-report: tap-resume reload + log retry result
Calls a.load() inside the gesture before a.play() so the retry isn't
no-op'ing on an aborted element. Adds 'click' to the listened events
since Firefox Android only grants gesture-activation on click in some
configs. Logs retry success/failure so we know what's happening.
2026-06-03 20:19:01 -04:00
393b81fb23
zebra-report: tap-anywhere-to-resume on mobile autoplay block
When mobile Firefox/Safari blocks audio.play() on auto-enrolled DJ
streams, queue the elements and retry on the first pointerdown/
touchstart anywhere on the page. WebRTC stays unmuted as fallback
so the listener isn't silent in the meantime.
2026-06-03 20:16:20 -04:00
e3363d9cf1
zebra-report: stream-toggle reliability fixes
Three coupled fixes to the DJ-stream toggle path:
  - await setSinkId() before setting .src so it doesn't race + abort
    the in-flight media load
  - drop the 'stalled' handler that was ping-ponging WebRTC ↔ stream
    on every transient mobile-cellular buffer pause
  - make startStream idempotent on the same URL so a peer-joined
    auto-enrollment race can't reset .src and self-abort

Plus preload="auto" and playsInline on the dynamic <audio> for
mobile compat. Fixes "no music on phone stream stalled" and the
"autoplay blocked: aborted at user's request" log spam from host
self-monitor clicks.
2026-06-03 20:06:45 -04:00
94b981da29
zebra-report: mute button + peer-force-muted handler
Mirror of zebra-report a3c49f1 + proxy.unturf.com 90a5e96.
2026-06-03 19:51:30 -04:00