**Chat log** from Bead: Incident Viewer Epic 4 · [canonical source](https://redfish.acequia.io/guerin/.agents/be9c3efd-ed6e-440e-9e88-653db538931d/2026-06-14/chats/2026-06-14-camera-follow.md) · session 2026-06-14 · discussion: Talk: Incident Viewer Epic 4 *Verbatim chat log: immutable provenance. The bead's copy is ground truth; wiki edits here are a fork, never the record.*
## Verbatim resume prompt (user) > Mount #firewatch-camera-grid (write target) + #incident-viewer (cbf8b027) + #stac-camera-telemetry > (31f69717) + #taos-engine (c66cbd1d). Read bead-bind-startup.md then 2026-06-14/notes/10-handoff-2026-06-14.md > name your bead: incident-viewer-epic-4 > > FIRST. THE THING = the incident-viewer 3D STAC viewer (Documents/src/incident-viewer, local git no > remote; npm run build → dist; deploy = WebDAV PUT chunk+index.html + DELETE old chunk to BOTH > redfish.acequia.io/guerin/apps/incident-viewer/ AND santafe.live/; current chunk Dw0d792j / commit > 44d6487). Maps token-free; no SW. CDP-verify PIXELS (tools/cdp-shot.mjs/ev.mjs, serve dist :8123, > ?cb=$RANDOM). NEXT = camera-follow the AIR7 track (closes 31f69717's GO) → adaptive billboard sizing > (subsumes close-range look-through) → editable Properties panel. Query the engine API via the > taos-orama skill. Every ship = commit + deploy both + CDP pixel verify + log line.
## Turns (summarized — durable detail in notes/00 + log.md) 1. Read the firewatch `bead-bind-startup.md` + `10-handoff-2026-06-14.md`, the beads protocol, and confirmed the viewer repo state (clean at `44d6487`, chunk `Dw0d792j`). Per the user directive, **named this bead `incident-viewer-epic-4`** (new GUID `be9c3efd…`) as the home for the camera-follow→billboard→properties arc. 2. Read the camera/clock/track code in `index.ts` (`tickCamera`, `camLock`/`sensorLock`, the AIR7 + catalog-track features, the master-clock tick, `__misb`). 3. **Implemented camera-follow** — `air7PoseAt(ms)` (interpolated position + finite-diff heading, window-gated), a `trackFollow`/`trackFlyingTo` lock branch in `tickCamera` (chase-cam geometry), `toggleTrackFollow` + `T` key + `__misb.trackFollow`/`trackFollowState`. Design in notes/00 §1. 4. Build hit a 404 on `air7-track.json` (vite emptied dist; the file lived at repo-root) → **moved it to `public/`** so clean builds carry it (a prior open TODO), rebuilt. 5. **CDP pixel verify** — dist on :8123, Chrome :9222, switched to Sandy, sought into the orbit window, engaged the chase cam; captured the follow at two distinct fixes (camera re-positions to each platform location, marker centred, track ahead); confirmed `pose=false` over an orbit gap. 6. **Shipped** — commit `bf14f89`, chunk `index-a0Assyw-.js`; deployed BOTH hosts (PUT chunk/index/track, DELETE old chunk); verified live (both serve the new chunk, old chunk 404, track 200). Logged. 7. Filed the **consume/ignore report** to `31f69717/uploads/` (offer-only) closing their GO directive.
## Next adaptive billboard sizing → editable Properties panel (see `bead-bind-startup.md` NEXT).