diff --git a/zebra-report/host-your-own.html b/zebra-report/host-your-own.html index f7fe228..8e9971c 100644 --- a/zebra-report/host-your-own.html +++ b/zebra-report/host-your-own.html @@ -507,9 +507,9 @@ handle /zebra-spaces-sfu* { reverse_proxy localhost:8092 { flush_interval -1

diff --git a/zebra-report/how-it-works.html b/zebra-report/how-it-works.html index fcc51c2..498b42c 100644 --- a/zebra-report/how-it-works.html +++ b/zebra-report/how-it-works.html @@ -341,9 +341,9 @@ try {

diff --git a/zebra-report/index.html b/zebra-report/index.html index edccd83..3683a81 100644 --- a/zebra-report/index.html +++ b/zebra-report/index.html @@ -1747,9 +1747,9 @@ logLine('sys', 'chat content lives in encrypted SRTP audio. no IP packets carry })(); diff --git a/zebra-report/zebra-audio.html b/zebra-report/zebra-audio.html index 53fcd5f..f0db38d 100644 --- a/zebra-report/zebra-audio.html +++ b/zebra-report/zebra-audio.html @@ -747,9 +747,9 @@ else wirePuppet(); diff --git a/zebra-report/zebra-spaces.html b/zebra-report/zebra-spaces.html index 01a726b..297925f 100644 --- a/zebra-report/zebra-spaces.html +++ b/zebra-report/zebra-spaces.html @@ -4838,11 +4838,24 @@ function handleRemoteSfuTrack(ev){ * was handing the dead stream to attachAudioStreamViaWorklet on the * NEXT peer-joined with matching pubkey, racing the live ontrack. * Fox 2026-06-05 telemetry: peer-joined u=64b0 fired "audio attach - * fresh=1 tracks=0" before the real attach. */ - sfuStreamsByPubHex.set(pubHex, ev.streams[0]); + * fresh=1 tracks=0" before the real attach. + * + * Wrap in a FRESH MediaStream containing only ev.track — same shape + * screen/camera/game use at lines 4759-4784. Chrome can fire ontrack + * where ev.streams[0] is the supplant-merged stream object containing + * the dead old track AND nothing else yet (the live track gets added + * asynchronously after the handler runs). Caching ev.streams[0] + * directly captured the empty/dead version; attachSfuTrack then logged + * `fresh=1 tracks=0` + `meter ... MediaStream has no audio track` + * and fell through to the silent