Repository navigation
⚠️ Upgrade notes
- If a long transaction keeps the
pointstable locked, the upgrade now stops with an error instead of starting without thepoints.source_idorpoints.altitude_decimalcolumn. Stop Sidekiq or wait for running imports to finish, then restart; the migrations are safe to re-run. The error message also shows theALTER TABLEto run by hand.
Added
- AirTrail sync now imports a flight's recorded track, such as one uploaded to AirTrail from a CSV file, and the map draws the real flight path instead of the great-circle arc. A track is downloaded again only when it changes in AirTrail. This needs AirTrail 3.13.0 or later and an API key with the
tracks.readscope; flights without a track, older AirTrail versions and keys without that access keep the arc. Tracks are cut at your privacy zones on the map like other routes, and flight distances in stats are unchanged. (#3785) - Create Visit on the map fills the location and times from selected points or nearby history, using the latest stay when several are found. Create and edit forms now let you choose a Place, with a nearby previously visited Place selected when creating a visit.
- Mark a point the GPS noise filter hid as correct. Turn on the Anomalies layer, click the orange point and press "Mark as correct". The point returns to the map and your stats, rejoins a nearby track of the same device when there is one, and stays visible when you re-evaluate past data. The API is
PATCH /api/v1/points/:id/mark_valid(#3722).
Changed
- Bumped rack (3.2.8), nokogiri (1.19.7), loofah (2.25.3), rails-html-sanitizer (1.7.2) and addressable (2.9.2) to close known advisories. Self-hosters get the fixes by upgrading.
- On Lite, Pro-only map settings (custom tiles, theme, colours, Hexagons and other gated layers) are kept but not applied until you upgrade.
- Reset in the map settings now restores only appearance settings, matching a fresh account. The API is
DELETE /api/v1/settings/appearance;keys[]limits it to some settings. - Creating or editing a visit, including through
POSTandPATCH /api/v1/visits, with the same name as the existing Place it is attached to (or, when changing Place, the previous Place) no longer saves a separate visit name, so the visit shows the Place's current name and follows later renames. - The Place search API (
GET /api/v1/places/search) also returns your Places that have visits but are hidden from the map, and marks each result withhas_visits; declined and deleted visits are not counted.
Fixed
- On the globe, photos taken close to the North or South Pole are placed at their real position instead of being pulled down to about 85° latitude. The flat map keeps showing them at its top or bottom edge (#3262).
- Poster Studio explains that buildings and railways only appear once the map is zoomed in to city level, instead of silently showing nothing for them on wider posters (#3974).
- Uploading points from the mobile apps or Overland no longer returns HTTP 500 on instances whose
pointstable never got thealtitude_decimalorsource_idcolumn: the upgrade now adds the missing columns.altitude_decimalwas missing on instances first set up from the 1.5.0–1.6.x schema,source_idon ones that were busy while upgrading past 1.13.1. Wheresource_idis added, self-hosted instances then fill it in a background job (#3969, #3972). - Instances missing those columns also built no new tracks since 1.17.0. Once the upgrade adds the columns, track generation catches up right away instead of on the next 12-hour run (#3915).
- If a long transaction keeps
pointslocked, startup now stops with an error and retries on the next start, instead of carrying on without it (#3972). - Trip previews, day routes and poster routes that cross the date line draw as one continuous line instead of a seam with a jump near the poles (#3261).
- Searching for a place in the visit editor against a self-hosted Photon server that only supports reverse geocoding now explains that text search can't find new places there, instead of showing an empty list. Saved places still match by name.
GET /api/v1/places/searchreports this asforward_search_unavailable: true(#3590). - Achievement checks no longer hang for hours on accounts with stale
pointsstatistics: each map grid cell's region is looked up once whatever query plan PostgreSQL picks, the query stops after 10 minutes, and a cancelled check is dropped instead of retried, keeping its pending work for the next run (#3933). - Containers started with
PUID/PGIDno longer log that/is not writable on every start: when that user has no home directory, the app and Sidekiq use theirtmpdirectory asHOME(#3917). - The German year-vs-year distance comparison in Insights now reads "2.745 km mehr" and "715 km weniger" instead of "Vorne um" and "Zurück um" (#3978).
💙 This release is supported by Steven B., James Manolios, chenrik, aldumil, derpderpington, Chippie, dint, jhalpern, Lex Fradski, Schlufo, cyberswan.at, craftyklaus, Andre, hogenf, naraxius, Embrace, martin4861, Alex, evetters, GregF, Jon Coffee, Lukas, Robbie G, Kilian, Hans G, Chris, tabaha, Andre, Michael C, Chris, Jonah B., Dante, daallex, Tanner A., Milien M., Mathias, Travis S., Matthew F., Johnathan D., bleibdirtroy, no1etal, dixet, Bailey J., Alex D., Benjamin M., Daniel A., Florian, BeeHappy, ChemistryDachshund, OrangeWindies, Michelangelo V., Edward, Erazem Z., Denis Abt, Tony G., Lomky, Osamu Y., Linus T., Sebastian, Jan K., Nathan T., Max G., Karol B., Konstantin, Johannes H., t3hero, g3lin, Tim, Philipp M., Brand K., Pablo F. M., Jon H., fkB, Mikael, Dániel A., Hai_Tsung, ShooTex, GreenTentacle, PinkahPandah, David, Ken, Denna G., Andre, Hendl91, Jon H., MrRed, Arkadiusz Z., Jake, Bator T., Alex J. H., eps-dev, twiggu, Dragan V., Jerome G., Sheya B., Gustav B., higgs01, Frank F., F. J. Kruz, Jon D., Alexander J. H., Daniel D., Ricardo T., Christof Z., Narrator, JohnSmith21, smartbert, A.M., Matthew Z., Dror T., Jonathan K., Kyle C., Mario B., Albin H., Phillip S., Bernd, Tom, Nick O., greeting7416, Dick, Brian R., Markus, TheSlimShady, Andrew M., Mason B., Chance, Dragon, Oliver, HexitNiels, Michael G., Pablo A., Leo L., Daniel D., DSKun, Jonathan K., Erik K., Tiebolt v. d. L., Steven, Mathias, Sam B., Manuel F., K8BCO, Samuel D., duckduck, David, heydabop, Riccardo N., Tim. S., Jonas, Kenji I. Pascal M., Raymond W., Julien, Roman, Mario B., Thomas G., Gabriel, Ivan A., Aram B., Dan551, Andreas R. and TheFlooh on Patreon and KoFi 💙
What's Changed
Full Changelog: 1.20.1...1.21.0