Review follow-up:
- Drop the Next.js route. CARTO_API_KEY is now a regular backend registry
key (env, .env, or the API Keys panel) served by public
GET /api/basemap-config. Every frontend mode already proxies /api/* to
the backend (Next.js proxy in web mode, companion server in packaged
desktop), so this covers web and desktop with one mechanism and leaves
the static export untouched. Also removes the invalid non-handler
export from the route module by removing the module.
- useBasemapConfig: fail open to the unkeyed style after 3 s, abort the
request at 15 s, apply a late key when it arrives, cache successes per
page and retry failures on the next mount.
- Declare OSM/CARTO attribution on the raster source (same markup as the
viewer's existing AttributionControl so MapLibre de-duplicates it).
- Tests: backend endpoint (unset / set+trimmed / persisted operator key /
registry), hook behaviour (success, non-OK, network error, soft timeout
then late key, hard abort, shared request and retry), attribution and
gating source checks.
- CARTO_API_KEY moves to the backend service in docker-compose.yml; docs
updated accordingly.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Wire AISHUB_USERNAME into API Keys and onboarding, and surface backup status on the AIS outage banner so operators can keep vessel coverage without changing the AISStream proxy.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add Telegram OSINT with hourly incremental t.me scraping, metro geocoding
separate from news centroids, threat-intercept popup UI with inline media,
and HTML markers above alert boxes so pins stay clickable. Expose GFW_API_TOKEN
in onboarding and Settings Maritime; harden GFW/CCTV/geo fetchers. Port Osiris-
derived recon, SCM, entity graph, malware/cyber feeds, sanctions, and submarine
cable layers with tests and documentation.
Co-authored-by: Cursor <cursoragent@cursor.com>
Gate messages now propagate via the Infonet hashchain as encrypted blobs — every node syncs them
through normal chain sync while only Gate members with MLS keys can decrypt. Added mesh reputation
system, peer push workers, voluntary Wormhole opt-in for node participation, fork recovery,
killwormhole scripts, obfuscated terminology, and hardened the self-updater to protect encryption
keys and chain state during updates.
New features: Shodan search, train tracking, Sentinel Hub imagery, 8 new intelligence layers,
CCTV expansion to 11,000+ cameras across 6 countries, Mesh Terminal CLI, prediction markets,
desktop-shell scaffold, and comprehensive mesh test suite (215 frontend + backend tests passing).
Community contributors: @wa1id, @AlborzNazari, @adust09, @Xpirix, @imqdcr, @csysp, @suranyami,
@chr0n1x, @johan-martensson, @singularfailure, @smithbh, @OrfeoTerkuci, @deuza, @tm-const,
@Elhard1, @ttulttul