Repository navigation
Releases: JonasHeinickeBio/pyBikeRouter
Releases · JonasHeinickeBio/pyBikeRouter
Release list
v0.3.0
What's Changed
- feat(tailscale): serve on any HTTPS port by @JonasHeinickeBio in #75
- feat(chat): conversations survive a restart or redeploy by @JonasHeinickeBio in #76
- feat(optimizer): optional sideways detours (off by default) by @JonasHeinickeBio in #77
- feat(chat): a route from the chat fills the Plan form by @JonasHeinickeBio in #79
- feat(frontend): click any point on the map and choose where it goes by @JonasHeinickeBio in #80
- feat(scoring): score the traffic estimate when the request avoids busy roads by @JonasHeinickeBio in #81
- feat(scoring): surface preferences are scored, from the engine's own surface shares by @JonasHeinickeBio in #82
- feat(chat): new chat, earlier conversations and delete in the web panel by @JonasHeinickeBio in #83
- feat(weather): estimate the wind's effect on the travel time by @JonasHeinickeBio in #84
- feat(pois): sight stops for loops by @JonasHeinickeBio in #85
- feat(health): a service status dot in the page and the sight lookup in /readyz by @JonasHeinickeBio in #86
- feat(export): the forecast in the GPX and GeoJSON files by @JonasHeinickeBio in #87
- feat(frontend): an elevation profile for the route shown by @JonasHeinickeBio in #88
- feat(pois): opening hours checked against the time you pass a sight by @JonasHeinickeBio in #89
- feat(frontend): a link that opens the planner with the form's trip in it by @JonasHeinickeBio in #90
- feat(directions): turn-by-turn cues from BRouter, a directions list and a cue sheet by @JonasHeinickeBio in #91
- feat(map): colour the route by surface or by traffic by @JonasHeinickeBio in #92
- feat(map): colour the route by gradient by @JonasHeinickeBio in #93
- feat(directions): the time you are expected at each step by @JonasHeinickeBio in #94
- feat(map): drag the route to reshape it by @JonasHeinickeBio in #95
- feat(map): drag a place marker to move that place by @JonasHeinickeBio in #96
- feat(self-hosted): an opt-in Overpass for the sight search by @JonasHeinickeBio in #97
- feat(pois): read more of the opening-hours language (measured on real tags) by @JonasHeinickeBio in #98
- feat(scoring): say which surface words were ignored; "unpaved" means every unpaved category by @JonasHeinickeBio in #99
- feat(map): a long press puts the route's drag handle on a touch screen by @JonasHeinickeBio in #100
- feat(map): a preview line while dragging the route handle by @JonasHeinickeBio in #101
- feat(frontend): "Remember my choices", an opt-in memory of the plan form by @JonasHeinickeBio in #102
- feat(self-hosted): --memory presets for the containers' RAM by @JonasHeinickeBio in #103
- feat(plan): trace every step, cancel abandoned plans, stream progress, cache briefly by @JonasHeinickeBio in #104
- feat(cli): tab completion, live progress and --trace for route plan, a Makefile by @JonasHeinickeBio in #107
- docs(scoring): surface-weight calibration repeated with OSM enrichment by @JonasHeinickeBio in #108
- feat(chat): the web form tells the chat what it holds by @JonasHeinickeBio in #109
- feat(chat): a benchmark for how it reads messages, and an opt-in local miss log by @JonasHeinickeBio in #110
- feat(mcp): bike-router mcp serve, four facts-only tools for another agent by @JonasHeinickeBio in #112
- feat(mcp): prepare publishing to PyPI and the official MCP Registry by @JonasHeinickeBio in #113
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- Milestone: geocoding hardening, provider architecture, CLI, frontend, docs by @JonasHeinickeBio in #9
- feat(routing): local BRouter service with versioned custom profiles by @JonasHeinickeBio in #11
- feat(routing): Valhalla engine + parallel all-engine routing (issue #2) by @JonasHeinickeBio in #12
- feat(enrichment): OSM surface enrichment via Overpass with quality policy (issue #3) by @JonasHeinickeBio in #13
- feat(scoring): score calibration against curated benchmark (issue #4) by @JonasHeinickeBio in #14
- Add loop-route planning (issue #5) by @JonasHeinickeBio in #15
- feat(ui): compare all scored candidates on the map (issue #6) by @JonasHeinickeBio in #16
- feat(storage): PostGIS route history and artifact storage (issue #7) by @JonasHeinickeBio in #17
- feat(storage): evaluation stats endpoint and dashboard (issue #7) by @JonasHeinickeBio in #18
- ci: split CI into jobs; add PostGIS, Docker smoke test, CodeQL, dependency review, Dependabot by @JonasHeinickeBio in #20
- feat(ui): iPhone layout, home-screen app and Tailscale serve script by @JonasHeinickeBio in #19
- feat(scoring): evidence-aware surface fit, inactive until calibrated (#23) by @JonasHeinickeBio in #31
- feat(ops): /readyz readiness endpoint (#25) by @JonasHeinickeBio in #33
- feat(routing): ranked, de-duplicated alternatives (#24) by @JonasHeinickeBio in #32
- feat(ops): self-hosted ORS + Nominatim compose profile (#26) by @JonasHeinickeBio in #35
- docs(ops): self-hosted requirements + run just one half on a small machine by @JonasHeinickeBio in #36
- feat(storage): retention pruning and S3-compatible artifact store (#27) by @JonasHeinickeBio in #37
- feat(storage): schema migrations and CLI history recording (#28) by @JonasHeinickeBio in #40
- feat(cache): shared Redis cache for geocode and Overpass results (#29) by @JonasHeinickeBio in #41
- feat(weather): forecast along the route at departure time + weather UI by @JonasHeinickeBio in #43
- feat(llm): plan a ride from plain words via an LLM request parser (issue #30) by @JonasHeinickeBio in #44
- chore(ci): bump the actions group across 2 directories with 8 updates by @dependabot[bot] in #21
- chore(deps): bump the python-minor-and-patch group across 1 directory with 4 updates by @dependabot[bot] in #34
- chore(deps): update all dependencies incl. LangGraph 1.2 (supersedes #38, #39) by @JonasHeinickeBio in #45
- feat(weather): feels-like, where the rain is, computed sunrise/sunset by @JonasHeinickeBio in #46
- feat(weather): DWD forecasts for Germany via Bright Sky by @JonasHeinickeBio in #47
- feat(weather): merge several sources - fill one provider's gaps from another by @JonasHeinickeBio in #48
- feat(weather): compare departure times around the requested one by @JonasHeinickeBio in #49
- feat(profiles): gravel-v2 (elevation costs on) and a profile evaluation by @JonasHeinickeBio in #50
- feat(profiles): commuter-v1 - trekking with traffic estimates replaces fastbike-verylowtraffic by @JonasHeinickeBio in #51
- feat(alternatives): alternative routes with short pros and cons in the UI by @JonasHeinickeBio in #52
- feat(brouter): apply avoid_high_traffic_roads per request via the profile's traffic switch by @JonasHeinickeBio in #54
- feat(frontend): download any alternative route as GPX or GeoJSON by @JonasHeinickeBio in #53
- feat(poi): fetch, resolve and show points of interest; add to route; route past the most famous sights by @JonasHeinickeBio in #56
- feat(frontend): settings panel that slides out from the right, hidden by default by @JonasHeinickeBio in #59
- fix(frontend): ask for a zoom when the map view is wider than the POI limit by @JonasHeinickeBio in #57
- feat(routing): ask the user what to do when BRouter has no map data - with buttons by @JonasHeinickeBio in #58
- feat(cli): the CLI does what the API and the web form do by @JonasHeinickeBio in #60
- feat(cli): deploy group - build, up with rollback, status, logs, stop, tailscale by @JonasHeinickeBio in #62
- feat(chat): LangGraph chat with several ways to get a route by @JonasHeinickeBio in #63
- feat: report traffic and surface everywhere; alternatives deadline grows with the trip by @JonasHeinickeBio in #64
- feat(traffic): estimate exposure per way segment and report it in four bands by @JonasHeinickeBio in #65
- feat(optimizer): fetch several routes and pick the best fit for goals by @JonasHeinickeBio in #66
- feat(optimizer): a goal for well-known places along the track by @JonasHeinickeBio in #67
- feat(frontend): an Optimize tab for the route optimiser by @JonasHeinickeBio in #68
- fix(brouter): the main route may take longer on a long or hilly trip by @JonasHeinickeBio in #69
- feat: easy install for people who do not program by @JonasHeinickeBio in #70
- feat(setup): connect OpenRouter or a local Ollama, or leave it off by @JonasHeinickeBio in #71
- chore: version 0.2.0, MIT licence and BRouter's licence by @JonasHeinickeBio in #72
New Contributors
- @JonasHeinickeBio made their first contribution in #9
- @dependabot[bot] made their first contribution in #21
Full Changelog: https://github.com/JonasHeinickeBio/pyBikeRouter/commits/v0.2.0