Fox 2026-06-07 follow-up to ticket 0001: with the caa0548 fix live,
SFU sub PC receivers still show level=0 + jbuf=? on blanka-chrome.
That's EXPECTED when mesh has taken the swap (SFU receiver becomes
orphaned by design), but without a corresponding stat from the mesh
PC's own receiver we can't distinguish "mesh decoder is alive and
producing samples; SFU orphan is fine" from "mesh decoder is also
silent — both paths dead, listener hears nothing".
Add per-peer mesh.recv lines to the telemetry tick, tagged with the
short uuid prefix:
mesh.recv u=8afc pkt=23900 lost=8 bytes=339884 jitter=0.0080
level=0.025 jbuf=0.48s lp=0.1s
Same fields as aud.recv (the SFU sub PC line) so direct comparison
is easy. We skip peers whose connectionState !== 'connected' so a
failed mesh PC doesn't poison the line. Failure on one peer's
getStats is swallowed independently — multi-peer rooms remain
readable even if one mesh PC's stats reporter throws.
Reveals (per ticket 0001 next narrowing):
- mesh decoder level + jbuf — proves or rules out the mesh decoder
being orphaned at the worklet swap point
- per-peer breakdown when mesh=N > 1, so we can tell which peer's
mesh path is healthy and which is stalled
- same lastPacketReceived 'lp' so a mesh RTP stall is visible at
a glance