github tess1o/geopulse v2.1.1
Release v2.1.1 - colored path, campaign fixes, map scale

3 hours ago

GeoPulse 2.1.1

Short summary: added per-day path colors and a scale bar on maps, an MCP setup page, and fixes for boat trip detection and timeline regeneration campaigns. Safe to upgrade, no manual steps needed.

New

Color paths by day

When you view more than one day, each day can now get its own path color, matching the colored dots on the timeline day headers. Switch it on with the new calendar button on the map, or in Profile → Appearance → Multi-day ranges.

  • Four palettes: Classic, Okabe-Ito, Muted, and Light and dark. Okabe-Ito, Muted and Light and dark stay distinguishable for common color vision types.
  • Short ranges get a distinct color per day; longer ranges run from oldest to newest along the heatmap colors.
  • Colors too close to the selected trip color are skipped.
  • Works on the Timeline, Trip Workspace and shared timelines.
image

Show one day on the map

From a timeline day header you can choose Show only this day on the map. The other days fade out (paths and cluster icons), and a chip shows which day is focused, with a button to show all days again.

image

Map scale bar

Maps now show a distance scale in the bottom-left corner, in kilometers or miles following your distance unit setting. It is on by default and can be turned off in Profile → Appearance → Map.

image

MCP tab in Connected Apps

The MCP server from 2.1.0 now has its own tab in Profile → Connected Apps:

  • the server URL to connect to
  • a button to create a read-only API token for each client
  • ready-to-copy setup for Claude Desktop, Claude Code and other Streamable HTTP clients (with a link for ChatGPT)
  • an overview of what your AI client can read, with example questions
image

Fixes

  • Boat trips (#631): a stretch between a GPS point on water and one on land now counts half as water instead of all land. A single fix on the shore between sparse points could previously turn kilometers of a boat trip into land, so the trip was detected as a bike trip.
  • Manual trip type corrections are now reattached after a timeline regeneration by time: to the regenerated trip that shares more than half of its time with the original trip, and more than half of its own time with it. Previously they were matched by start and end points and distance, which can move by hundreds of meters when trip boundaries change, so a correction could be lost. A correction that finds no match is kept and tried again after the next regeneration.
  • Timeline regeneration campaigns (the automatic regeneration after an upgrade) could stay unfinished and hold back the real-time timeline:
    • users interrupted by a backend restart are now picked up again after about 10 minutes instead of 2 hours, while a long regeneration that is still running is left alone
    • waiting for another timeline job no longer uses up a user's attempts
    • users with no attempts left are marked as failed instead of staying pending forever, and can be retried from the Admin panel
    • a failed user no longer holds back their real-time timeline
    • the Admin campaign page now lists running and retrying users with their next attempt, not only failed ones
  • Dark mode: fixed light backgrounds on the City, Country, Technical Data and Timeline Job pages.

Configuration changes

The following environment variables were removed, because manual trip type corrections are now matched by time. If you set any of them, you can delete them; they are ignored.

  • GEOPULSE_TIMELINE_TRIP_MOVEMENT_OVERRIDE_MAX_TIMESTAMP_DELTA_SECONDS
  • GEOPULSE_TIMELINE_TRIP_MOVEMENT_OVERRIDE_MAX_POINT_DISTANCE_METERS
  • GEOPULSE_TIMELINE_TRIP_MOVEMENT_OVERRIDE_MIN_DURATION_RATIO
  • GEOPULSE_TIMELINE_TRIP_MOVEMENT_OVERRIDE_MAX_DURATION_RATIO
  • GEOPULSE_TIMELINE_TRIP_MOVEMENT_OVERRIDE_MIN_DISTANCE_RATIO
  • GEOPULSE_TIMELINE_TRIP_MOVEMENT_OVERRIDE_MAX_DISTANCE_RATIO

Full Changelog: v2.1.0...v2.1.1

Don't miss a new geopulse release

NewReleases is sending notifications on new releases.