zebra-report: deploy — drop tiles on peer-booted

This commit is contained in:
russell@unturf.com 2026-06-03 12:44:23 -04:00
parent 130e54cad8
commit 1cddcda111
No known key found for this signature in database

View file

@ -3216,7 +3216,8 @@ async function handleSignal(raw){
{
const mm = members.get(m.uuid);
const by = members.get(m.by);
const victPub = pubHexFromMsg(m, 'pubkey');
const victPub = pubHexFromMsg(m, 'pubkey')
|| (mm && mm.pubkey ? pubHexFromMsg({pubkey:mm.pubkey},'pubkey') : '');
const byPub = pubHexFromMsg(m, 'by_pubkey');
logLine('', idTag(m.uuid, victPub)+' was removed by '+(by||byPub?idTag(m.by, byPub):'a mod'));
if (m.uuid === myUUID){
@ -3235,6 +3236,19 @@ async function handleSignal(raw){
sfuUnsubscribe().catch(()=>{});
dropMic();
}
/* Authoritative tile teardown by pubkey — booted users can't be
* publishing anything anymore by definition. The SFU side eviction
* (server posts /internal/block, then OnConnectionStateChange ->
* removePublisher) will eventually fire 'ended' on subscribers,
* but it can lag enough that the camera tile stays visible past
* the kick. Drop it here so the boot is visually instant. */
if (victPub){
try {
removeScreenTile(victPub);
removeCameraTile(victPub);
removeVideoTile('gameshare', victPub);
} catch(_){}
}
members.delete(m.uuid); tearPeer(m.uuid); handraise.delete(m.uuid);
renderRoom();
}
@ -3989,8 +4003,8 @@ logLine('', 'ready — pick a handle, type a rendezvous code, enter the space');
<footer style="margin:2.2rem auto 0;font-size:0.65rem;color:#999;line-height:1.7;word-break:break-all;font-family:monospace">
<span id="pi-seal" style="color:#777;cursor:default;user-select:none" title="">page integrity</span> &nbsp;·&nbsp; built <span class="stamp-date">2026-06-03</span><br>
md5 <span class="stamp-md5">f116a2320937cb5069015b6b85fdbab7</span><br>
sha256 <span class="stamp-sha">d011be2528f20ab980d0e2d5364b270f69c57b9e09d4a95f88fb0dc1aec40a32</span><br>
md5 <span class="stamp-md5">888efaf377b48e7e98a4f0abc676b5d6</span><br>
sha256 <span class="stamp-sha">43bc28425870401088dfc50fe4541f4a9790a3e0d84b6b6aa09ec01eceb56cd3</span><br>
<span style="color:#bbb">hashes are of this page with these two fields zeroed — to verify, blank them and re-hash</span><br>
<span style="color:#bbb">one self-contained file — <strong>save a copy</strong> and verify against these hashes; point at your own servers with ?signal= and ?turncred=, or <a href="host-your-own.html" style="color:#999">host your own community</a></span>
</footer>