GODSIGH/js/layers
type-two e4af0fb01d feat: Wave 7 — REAL live global shipping via aisstream.io
ais_bridge.py: a small daemon holding the aisstream.io websocket (free key,
server-side only), tracking every vessel heard (15-min freshness window) and
atomically writing ais_snapshot.json into the web root every 20 s. The
js/layers/ais.js layer polls that static file — no request-path server code,
identical under dev serve.py and prod nginx; rolling query bucket defeats CDN
caching. Verified locally: 15,844 live vessels within minutes of connect —
the Dover Strait separation lanes are visibly full of real traffic; click any
ship for name/MMSI/type/speed/course/status/destination (colored by type:
cargo green, tanker amber, passenger blue, fishing purple, anchored grey).
Live-only (hidden when scrubbed). Demo ships demoted to default-off; the
dormant browser-side AIS scaffold in ships.js stays inert (key would be
browser-exposed — the bridge supersedes it).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 11:29:00 +10:00
..
adsb-layer.js fix: all data fetches use cache:'no-store' — browser-cache poisoning guard 2026-07-30 09:59:59 +10:00
aircraft.js fix: all data fetches use cache:'no-store' — browser-cache poisoning guard 2026-07-30 09:59:59 +10:00
ais.js feat: Wave 7 — REAL live global shipping via aisstream.io 2026-07-30 11:29:00 +10:00
celestial.js feat: celestial layer — zodiac ring + Sun/Moon/planets in true sky positions 2026-07-21 10:19:21 +10:00
events.js fix: markers bled through the globe (far-side dots didn't track rotation) 2026-07-21 10:19:21 +10:00
firms.js fix: all data fetches use cache:'no-store' — browser-cache poisoning guard 2026-07-30 09:59:59 +10:00
geojson-layer.js fix: all data fetches use cache:'no-store' — browser-cache poisoning guard 2026-07-30 09:59:59 +10:00
infra.js fix: markers bled through the globe (far-side dots didn't track rotation) 2026-07-21 10:19:21 +10:00
military.js fix: all data fetches use cache:'no-store' — browser-cache poisoning guard 2026-07-30 09:59:59 +10:00
radiogarden.js fix: all data fetches use cache:'no-store' — browser-cache poisoning guard 2026-07-30 09:59:59 +10:00
radius.js fix: all data fetches use cache:'no-store' — browser-cache poisoning guard 2026-07-30 09:59:59 +10:00
roadcams.js fix: all data fetches use cache:'no-store' — browser-cache poisoning guard 2026-07-30 09:59:59 +10:00
satellites.js fix: all data fetches use cache:'no-store' — browser-cache poisoning guard 2026-07-30 09:59:59 +10:00
ships.js feat: Wave 7 — REAL live global shipping via aisstream.io 2026-07-30 11:29:00 +10:00