zebra-report/web
Russell Ballestrini cdcc15365a
zebra-spaces: spotlight broadcast — log + popularity-sort thumbnails
Per fox — make viewing public so the room can see what's holding
attention and so thumbnail order reflects what people actually watch
(prevents a speaker dropping inappropriate content from drifting into
peripheral view unless folks tune in).

- spotlights: Map<uuid, key> tracking who's viewing what big tile
- send {type:'spotlight', key:'kind:pubHex'} on every local spotlight
  change; broadcast back via signal server (already deployed) as
  {type:'spotlight', uuid, key}
- log line on each change: 'alice now viewing bob's screen' /
  'alice looked away' — social pressure tool, names what the room
  is focused on
- tileScore = role boost on the OWNER (host 10000, cohost 5000,
  speaker 0) plus viewer count. Thumbnails re-sorted descending so
  host content sits at top, cohost second, speakers ranked by
  viewer count
- reorderTiles fires on: own spotlight change, inbound spotlight
  signal, peer-left, role-change, host-promoted, and at welcome
  (broadcasts the auto-spotlit first tile)
- pubHex + kind stored as tile.dataset for the sort to read

Paired with proxy.unturf.com#719e0e5 which routes the new message
type through the signal server.
2026-06-02 10:40:38 -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 css: .row uses minmax(0, max-content) so long labels shrink + wrap 2026-06-02 09:27:55 -04:00
host-your-own.html zebra: dark mode default on all pages + unified theme key 2026-06-01 22:18:02 -04:00
how-it-works.html zebra: dark mode default on all pages + unified theme key 2026-06-01 22:18:02 -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 css: .row uses minmax(0, max-content) so long labels shrink + wrap 2026-06-02 09:27:55 -04:00
zebra-spaces.html zebra-spaces: spotlight broadcast — log + popularity-sort thumbnails 2026-06-02 10:40:38 -04:00