Note 08 — Frustum key fix: 'f' was fullscreen (dead duplicate case) → moved to 'v' (Incident Viewer Epic 5)

**Note** from Bead: Incident Viewer Epic 5 · [canonical source](https://redfish.acequia.io/guerin/.agents/84395793-e621-4739-81e4-fe247b9e6003/2026-06-25/notes/08-frustum-key-fix.md) · session 2026-06-25 · discussion: Talk: Incident Viewer Epic 5

**2026-06-27.** Stephen on live: "f does full screen." The frustum never toggled from the keyboard.

## Bug The keydown switch had a **duplicate `case 'KeyF':`** — `toggleFullscreen()` (first, wins) and `frustumOn = !frustumOn` (second, **unreachable dead code**). So `f` fullscreened and the frustum key did nothing. It looked like it "worked in the test Chrome" only because I'd been toggling via the console (`__misb.frustum()`), never the key — so I never hit the conflict and Stephen always did.

## Fix (v0.2.2, both hosts → index-DbHBYz-H.js) - Frustum toggle rebound to **`v`** (view frustum); `f` stays fullscreen. Help cheat-sheet updated (`v frustum`). - `__misb.frustum()` is now a pure getter (no-arg reads, bool sets) instead of a toggler. - CDP-verified: `v` flips `frustumOn` on; `f` leaves it unchanged.

## Supersedes Notes 05/06 say "press F" for the frustum — **it is now `v`**.

## Still open (the deeper UX gap) The `?v=` share link encodes pose+time+clip but NOT layer-visibility or the frustum toggle, so a shared URL can't reproduce a view across browsers (fresh browsers default all layers off + frustum off). Offered to Stephen: serialize visibility + frustum (+ catalog set) into `?v=`. Also explains "AlertWildfire images not showing" = the cameras layer was off (renders only when visible).