Fixed
- Incident map — geocoding silently disabled by a blank relay gateway URL. The server now caches the last-known-good geocoding gateway URL and access-granting subscription status and seeds them at startup, so a transient relay misconfiguration or a restart before the first status poll no longer stops geocoding fleet-wide. A blank gateway URL is never written over a good one; the live poll and the gateway's per-key allow-list still correct a genuinely lapsed subscription.
Changed
- Keyless basemaps. Light basemap now uses OpenStreetMap and dark uses ESRI World Dark Gray after CARTO began requiring an API key (which produced watermarked tiles). Tile URLs carry a version-based cache-bust so browsers drop tiles cached from the previous provider.