From 583db0ab974df305cf4fc54033a8f0090136ef06 Mon Sep 17 00:00:00 2001
From: "russell@unturf.com"
Date: Sun, 31 May 2026 11:07:38 -0400
Subject: [PATCH] zebra-report: deploy zebra-spaces v0.1 + refresh integrity
stamps
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
New page: zebra-spaces.html — multi-party voice rooms (host, 2 co-hosts,
speakers, listeners) with persistent Ed25519 identity, password-vault
backup/restore, hand-raise → mic-invite → accept flow, and signed role
transitions enforced server-side. Pairs with the new zebra-spaces-signal
relay on cors-proxy.uncloseai.com.
Other pages (chat.html → index.html, zebra-audio.html, how-it-works.html,
host-your-own.html) refreshed because their integrity stamps rolled
today; nav links to zebra-spaces added on zebra-audio and host-your-own.
---
zebra-report/host-your-own.html | 10 +-
zebra-report/how-it-works.html | 6 +-
zebra-report/index.html | 6 +-
zebra-report/zebra-audio.html | 7 +-
zebra-report/zebra-spaces.html | 992 ++++++++++++++++++++++++++++++++
5 files changed, 1007 insertions(+), 14 deletions(-)
create mode 100644 zebra-report/zebra-spaces.html
diff --git a/zebra-report/host-your-own.html b/zebra-report/host-your-own.html
index 88d6185..f932ada 100644
--- a/zebra-report/host-your-own.html
+++ b/zebra-report/host-your-own.html
@@ -71,8 +71,8 @@
unturf
- The zebra pages (the chat and the voice
- call) need exactly two things from a server: a rendezvous relay
+ The zebra pages (the chat, the 1:1 voice
+ call, and the multi-party spaces) need exactly two things from a server: a rendezvous relay
so two browsers can find each other, and a TURN server so they
can still connect when both sit behind NAT. Everything else — the crypto,
the modem, the audio — runs in the browser. This page hands you the whole
@@ -383,9 +383,9 @@ turn.example.com {
diff --git a/zebra-report/how-it-works.html b/zebra-report/how-it-works.html
index 163fcb6..9830fa9 100644
--- a/zebra-report/how-it-works.html
+++ b/zebra-report/how-it-works.html
@@ -267,9 +267,9 @@
diff --git a/zebra-report/index.html b/zebra-report/index.html
index 7579faf..3932a7a 100644
--- a/zebra-report/index.html
+++ b/zebra-report/index.html
@@ -1649,9 +1649,9 @@ logLine('sys', 'chat content lives in encrypted SRTP audio. no IP packets carry
})();
diff --git a/zebra-report/zebra-audio.html b/zebra-report/zebra-audio.html
index 2e2c41e..8f7bf35 100644
--- a/zebra-report/zebra-audio.html
+++ b/zebra-report/zebra-audio.html
@@ -74,6 +74,7 @@
+
+ your key lives only in this browser; back it up if you want it on another device or after clearing data.
+
+
+
backup — pick a password; you'll get a text blob to save.
+
+
+
+
+
restore — paste a backup blob + its password. overwrites your current identity.
+
+
+
+
+
+
+
+ idle
+
+
+
+
+
+
space
+
+
+
+
+
+
+ idle
+
+
+
+
+
+
+
+
+
+
+
+ everyone joins as a listener. host (first to enter) can invite listeners to the
+ mic. co-hosts share mod powers but cannot remove the host. audio is end-to-end
+ encrypted (DTLS-SRTP); SDP is encrypted with the rendezvous code before reaching
+ the relay.
+
+
+
+
+
+ you're invited to the mic.
+
+
+
+
+
+
+
+
room
+
+
+
+
+
your hand
+
+
+
+ tap "raise hand" to ask a mod for the mic.
+