1.21.6 (2026-04-12)
- resolve development dependency vulnerabilities (943501a)
1.21.5 (2026-03-20)
- correct copyright to TheCryptoDonkey (9f99144)
1.21.4 (2026-03-18)
- restore version to 1.21.3 after tag misalignment from repo transfer (63be3ea)
1.10.0 (2026-03-18)
- add cache-busting query strings to CSS and JS references (95a4567)
- add empty guard to envelopePolygon and consistent error messages (1a82491)
- add explicit language and units to Valhalla route request (ac60fb5)
- address code review — JSDoc, stub params, fractional duration test (69554c0)
- cancel in-flight animation on mode switch (8bc327b)
- cap maxTimeMinutes and venueTypes array length (2752d27)
- clean up route listeners, sync fairness pickers, add alert role (4c1697d), closes #interactive-error
- deduplicate consecutive vertices in sutherlandHodgman output (1746515)
- escape scenario name in error path for consistent XSS prevention (12a6327)
- fade out markers when route popup is open so nothing obscures it (7a0ddca)
- fetch version from npm registry instead of hardcoding (fe3c003)
- filter degenerate intersection polygons, limit venues to top 5, handle route 402 with payment panel (5ae0998)
- force all map markers below popup with z-index override (6655bf7)
- guard route layer removal with getLayer/getSource checks (d5dc784)
- harden input validation and add production readiness checks (458ba6f)
- harden security and production readiness (914e54b)
- marker positioning, intersection lines, and theme swap (7e9f398)
- parallelise isochrone calls and add fetch timeouts (1590b3e)
- pass status token when polling invoice-status endpoint (2348deb)
- pin esm.sh import to rendezvous-kit@1.14.0 for enriched directions (36c1909)
- polish mobile UX — cache bust, wallet button visibility (c74e754)
- prevent initial flash on mobile, use matchMedia for resize (d7b695f)
- query way and relation elements in Overpass venue search (bd69263)
- reduce hull buffer size and cap Overpass results (df3fc47)
- remove intersection sliver outlines from map display (0a532ed)
- remove isochrone border lines entirely (2bae0ba)
- remove position: relative that overrides MapLibre marker positioning (6f16739)
- replace flaky QR library with dynamic import and lightning: URI (9d831a9)
- resolve mobile demo page scrolling, QR code, and ride distance issues (20e2409)
- route popup z-index to 9999 so it sits above all markers and labels (22616ca)
- soften isochrone borders, block stale participants, fix theme swap (7e65487)
- unpin esm.sh import, fix theme swap and credit display (5d836a8)
- update demo imports to v1.18.0 and bump cache busters (d7ef5f9)
- update geohash-kit to version with convexHull export (1026573)
- update version badge and cache-busting params (12a0979)
- use string concatenation for Overpass query to avoid esm.sh minifier bug (b543182)
- use topVenues for markers, increase area threshold, filter zero travel times (0ca3eee)
- venue positioning, marker stability, and matrix overflow (24a5792)
- add bottom sheet drag handle to panel HTML (5f7a25c)
- add hull buffer, auto-decision logic, and speed constants (24e8999)
- add hull fast-path pipeline to findRendezvous (d87e394)
- add manoeuvre icons, badges, and timeline to directions UI (d33d376)
- add Overpass API fallback endpoints and timeout (318ae5e)
- add route types (GeoJSONLineString, RouteLeg, RouteGeometry) and computeRoute to RoutingEngine (81064e0)
- add scenario regeneration script for real Valhalla data (8e8371e)
- add strategy option to RendezvousOptions (933a4ee)
- add stub computeRoute to OpenRouteService, GraphHopper, and OSRM engines (00ddd7e)
- add ValhallaError class, custom headers support, and typed error handling (9e8fa11)
- bigger panel and text, rich turn-by-turn in route popups (3851638)
- bottom sheet CSS with touch targets and mobile header (fc38d88)
- bottom sheet touch handling with auto-transitions (066f405)
- centre map on user's GPS location when available (8ffe0d1)
- demo UX overhaul — fix bugs, add credit display and theme toggle (bbc3824)
- enrich RouteLeg type with manoeuvre details and road attributes (ae09429)
- expand venue types to 17 with grouped chip picker (ab68fd6)
- export ManoeuvreType from barrel (537a79a)
- expose map instance for demo recording (48aa293)
- implement computeRoute in ValhallaEngine with polyline6 decoder and manoeuvre legs (fe4102d)
- interactive mode — tab switching, markers, live pipeline (8318b28)
- interactive mode HTML structure and CSS styles (f293b51)
- make Interactive the default tab in demo page (83e898a)
- map enriched manoeuvre fields from Valhalla to RouteLeg (1446e49)
- mobile UX overhaul — bottom sheet, QR fix, touch targets (5a07a8b)
- progressive isochrone reveal with hull visualisation (4f5d945)
- prominent route popup with high z-index, shadow, and bigger text (229afdd)
- render turn-by-turn directions in expanded result cards (eaa9f70)
- sticky action bar on mobile for Find/Clear buttons (6fc9343)
- store route data for turn-by-turn directions display (b5ac065)
- style enriched directions with timeline, icons, badges, and progress (c9ade24)
- style turn-by-turn directions UI in result cards (9ddd029)
- use self-hosted Overpass API for venue search (385aa0c)
1.10.0 (2026-03-18)
- add cache-busting query strings to CSS and JS references (95a4567)
- add empty guard to envelopePolygon and consistent error messages (1a82491)
- add explicit language and units to Valhalla route request (ac60fb5)
- address code review — JSDoc, stub params, fractional duration test (69554c0)
- cancel in-flight animation on mode switch (8bc327b)
- cap maxTimeMinutes and venueTypes array length (2752d27)
- clean up route listeners, sync fairness pickers, add alert role (4c1697d), closes #interactive-error
- deduplicate consecutive vertices in sutherlandHodgman output (1746515)
- escape scenario name in error path for consistent XSS prevention (12a6327)
- fade out markers when route popup is open so nothing obscures it (7a0ddca)
- fetch version from npm registry instead of hardcoding (fe3c003)
- filter degenerate intersection polygons, limit venues to top 5, handle route 402 with payment panel (5ae0998)
- force all map markers below popup with z-index override (6655bf7)
- guard route layer removal with getLayer/getSource checks (d5dc784)
- harden input validation and add production readiness checks (458ba6f)
- harden security and production readiness (914e54b)
- marker positioning, intersection lines, and theme swap (7e9f398)
- parallelise isochrone calls and add fetch timeouts (1590b3e)
- pass status token when polling invoice-status endpoint (2348deb)
- pin esm.sh import to rendezvous-kit@1.14.0 for enriched directions (36c1909)
- polish mobile UX — cache bust, wallet button visibility (c74e754)
- prevent initial flash on mobile, use matchMedia for resize (d7b695f)
- query way and relation elements in Overpass venue search (bd69263)
- reduce hull buffer size and cap Overpass results (df3fc47)
- remove intersection sliver outlines from map display (0a532ed)
- remove isochrone border lines entirely (2bae0ba)
- remove position: relative that overrides MapLibre marker positioning (6f16739)
- replace flaky QR library with dynamic import and lightning: URI (9d831a9)
- resolve mobile demo page scrolling, QR code, and ride distance issues (20e2409)
- route popup z-index to 9999 so it sits above all markers and labels (22616ca)
- soften isochrone borders, block stale participants, fix theme swap (7e65487)
- unpin esm.sh import, fix theme swap and credit display (5d836a8)
- update demo imports to v1.18.0 and bump cache busters (d7ef5f9)
- update geohash-kit to version with convexHull export (1026573)
- update version badge and cache-busting params (12a0979)
- use string concatenation for Overpass query to avoid esm.sh minifier bug (b543182)
- use topVenues for markers, increase area threshold, filter zero travel times (0ca3eee)
- venue positioning, marker stability, and matrix overflow (24a5792)
- add bottom sheet drag handle to panel HTML (5f7a25c)
- add hull buffer, auto-decision logic, and speed constants (24e8999)
- add hull fast-path pipeline to findRendezvous (d87e394)
- add manoeuvre icons, badges, and timeline to directions UI (d33d376)
- add Overpass API fallback endpoints and timeout (318ae5e)
- add route types (GeoJSONLineString, RouteLeg, RouteGeometry) and computeRoute to RoutingEngine (81064e0)
- add scenario regeneration script for real Valhalla data (8e8371e)
- add strategy option to RendezvousOptions (933a4ee)
- add stub computeRoute to OpenRouteService, GraphHopper, and OSRM engines (00ddd7e)
- add ValhallaError class, custom headers support, and typed error handling (9e8fa11)
- bigger panel and text, rich turn-by-turn in route popups (3851638)
- bottom sheet CSS with touch targets and mobile header (fc38d88)
- bottom sheet touch handling with auto-transitions (066f405)
- centre map on user's GPS location when available (8ffe0d1)
- demo UX overhaul — fix bugs, add credit display and theme toggle (bbc3824)
- enrich RouteLeg type with manoeuvre details and road attributes (ae09429)
- expand venue types to 17 with grouped chip picker (ab68fd6)
- export ManoeuvreType from barrel (537a79a)
- expose map instance for demo recording (48aa293)
- implement computeRoute in ValhallaEngine with polyline6 decoder and manoeuvre legs (fe4102d)
- interactive mode — tab switching, markers, live pipeline (8318b28)
- interactive mode HTML structure and CSS styles (f293b51)
- make Interactive the default tab in demo page (83e898a)
- map enriched manoeuvre fields from Valhalla to RouteLeg (1446e49)
- mobile UX overhaul — bottom sheet, QR fix, touch targets (5a07a8b)
- progressive isochrone reveal with hull visualisation (4f5d945)
- prominent route popup with high z-index, shadow, and bigger text (229afdd)
- render turn-by-turn directions in expanded result cards (eaa9f70)
- sticky action bar on mobile for Find/Clear buttons (6fc9343)
- store route data for turn-by-turn directions display (b5ac065)
- style enriched directions with timeline, icons, badges, and progress (c9ade24)
- style turn-by-turn directions UI in result cards (9ddd029)
- use self-hosted Overpass API for venue search (385aa0c)
1.10.0 (2026-03-15)
- add cache-busting query strings to CSS and JS references (95a4567)
- add empty guard to envelopePolygon and consistent error messages (1a82491)
- add explicit language and units to Valhalla route request (ac60fb5)
- address code review — JSDoc, stub params, fractional duration test (69554c0)
- cancel in-flight animation on mode switch (8bc327b)
- cap maxTimeMinutes and venueTypes array length (2752d27)
- clean up route listeners, sync fairness pickers, add alert role (4c1697d), closes #interactive-error
- deduplicate consecutive vertices in sutherlandHodgman output (1746515)
- escape scenario name in error path for consistent XSS prevention (12a6327)
- fade out markers when route popup is open so nothing obscures it (7a0ddca)
- fetch version from npm registry instead of hardcoding (fe3c003)
- filter degenerate intersection polygons, limit venues to top 5, handle route 402 with payment panel (5ae0998)
- force all map markers below popup with z-index override (6655bf7)
- guard route layer removal with getLayer/getSource checks (d5dc784)
- harden input validation and add production readiness checks (458ba6f)
- harden security and production readiness (914e54b)
- marker positioning, intersection lines, and theme swap (7e9f398)
- parallelise isochrone calls and add fetch timeouts (1590b3e)
- pass status token when polling invoice-status endpoint (2348deb)
- pin esm.sh import to rendezvous-kit@1.14.0 for enriched directions (36c1909)
- polish mobile UX — cache bust, wallet button visibility (c74e754)
- prevent initial flash on mobile, use matchMedia for resize (d7b695f)
- query way and relation elements in Overpass venue search (bd69263)
- reduce hull buffer size and cap Overpass results (df3fc47)
- remove intersection sliver outlines from map display (0a532ed)
- remove isochrone border lines entirely (2bae0ba)
- remove position: relative that overrides MapLibre marker positioning (6f16739)
- replace flaky QR library with dynamic import and lightning: URI (9d831a9)
- resolve mobile demo page scrolling, QR code, and ride distance issues (20e2409)
- route popup z-index to 9999 so it sits above all markers and labels (22616ca)
- soften isochrone borders, block stale participants, fix theme swap (7e65487)
- unpin esm.sh import, fix theme swap and credit display (5d836a8)
- update demo imports to v1.18.0 and bump cache busters (d7ef5f9)
- update geohash-kit to version with convexHull export (1026573)
- update version badge and cache-busting params (12a0979)
- use string concatenation for Overpass query to avoid esm.sh minifier bug (b543182)
- use topVenues for markers, increase area threshold, filter zero travel times (0ca3eee)
- venue positioning, marker stability, and matrix overflow (24a5792)
- add bottom sheet drag handle to panel HTML (5f7a25c)
- add hull buffer, auto-decision logic, and speed constants (24e8999)
- add hull fast-path pipeline to findRendezvous (d87e394)
- add manoeuvre icons, badges, and timeline to directions UI (d33d376)
- add Overpass API fallback endpoints and timeout (318ae5e)
- add route types (GeoJSONLineString, RouteLeg, RouteGeometry) and computeRoute to RoutingEngine (81064e0)
- add scenario regeneration script for real Valhalla data (8e8371e)
- add strategy option to RendezvousOptions (933a4ee)
- add stub computeRoute to OpenRouteService, GraphHopper, and OSRM engines (00ddd7e)
- add ValhallaError class, custom headers support, and typed error handling (9e8fa11)
- bigger panel and text, rich turn-by-turn in route popups (3851638)
- bottom sheet CSS with touch targets and mobile header (fc38d88)
- bottom sheet touch handling with auto-transitions (066f405)
- centre map on user's GPS location when available (8ffe0d1)
- demo UX overhaul — fix bugs, add credit display and theme toggle (bbc3824)
- enrich RouteLeg type with manoeuvre details and road attributes (ae09429)
- expand venue types to 17 with grouped chip picker (ab68fd6)
- export ManoeuvreType from barrel (537a79a)
- expose map instance for demo recording (48aa293)
- implement computeRoute in ValhallaEngine with polyline6 decoder and manoeuvre legs (fe4102d)
- interactive mode — tab switching, markers, live pipeline (8318b28)
- interactive mode HTML structure and CSS styles (f293b51)
- make Interactive the default tab in demo page (83e898a)
- map enriched manoeuvre fields from Valhalla to RouteLeg (1446e49)
- mobile UX overhaul — bottom sheet, QR fix, touch targets (5a07a8b)
- progressive isochrone reveal with hull visualisation (4f5d945)
- prominent route popup with high z-index, shadow, and bigger text (229afdd)
- render turn-by-turn directions in expanded result cards (eaa9f70)
- sticky action bar on mobile for Find/Clear buttons (6fc9343)
- store route data for turn-by-turn directions display (b5ac065)
- style enriched directions with timeline, icons, badges, and progress (c9ade24)
- style turn-by-turn directions UI in result cards (9ddd029)
- use self-hosted Overpass API for venue search (385aa0c)
1.10.0 (2026-03-14)
- add cache-busting query strings to CSS and JS references (95a4567)
- add empty guard to envelopePolygon and consistent error messages (1a82491)
- add explicit language and units to Valhalla route request (ac60fb5)
- address code review — JSDoc, stub params, fractional duration test (69554c0)
- cancel in-flight animation on mode switch (8bc327b)
- cap maxTimeMinutes and venueTypes array length (2752d27)
- clean up route listeners, sync fairness pickers, add alert role (4c1697d), closes #interactive-error
- deduplicate consecutive vertices in sutherlandHodgman output (1746515)
- escape scenario name in error path for consistent XSS prevention (12a6327)
- fade out markers when route popup is open so nothing obscures it (7a0ddca)
- fetch version from npm registry instead of hardcoding (fe3c003)
- filter degenerate intersection polygons, limit venues to top 5, handle route 402 with payment panel (5ae0998)
- force all map markers below popup with z-index override (6655bf7)
- guard route layer removal with getLayer/getSource checks (d5dc784)
- harden input validation and add production readiness checks (458ba6f)
- harden security and production readiness (914e54b)
- marker positioning, intersection lines, and theme swap (7e9f398)
- parallelise isochrone calls and add fetch timeouts (1590b3e)
- pass status token when polling invoice-status endpoint (2348deb)
- pin esm.sh import to rendezvous-kit@1.14.0 for enriched directions (36c1909)
- polish mobile UX — cache bust, wallet button visibility (c74e754)
- prevent initial flash on mobile, use matchMedia for resize (d7b695f)
- query way and relation elements in Overpass venue search (bd69263)
- reduce hull buffer size and cap Overpass results (df3fc47)
- remove intersection sliver outlines from map display (0a532ed)
- remove isochrone border lines entirely (2bae0ba)
- remove position: relative that overrides MapLibre marker positioning (6f16739)
- replace flaky QR library with dynamic import and lightning: URI (9d831a9)
- resolve mobile demo page scrolling, QR code, and ride distance issues (20e2409)
- route popup z-index to 9999 so it sits above all markers and labels (22616ca)
- soften isochrone borders, block stale participants, fix theme swap (7e65487)
- unpin esm.sh import, fix theme swap and credit display (5d836a8)
- update demo imports to v1.18.0 and bump cache busters (d7ef5f9)
- update geohash-kit to version with convexHull export (1026573)
- update version badge and cache-busting params (12a0979)
- use string concatenation for Overpass query to avoid esm.sh minifier bug (b543182)
- use topVenues for markers, increase area threshold, filter zero travel times (0ca3eee)
- venue positioning, marker stability, and matrix overflow (24a5792)
- add bottom sheet drag handle to panel HTML (5f7a25c)
- add hull buffer, auto-decision logic, and speed constants (24e8999)
- add hull fast-path pipeline to findRendezvous (d87e394)
- add manoeuvre icons, badges, and timeline to directions UI (d33d376)
- add Overpass API fallback endpoints and timeout (318ae5e)
- add route types (GeoJSONLineString, RouteLeg, RouteGeometry) and computeRoute to RoutingEngine (81064e0)
- add scenario regeneration script for real Valhalla data (8e8371e)
- add strategy option to RendezvousOptions (933a4ee)
- add stub computeRoute to OpenRouteService, GraphHopper, and OSRM engines (00ddd7e)
- add ValhallaError class, custom headers support, and typed error handling (9e8fa11)
- bigger panel and text, rich turn-by-turn in route popups (3851638)
- bottom sheet CSS with touch targets and mobile header (fc38d88)
- bottom sheet touch handling with auto-transitions (066f405)
- centre map on user's GPS location when available (8ffe0d1)
- demo UX overhaul — fix bugs, add credit display and theme toggle (bbc3824)
- enrich RouteLeg type with manoeuvre details and road attributes (ae09429)
- expand venue types to 17 with grouped chip picker (ab68fd6)
- export ManoeuvreType from barrel (537a79a)
- expose map instance for demo recording (48aa293)
- implement computeRoute in ValhallaEngine with polyline6 decoder and manoeuvre legs (fe4102d)
- interactive mode — tab switching, markers, live pipeline (8318b28)
- interactive mode HTML structure and CSS styles (f293b51)
- make Interactive the default tab in demo page (83e898a)
- map enriched manoeuvre fields from Valhalla to RouteLeg (1446e49)
- mobile UX overhaul — bottom sheet, QR fix, touch targets (5a07a8b)
- progressive isochrone reveal with hull visualisation (4f5d945)
- prominent route popup with high z-index, shadow, and bigger text (229afdd)
- render turn-by-turn directions in expanded result cards (eaa9f70)
- sticky action bar on mobile for Find/Clear buttons (6fc9343)
- store route data for turn-by-turn directions display (b5ac065)
- style enriched directions with timeline, icons, badges, and progress (c9ade24)
- style turn-by-turn directions UI in result cards (9ddd029)
- use self-hosted Overpass API for venue search (385aa0c)
1.10.0 (2026-03-13)
- add cache-busting query strings to CSS and JS references (95a4567)
- add empty guard to envelopePolygon and consistent error messages (1a82491)
- add explicit language and units to Valhalla route request (ac60fb5)
- address code review — JSDoc, stub params, fractional duration test (69554c0)
- cancel in-flight animation on mode switch (8bc327b)
- cap maxTimeMinutes and venueTypes array length (2752d27)
- clean up route listeners, sync fairness pickers, add alert role (4c1697d), closes #interactive-error
- deduplicate consecutive vertices in sutherlandHodgman output (1746515)
- escape scenario name in error path for consistent XSS prevention (12a6327)
- fade out markers when route popup is open so nothing obscures it (7a0ddca)
- fetch version from npm registry instead of hardcoding (fe3c003)
- filter degenerate intersection polygons, limit venues to top 5, handle route 402 with payment panel (5ae0998)
- force all map markers below popup with z-index override (6655bf7)
- guard route layer removal with getLayer/getSource checks (d5dc784)
- harden input validation and add production readiness checks (458ba6f)
- harden security and production readiness (914e54b)
- marker positioning, intersection lines, and theme swap (7e9f398)
- parallelise isochrone calls and add fetch timeouts (1590b3e)
- pass status token when polling invoice-status endpoint (2348deb)
- pin esm.sh import to rendezvous-kit@1.14.0 for enriched directions (36c1909)
- polish mobile UX — cache bust, wallet button visibility (c74e754)
- prevent initial flash on mobile, use matchMedia for resize (d7b695f)
- query way and relation elements in Overpass venue search (bd69263)
- reduce hull buffer size and cap Overpass results (df3fc47)
- remove intersection sliver outlines from map display (0a532ed)
- remove isochrone border lines entirely (2bae0ba)
- remove position: relative that overrides MapLibre marker positioning (6f16739)
- replace flaky QR library with dynamic import and lightning: URI (9d831a9)
- resolve mobile demo page scrolling, QR code, and ride distance issues (20e2409)
- route popup z-index to 9999 so it sits above all markers and labels (22616ca)
- soften isochrone borders, block stale participants, fix theme swap (7e65487)
- unpin esm.sh import, fix theme swap and credit display (5d836a8)
- update demo imports to v1.18.0 and bump cache busters (d7ef5f9)
- update geohash-kit to version with convexHull export (1026573)
- update version badge and cache-busting params (12a0979)
- use string concatenation for Overpass query to avoid esm.sh minifier bug (b543182)
- use topVenues for markers, increase area threshold, filter zero travel times (0ca3eee)
- venue positioning, marker stability, and matrix overflow (24a5792)
- add bottom sheet drag handle to panel HTML (5f7a25c)
- add hull buffer, auto-decision logic, and speed constants (24e8999)
- add hull fast-path pipeline to findRendezvous (d87e394)
- add manoeuvre icons, badges, and timeline to directions UI (d33d376)
- add Overpass API fallback endpoints and timeout (318ae5e)
- add route types (GeoJSONLineString, RouteLeg, RouteGeometry) and computeRoute to RoutingEngine (81064e0)
- add scenario regeneration script for real Valhalla data (8e8371e)
- add strategy option to RendezvousOptions (933a4ee)
- add stub computeRoute to OpenRouteService, GraphHopper, and OSRM engines (00ddd7e)
- add ValhallaError class, custom headers support, and typed error handling (9e8fa11)
- bigger panel and text, rich turn-by-turn in route popups (3851638)
- bottom sheet CSS with touch targets and mobile header (fc38d88)
- bottom sheet touch handling with auto-transitions (066f405)
- centre map on user's GPS location when available (8ffe0d1)
- demo UX overhaul — fix bugs, add credit display and theme toggle (bbc3824)
- enrich RouteLeg type with manoeuvre details and road attributes (ae09429)
- expand venue types to 17 with grouped chip picker (ab68fd6)
- export ManoeuvreType from barrel (537a79a)
- expose map instance for demo recording (48aa293)
- implement computeRoute in ValhallaEngine with polyline6 decoder and manoeuvre legs (fe4102d)
- interactive mode — tab switching, markers, live pipeline (8318b28)
- interactive mode HTML structure and CSS styles (f293b51)
- make Interactive the default tab in demo page (83e898a)
- map enriched manoeuvre fields from Valhalla to RouteLeg (1446e49)
- mobile UX overhaul — bottom sheet, QR fix, touch targets (5a07a8b)
- progressive isochrone reveal with hull visualisation (4f5d945)
- prominent route popup with high z-index, shadow, and bigger text (229afdd)
- render turn-by-turn directions in expanded result cards (eaa9f70)
- sticky action bar on mobile for Find/Clear buttons (6fc9343)
- store route data for turn-by-turn directions display (b5ac065)
- style enriched directions with timeline, icons, badges, and progress (c9ade24)
- style turn-by-turn directions UI in result cards (9ddd029)
- use self-hosted Overpass API for venue search (385aa0c)
1.21.3 (2026-03-12)
- cap maxTimeMinutes and venueTypes array length (73d9fcd)
- harden input validation and add production readiness checks (5eac7ae)
1.21.2 (2026-03-11)
- pass status token when polling invoice-status endpoint (3d8fcc4)
1.21.1 (2026-03-10)
- update geohash-kit to version with convexHull export (b26858f)
1.21.0 (2026-03-08)
- polish mobile UX — cache bust, wallet button visibility (6a44688)
- prevent initial flash on mobile, use matchMedia for resize (01eb176)
- replace flaky QR library with dynamic import and lightning: URI (2d7e47e)
- add bottom sheet drag handle to panel HTML (6047d1a)
- bottom sheet CSS with touch targets and mobile header (d7ae484)
- bottom sheet touch handling with auto-transitions (ab21523)
- mobile UX overhaul — bottom sheet, QR fix, touch targets (8499f00)
1.20.3 (2026-03-07)
- resolve mobile demo page scrolling, QR code, and ride distance issues (1885a00)
1.20.2 (2026-03-06)
- harden security and production readiness (c4af3f2)
1.20.1 (2026-03-05)
- guard route layer removal with getLayer/getSource checks (2e6f9d5)
1.20.0 (2026-03-05)
- centre map on user's GPS location when available (3771a04)
1.19.1 (2026-03-05)
- use string concatenation for Overpass query to avoid esm.sh minifier bug (08f8d47)
1.19.0 (2026-03-05)
- reduce hull buffer size and cap Overpass results (fcab096)
- update demo imports to v1.18.0 and bump cache busters (c64d2ff)
- add hull buffer, auto-decision logic, and speed constants (f124dcf)
- add hull fast-path pipeline to findRendezvous (ea3f94b)
- add strategy option to RendezvousOptions (e211c0b)
- make Interactive the default tab in demo page (b126c9e)
- progressive isochrone reveal with hull visualisation (3a0cf3c)
1.18.0 (2026-03-02)
- expose map instance for demo recording (77ecd15)
1.17.2 (2026-03-01)
- add explicit language and units to Valhalla route request (e676cf4)
1.17.1 (2026-03-01)
- query way and relation elements in Overpass venue search (b19be81)
1.16.3 (2026-02-28)
- fade out markers when route popup is open so nothing obscures it (4655c3d)
1.16.2 (2026-02-28)
- force all map markers below popup with z-index override (eebf6c9)
1.16.1 (2026-02-28)
- route popup z-index to 9999 so it sits above all markers and labels (6ecaed3)
1.16.0 (2026-02-28)
- prominent route popup with high z-index, shadow, and bigger text (e98a577)
1.15.0 (2026-02-28)
- bigger panel and text, rich turn-by-turn in route popups (58eb174)
1.14.1 (2026-02-28)
- pin esm.sh import to rendezvous-kit@1.14.0 for enriched directions (3595973)
1.14.0 (2026-02-28)
- add manoeuvre icons, badges, and timeline to directions UI (c3b6609)
- enrich RouteLeg type with manoeuvre details and road attributes (488231e)
- export ManoeuvreType from barrel (96e82b3)
- map enriched manoeuvre fields from Valhalla to RouteLeg (73e242e)
- style enriched directions with timeline, icons, badges, and progress (515a436)
1.13.0 (2026-02-28)
- cancel in-flight animation on mode switch (82d350e)
- render turn-by-turn directions in expanded result cards (119dd78)
- sticky action bar on mobile for Find/Clear buttons (f665922)
- store route data for turn-by-turn directions display (f356531)
- style turn-by-turn directions UI in result cards (13ce1ca)
- use self-hosted Overpass API for venue search (b2e6405)
1.12.0 (2026-02-28)
- add Overpass API fallback endpoints and timeout (a8fb8f5)
1.11.5 (2026-02-28)
- remove isochrone border lines entirely (d52d281)
1.11.4 (2026-02-28)
- unpin esm.sh import, fix theme swap and credit display (77ffc09)
1.11.3 (2026-02-28)
- soften isochrone borders, block stale participants, fix theme swap (ee40db5)
1.11.2 (2026-02-28)
- fetch version from npm registry instead of hardcoding (afea2bf)
- update version badge and cache-busting params (e1fb0cd)
1.11.1 (2026-02-28)
- marker positioning, intersection lines, and theme swap (71e33fc)
1.11.0 (2026-02-28)
- demo UX overhaul — fix bugs, add credit display and theme toggle (3776a8f)
1.10.6 (2026-02-28)
- add cache-busting query strings to CSS and JS references (57caeae)
1.10.5 (2026-02-28)
- remove position: relative that overrides MapLibre marker positioning (3fbac0b)
1.10.4 (2026-02-28)
- remove intersection sliver outlines from map display (a312d72)
1.10.3 (2026-02-28)
- venue positioning, marker stability, and matrix overflow (cbad5de)
1.10.2 (2026-02-28)
- use topVenues for markers, increase area threshold, filter zero travel times (62c6d7c)
1.10.1 (2026-02-28)
- filter degenerate intersection polygons, limit venues to top 5, handle route 402 with payment panel (10cc97e)
1.10.0 (2026-02-28)
- add empty guard to envelopePolygon and consistent error messages (bbe91f2)
- address code review — JSDoc, stub params, fractional duration test (b1962a8)
- clean up route listeners, sync fairness pickers, add alert role (3f78f17), closes #interactive-error
- deduplicate consecutive vertices in sutherlandHodgman output (a955dd9)
- escape scenario name in error path for consistent XSS prevention (fef9f8e)
- add route types (GeoJSONLineString, RouteLeg, RouteGeometry) and computeRoute to RoutingEngine (eeabf2d)
- add scenario regeneration script for real Valhalla data (8bf818c)
- add stub computeRoute to OpenRouteService, GraphHopper, and OSRM engines (c9d9f18)
- add ValhallaError class, custom headers support, and typed error handling (8cbc4eb)
- implement computeRoute in ValhallaEngine with polyline6 decoder and manoeuvre legs (314c4fe)
- interactive mode — tab switching, markers, live pipeline (1281f5c)
- interactive mode HTML structure and CSS styles (21522de)
1.9.0 (2026-02-27)
- add Lake District scenario (cycling + terrain-irregular isochrones) (9de3bc9)
- add Manchester Group scenario (5 participants, tight budget, over-budget filtering) (01e4d28)
- add new scenario options to picker dropdown (9dd5568)
- add Severn Estuary scenario (concave coastline isochrones) (9cc6607)
- add Thames Estuary scenario (disconnected multi-component intersection) (18eb335)
- update demo.js to render multi-component intersections (17a67af)
1.8.0 (2026-02-27)
- multi-component intersection, concave clipping, and pipeline hardening (39702f6)
1.7.0 (2026-02-27)
- highlight deciding factors per fairness strategy (6031e3d)
1.6.0 (2026-02-27)
- bigger participant markers with isochrone highlighting (1db9308)
1.5.0 (2026-02-27)
- add circleToPolygon and getDestinationPoint geodesic utilities (db590c2)
1.4.1 (2026-02-27)
- remove popups, soften intersection, add fairness descriptions (1eb0e7a)
1.4.0 (2026-02-27)
- two-way map/sidebar venue selection (574539a)
1.3.0 (2026-02-27)
1.2.0 (2026-02-27)
1.1.0 (2026-02-27)
- add error handling, HTML escaping, and code panel fairness sync (1cb79af)
- address code review — Firefox marker, focus-visible, semantic label (f54ec02)
- adjust scenario data — Edinburgh coordinates, London maxTime, trailing newlines (bed4174)
- add demo page application logic with pipeline animation (cac812c)
- add demo page HTML shell and dark theme CSS (b321b14)
- add scenario generation script and pre-baked JSON data (eaf0984)
- add distance comment, distanceKm assertion, and matrix error test (3722670)
- align OSRM computeIsochrone signature with RoutingEngine interface (19d13b3)
- correct description and npmrc to match OIDC publishing (5353ac1)
- use params helper for GraphHopper matrix URL encoding (7862353)
- add GraphHopper routing engine adapter (0680f7f)
- add OpenRouteService routing engine adapter (8b6b46a)
- add OSRM routing engine adapter (matrix only) (43dfbaf)
- add Overpass API venue search (a8e4c58)
- add polygon intersection with Sutherland-Hodgman clipping (2d7a068)
- add Valhalla routing engine adapter (a16a1cc)
- implement findRendezvous algorithm (6dc8e90)
- scaffold trott-routing package with types (0dfa023)
- update barrel exports with all engines and geo module (4bfe1aa)
- upgrade rendezvous pipeline from bbox to polygon intersection (e60899a)