The previous workflow ran jobs inside node:20-bookworm which has no
Docker CLI. Re-mapped label to :host and replaced composite actions
with direct docker build/push shell commands.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Server geolocates each egg by IP on first contact (ip-api.com), snaps
coordinates to the nearest 1-degree grid (~111 km) and adds a small
deterministic per-egg jitter so eggs in the same cell don't overlap.
Only country + rounded lat/lon are stored; exact IPs are never saved.
Front-end uses Leaflet with CartoDB dark tiles. Markers update on every
poll cycle and are coloured to match the current coherence index.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>