When AbortController.abort() resets a TCP connection mid-request,
Chromium may reuse the same keep-alive socket for the next request.
Valhalla's HTTP server then returns ERR_EMPTY_RESPONSE. Forcing
Connection: close ensures each request uses a fresh TCP connection.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Progress bar animates 0→88% (exponential ease, time-range-aware)
- Snaps to 100% green ✓ on completion
- Floating % badge follows the bar
- Restarted valhalla-service with 2 threads for faster large isochrones
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Translate all UI strings to English (labels, toasts, hints, context menu)
- Replace monochromatic color palettes with visually distinct multi-hue palettes
per transport mode (car: yellow→red→purple, bike: cyan→indigo→green,
walk: green→lime alternating)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- API calls rewritten for Valhalla isochrone endpoint
- Transport modes: auto/bicycle/pedestrian (Valhalla costing)
- Time ranges now up to 10h (no more 1h ORS limit)
- Defaults: 1h, 2h, 4h — input in hours with 0.5h steps
- Valhalla URL configurable in settings (default: routing.kerboul.me)
- No API key needed (self-hosted on CT 201 / Echelon)
- MapLibre GL v5 avec fond OpenFreeMap (vector tiles OSM gratuit)
- Isochrones via OpenRouteService API (voiture, vélo, piéton)
- Multi-isochrones colorées (jusqu'à 5 durées simultanées)
- Export PNG et GeoJSON
- Recherche de lieu via Nominatim
- Clé API ORS persistée en localStorage / .env