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.
Deploy zebra-audio puppet console (triple-click footer seal: type -> TTS at
speech.ai.unturf.com -> into the call, send/stop) and the new host-your-own
page, plus nav links from chat (index) and how-it-works.
mirrors web/chat.html from the zebra-report repo. adds a
BroadcastChannel-based loopback gated on ?loopback=1 so two
tabs of a same browser can round-trip frames without zebrad,
useful for UX validation while a real PulseAudio introspector
daemon stays in progress.
yellow warning banner makes dev mode obvious when active.
single self-contained page at /zebra-report/. ports recovered web/chat.html
from git.unturf.com/engineering/unturf/zebra-report into this site's layout.
changes vs source:
* @font-face points at /css/chunkfive/ instead of bundled fonts dir,
so a single chunkfive copy serves a whole site.
* back link points at / instead of ./ which looped to self.
* "recovered rx.c" link points at git.unturf.com repo instead of ./.
what it does:
* web audio GainNode modulator drives PulseAudio sink-input volume
between MARK (0.80) & SPACE (0.20) per bit, 50 baud handshake,
higher rates after benchmark + OFFER/READY exchange.
* passphrase mode (PBKDF2 600k iter → AES-GCM-256 group key) or
pubkey mode (ECDH P-256 → AES-GCM-256 pairwise). toggle in UI.
* no chat content crosses a network packet. wireshark blind.
* RX path requires a local zebrad introspector at ws://127.0.0.1:7777,
documented inline on a page. without it, page transmits but cannot
receive.
dual use posture:
* page leads with threat model + mitigation panel citing
foxhop.net/linux-audio-ipc-attack-surface whitepaper.
* "what this does not protect against" explicit on a page.
CI publishes via .gitlab-ci.yml on master → deploy-www.sh runner.