zebra-spaces: boot-error logging + watchFirstFrame keyframe diagnostic

- moderation: 'boot' button onclick now .catch'es and logs server
   errors. Server now returns 'boot target not found (stale uuid?)'
   instead of silently no-op'ing when the page's member roster lagged
   the room — the moderator was clicking 'boot' and seeing nothing
   happen because their page held a stale uuid.

 - diagnostic: watchFirstFrame logs 'still black after 2500ms — no
   keyframe?' on any fresh SFU video track (screen/camera/game) whose
   decoder never unmutes. Pairs with the SFU's extended kfBurst so we
   can tell next session which path actually broke when a camera tile
   renders black.

multi-peer-mesh test harness extracts the new fn alongside
watchVideoTrackForRemoval so handleRemoteSfuTrack still runs end-to-end
in the headless sandbox.

Stamp date refresh on the other pages (no behavior change).
This commit is contained in:
Russell Ballestrini 2026-06-03 15:51:18 -04:00
parent 867333f6a5
commit 3ca9042e54
No known key found for this signature in database
6 changed files with 53 additions and 15 deletions

View file

@ -50,6 +50,7 @@ function extractConst(name){
}
const watchSrc = extractFn(/function watchVideoTrackForRemoval\(/);
const firstFrameSrc = extractFn(/function watchFirstFrame\(/);
const renderTileSrc = extractFn(/function renderVideoTile\(/);
const removeTileSrc = extractFn(/function removeVideoTile\(/);
const renderScreenShim = extractFn(/function renderScreenTile\(/);
@ -229,6 +230,7 @@ function makeBrowser(name, pubKeyHex){
'const members = new Map();\n' +
tileKindsSrc + '\n' +
watchSrc + '\n' +
firstFrameSrc + '\n' +
renderTileSrc + '\n' +
removeTileSrc + '\n' +
renderScreenShim + '\n' +