From 759652207fd1279ece97f0f19af566feb9a82146 Mon Sep 17 00:00:00 2001 From: Bilawal Sidhu <106619546+bilawalsidhu@users.noreply.github.com> Date: Sat, 5 Sep 2026 03:30:55 -0500 Subject: [PATCH] fix: improve mapped installations and map-source guidance (#183) Improve mapped installation recovery, deselection, retry feedback, and visual-style and map-source guidance. --- CHANGELOG.md | 11 ++++ README.md | 2 +- docs/CURRENT-STATE.md | 19 ++++++ index.html | 14 ++-- scripts/qa-map-source-tray.mjs | 7 +- src/data/installationFeedback.js | 19 ++++++ src/data/installationFeedback.test.mjs | 21 ++++++ src/data/installationProxy.test.mjs | 7 ++ src/data/militaryAwareness.js | 8 ++- src/data/militaryAwareness.test.mjs | 5 ++ src/data/militaryInstallationData.js | 33 +++++++++- src/data/militaryInstallationData.test.mjs | 76 ++++++++++++++++++++++ src/data/militaryInstallations.js | 43 ++++++++++-- src/data/militaryInstallations.test.mjs | 73 ++++++++++++++++++++- src/keySetupCore.mjs | 7 ++ src/keySetupCore.test.mjs | 9 +++ src/loadingFeedback.js | 42 ++++++++++-- src/loadingFeedback.test.mjs | 36 ++++++++++ src/mapStackChips.js | 4 +- src/mapStackChips.test.mjs | 16 ++--- src/mapStackController.js | 27 +++++++- src/mapStackUnavailableReason.test.mjs | 20 ++++++ src/ui.js | 4 +- style.css | 3 + vite.config.js | 14 +++- 25 files changed, 479 insertions(+), 41 deletions(-) create mode 100644 src/data/installationFeedback.js create mode 100644 src/data/installationFeedback.test.mjs create mode 100644 src/mapStackUnavailableReason.test.mjs diff --git a/CHANGELOG.md b/CHANGELOG.md index 7398d84..21544fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ of current runtime behavior, see [`docs/CURRENT-STATE.md`](docs/CURRENT-STATE.md ### Fixed +- Mapped-site outages show their scheduled retry countdown and distinguish + known Overpass rate limits, timeouts, and query failures. Search feedback no + longer claims a refresh succeeded while the layer is unavailable or loading. +- Mapped installations retain valid ways and relations that provide bounds but + no center. Invalid, inverted, and excessively wide bounds are rejected. +- Clicking a selected installation again or clicking elsewhere clears its + selection; later refreshes no longer reclaim it after a click-away. +- Visual presets explain their effects on hover. Unavailable map sources name + missing credentials and Provider Settings, while configured-but-failed + Google 3D routes explain the failure without asking for another key. + - The Overpass proxy now rotates to the next mirror on any non-2xx upstream response, not only on 5xx. `overpass-api.de` and its `lz4` alias answer 406 to the proxy's User-Agent while two of the configured mirrors answer 200 to the diff --git a/README.md b/README.md index 809e832..86f69c5 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Photorealistic 3D globe. Live aircraft, ships, satellites, earthquakes, traffic, **[#8 Product of the Day](https://www.producthunt.com/products/god-s-eye-view?launch=god-s-eye-view)** · Hunted by Chris Messina, creator of the hashtag -*“pretty cool”* — [Brendan Eich](https://x.com/BrendanEich/status/2094592096401490266) · Featured on **[Pinokio](https://pinokio.co/posts/01m1m4p9xxm3qw7dnnpj2wr93g)** +*“pretty cool”* — [Brendan Eich](https://x.com/BrendanEich/status/2094592096401490266), creator of JavaScript and co-founder of Mozilla and Brave · Featured on **[Pinokio](https://pinokio.co/posts/01m1m4p9xxm3qw7dnnpj2wr93g)** ⚡ **Start without API keys.** Install with [Pinokio](https://pinokio.co/apps/github-com-bilawalsidhu-gods-eye-view) or run locally from the terminal. Add optional keys inside the app. **[→ Quick Start](#-quick-start)** diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index a2bb9da..1f4d861 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -2,6 +2,25 @@ Updated: August 24, 2026 +## Installations and map-source guidance + +- On an uncached Overpass failure, mapped installations keep their existing + 30–240 second retry backoff. The top status and Contacts row explain the + outage and scheduled countdown; an active retry says "Retrying mapped + sites" and successful recovery clears the previous error. Known upstream + rate limits, timeouts, and query failures are distinguished without exposing + raw server errors. Failures from other loading layers retain precedence. +- Click a selected installation again or click elsewhere on the map to clear + its selection. Clearing the installation does not clear another layer's + newly selected contact, and refreshes do not revive the cleared site. +- Installation ways and relations without an explicit center use the midpoint + of finite, ordered bounds spanning at most 10 degrees per axis. Explicit + coordinates and centers retain precedence; invalid bounds are dropped. +- Visual-style buttons describe their simulated effects on hover. Unavailable + map-source tooltips and toasts share provider guidance: missing credentials + point to Provider Settings, while a configured Google 3D route that fails + points to restrictions, quota, or connectivity. These hints do not expose keys. + > **2026-08-23 — first-run mission launcher** (`src/firstRunExperience.js`, > `#first-run-launcher`, styles at the tail of `style.css`). After startup > settles, a fresh session gets one card offering **Live Contacts · Space diff --git a/index.html b/index.html index f9bc853..e8b0b8d 100644 --- a/index.html +++ b/index.html @@ -492,37 +492,37 @@
- - - - - - -