From 438e886627808a476ec7bba8482a2d938506d79b Mon Sep 17 00:00:00 2001 From: Russell Ballestrini Date: Tue, 2 Jun 2026 15:31:21 -0400 Subject: [PATCH] =?UTF-8?q?zebra-spaces:=20surface=20'host=20away=20?= =?UTF-8?q?=E2=80=94=20cohost=20succession=20in=20Xs'=20vs=20'space=20clos?= =?UTF-8?q?ing'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Page now reads will_close from space-closing broadcast and shows a soft warning (warn status, plain log line) when a cohost is present and will succeed the absent host at grace expiry; keeps the hard 'space closing' error styling for rooms that will actually end. --- web/zebra-spaces.html | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/web/zebra-spaces.html b/web/zebra-spaces.html index 9f9bbb1..a916b6b 100644 --- a/web/zebra-spaces.html +++ b/web/zebra-spaces.html @@ -2898,8 +2898,17 @@ async function handleSignal(raw){ } break; case 'space-closing': - logLine('err','space closing in '+m.grace_seconds+'s — '+m.reason); - setStatus('host left — space closing in '+m.grace_seconds+'s', 'err'); + /* server arms this for the full grace window every time the host + * leaves. will_close=true means the room actually ends if nobody + * reclaims; will_close=false means a cohost will succeed the host + * at expiry so the room stays open either way. */ + if (m.will_close === false){ + logLine('', 'host away — cohost will succeed in '+m.grace_seconds+'s if host doesn\'t return'); + setStatus('host away — cohost succession in '+m.grace_seconds+'s', 'warn'); + } else { + logLine('err','space closing in '+m.grace_seconds+'s — '+m.reason); + setStatus('host left — space closing in '+m.grace_seconds+'s', 'err'); + } break; case 'error': logLine('err','signal: '+m.message); @@ -3586,8 +3595,8 @@ logLine('', 'ready — pick a handle, type a rendezvous code, enter the space');