Use a separate optional server key for Places and Street View, with consistent local and Pinokio configuration, server-first CLI selection, and credential isolation checks.
Original contribution by Tom-Neverwinter; reviewed and completed by Sameh Khamis.
Co-authored-by: Tom-Neverwinter <[email protected]>
Co-authored-by: Sameh Khamis <[email protected]>
Skip unchanged overlay cohorts while detecting moved positions and lifecycle changes. Defer ground sampling until visible terrain settles, retain the loaded surface as a floor, and preserve roof heights and bounded retries. Keep regression and idle-render gates intact.
Use a fresh page for first-fetch assertions and wait for rendered camera state instead of fixed timing. Check connected focus retention during row reorder, departed-contact continuation, and attribution keyboard ownership in Cockpit.
Keep focus visible across controls and stable during Contacts, Cockpit and mission roster updates. Preserve native short Space activation, and claim push-to-talk only after a 500 ms hold. Add panel Escape handling and keyboard-accessible attribution controls.
Retains the Map Source foundation contributed in https://github.com/bilawalsidhu/gods-eye-view/pull/171.
Keep the Esri settlement assertion exact, verify selected-source focus and Tab departure in Chromium, cancel pending work during disposal, and document the focused behavior.
Four small, independently-verified issues from the audit backlog:
- #262/#263: the celestrak, terrain-heights, adsbdb and launch-library
proxies put raw `err.message` / raw upstream error bodies into HTTP
responses, contradicting the sanitized-error property KNOWN-ISSUES.md
documents. They now log the real error server-side (matching the GBFS
and CCTV proxy convention) and return a generic message.
- #265: scripts/dev-cctv.sh defaulted to HOST=0.0.0.0 while dev-fresh.sh
and dev-secure.sh default to loopback. Now loopback, opt in with
HOST=0.0.0.0.
- #274: naturalEarthRegions.js's internal haversineKm took (lon, lat,
lon, lat) while every other haversineKm in src/ takes (lat, lon, lat,
lon). Same name, same signature shape, opposite order — a silent
wrong-distance landmine. Reordered to match; the one call site was
updated, so behavior is unchanged.
- #270: removed CCTV_AUTO_CALIBRATE and CCTV_DRAPE_MESH from
.env.example; no code anywhere reads them.
Not done: deduplicating the ~10 haversine implementations into one
shared utility. That is issue #188's scope and a far larger diff;
removing the argument-order landmine is what makes the current state
safe.
Verified: npm test (2705 pass / 0 fail), npm run build green.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01C3eGYgDYBo2BCUeDGwGvrp