zebra-report/web
Russell Ballestrini abcbdc3568
zebra-spaces: auto-rejoin call after hard refresh + camera silent resume + screen resume prompt
sessionStorage (per-tab, not localStorage — tabs A and B can sit in
different spaces and don't fight over a shared slot) carries three
keys across a reload:
  zebra-spaces-active-call-v1   rendezvous code of the active space
  zebra-spaces-active-cam-v1    '1' if camera was publishing
  zebra-spaces-active-screen-v1 '1' if screen was publishing

Flow:
- joinSpace welcome handler writes the code; on leave / boot / role
  demotion the keys are cleared
- on init, after identity restore + URL ?code= handling, autoRejoin()
  checks sessionStorage. If a code is saved and we have a handle, it
  populates the rdv-code field and triggers joinSpace(). URL ?code=
  takes priority (a fresh share-URL navigation overrides).
- after welcome lands, if cam flag is set, sfuPublishCamera() runs
  silently — browsers usually remember per-origin getUserMedia perms.
  On failure the flag self-clears.
- screen cannot be silently resumed (getDisplayMedia requires a fresh
  user gesture every call — security). A 'resume screen share' button
  surfaces in the share section instead; clicking it counts as the
  gesture and re-shares.

Multi-tab safe because sessionStorage doesn't bleed across tabs.
2026-06-02 09:52:31 -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: auto-rejoin call after hard refresh + camera silent resume + screen resume prompt 2026-06-02 09:52:31 -04:00