diff --git a/zebra-report/zebra-spaces.html b/zebra-report/zebra-spaces.html
index 9f9bbb1..a916b6b 100644
--- a/zebra-report/zebra-spaces.html
+++ b/zebra-report/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');