zebra-report/web
Russell Ballestrini 740ed2bf7f
zebra-spaces: kick + ban buttons; pagehide sends 'bye'
Two moderation actions, two buttons:
  - kick : evict the session, allow rejoin
  - ban  : evict + block the pubkey (old 'boot' semantics)
Renders 'X was kicked by Y' vs 'X was banned by Y' off the new
peer-booted.action field. Self-notice text follows the same split.

pagehide / beforeunload now sends a synchronous 'bye' so a closed
tab counts as a strong-leave (peer-left + SFU evict immediately)
instead of waiting 8s for the hiccup grace. Fox 2026-06-03 —
"will closed tab on phone but the audio kept playing until i
kicked him out". With the new bye on pagehide his tab-close will
trigger the same fast-path the leave button does.

beforeunload kept as a fallback for older desktop browsers that
fire it before pagehide; pagehide is the cross-mobile primary.
2026-06-03 16:56:49 -04:00
..
blog phase 1: unfirehose reconstruction from session JSONL ingest 2026-05-27 13:51:14 -04:00
fonts phase 2: gap analysis — cat>> append + binary asset recovery 2026-05-27 13:54:19 -04:00
chat.html zebra-spaces: boot-error logging + watchFirstFrame keyframe diagnostic 2026-06-03 15:51:18 -04:00
host-your-own.html zebra-spaces: boot-error logging + watchFirstFrame keyframe diagnostic 2026-06-03 15:51:18 -04:00
how-it-works.html zebra-spaces: boot-error logging + watchFirstFrame keyframe diagnostic 2026-06-03 15:51:18 -04:00
index.html web: bump mobile body padding from 1rem to 1.25rem so the right edge has visible breathing room 2026-05-31 14:13:25 -04:00
kernel.html web: bump mobile body padding from 1rem to 1.25rem so the right edge has visible breathing room 2026-05-31 14:13:25 -04:00
stamp.js web: stamp each zebra-report page with build date + md5/sha256 2026-05-28 17:50:12 -04:00
zebra-audio.html zebra-spaces: boot-error logging + watchFirstFrame keyframe diagnostic 2026-06-03 15:51:18 -04:00
zebra-spaces.html zebra-spaces: kick + ban buttons; pagehide sends 'bye' 2026-06-03 16:56:49 -04:00