Fixed
- Manual OIDC endpoints and signing keys can be configured without changing existing discovery setups (#3390).
- Place tag filters remain applied after returning to the map or reloading it (#3003, #2928).
- Nominatim and LocationIQ place and visit naming handle provider responses consistently (#3316, #3260).
- Self-hosted photo integrations accept container host-gateway addresses while Cloud restrictions stay in place (#3005).
- Hebrew and Arabic map labels render in the correct reading order (#3530).
- Self-hosters can configure SMTP certificate verification for a local mail relay (#2681).
- Live map updates respect a selected historical date range (#3098).
- Statistics include valid segments crossing midnight and older calculations are scheduled for repair (#2843).
- GPX imports work when the optional decimal elevation column is absent (#2721, #3046).
- Map auto-centering keeps route points clear of the toolbar (#3342).
- Simplified Chinese now covers the family, import, and integration flows added since 1.14.3.
- Per-tracker migrations retry deferred track recalculation instead of reporting premature success.
- User archive restoration enforces ZIP extraction limits against actual output size.
- Family invitation acceptance uses the current subscription period even when background synchronization is delayed.
- Legacy OwnTracks record imports preserve JSON values containing spaces.
- Restoring a user archive preserves structured geodata and raw point data.
- Polarsteps step-array exports with nested locations and numeric timestamps import their points correctly.
- Overlapping track-generation chunks preserve point ownership and include single-point journey endpoints.
- Historical Google Timeline activity hints are preserved when backfilling transportation modes.
- Cloud Lite users are only offered digest years available within their data window.
- Authentication and shared-link rate limits now apply consistently to requests with optional format suffixes.
- Upgrades rebuild invalid statistics indexes left by interrupted migrations and restore duplicate protection (#2700).
- Browser and API password sign-in now respect OIDC-only configuration (#2961).
- Renamed imports download using their current name and client-wrapped files retain their original format (#3455).
- Import download preparation is translated in every supported language.
- Google Phone Timeline imports preserve fractional altitude and accuracy values instead of turning them into out-of-range integers (#3370).
- Password-protected shared links now unlock on self-hosted HTTP servers (#3314).
- Reverse geocoding resolves countries sharing an ISO code correctly and repairs historical links (#3462).
- Video export falls back when a reported codec cannot encode frames (#3436).
- Location search results stay visible after selecting a result repeatedly (#3488).
- Existing users can link an OIDC account when automatic registration is disabled (#3474).
- Long country lists in Insights now scroll beside the calendar on desktop (#3412).
- Remember me now persists across two-factor sign-in (#3416).
- Family map now opens without an undefined theme error (#3415).
๐ 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., Christian C., Sebastian, Jan K., Nathan T., Max G., Lars N., 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., ArnyminerZ, Gustav B., higgs01, Frank F., F. J. Kruz, Jon D., Alexander J. H., Daniel D., Gonzalo M., 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, GoogilyBoogily, Dragon, Oliver, HexitNiels, Michael G., Pablo A., Leo L., Daniel D., DSKun, Jonathan K., Erik K., Tiebolt v. d. L., Steven, Mathias, Sam B., Martin C., Manuel F., K8BCO, Samuel D., duckduck, David, heydabop, Riccardo N., Tim. S., Jonas, Kenji I. Pascal M., Raymond W., Julien, Roman and Andreas R. on Patreon and KoFi ๐
What's Changed
- Preserve fractional metadata in phone Timeline imports by @Freika in #3526
- Update deleted imports through Turbo Streams by @Freika in #3527
- Fix family map initialization by @Freika in #3532
- Preserve remember me across two-factor sign-in by @Freika in #3533
- Keep long Insights country lists scrollable by @Freika in #3534
- Allow existing OIDC account linking with registration disabled by @Freika in #3535
- Preserve search results when selecting locations repeatedly by @Freika in #3536
- Fall back when reported video codecs fail encoding by @Freika in #3537
- Repair country code collisions without skipping historical links by @Freika in #3538
- Allow shared-link unlocking over self-hosted HTTP by @Freika in #3539
- Preserve renamed import downloads with background preparation by @Freika in #3540
- Enforce OIDC-only password policy for browser and API sign-in by @Freika in #3542
- Recover invalid stats indexes after interrupted upgrades by @Freika in #3543
- fix: apply rate limits across optional request formats by @Freika in #3547
- fix: limit digest generation to accessible years by @Freika in #3549
- fix: preserve Google activity hints during mode backfill by @Freika in #3548
- fix: preserve point ownership across overlapping track chunks by @Freika in #3550
- fix: import nested Polarsteps step locations and timestamps by @Freika in #3551
- fix: restore point JSONB values without double encoding by @Freika in #3552
- fix: preserve spaces in legacy OwnTracks record payloads by @Freika in #3553
- fix: synchronize family access before accepting invitations by @Freika in #3554
- fix: enforce archive extraction limits on actual output by @Freika in #3555
- fix: retry deferred per-tracker track migrations by @Freika in #3556
- Keep fitted routes clear of the map toolbar by @Freika in #3546
- fix: guard altitude_decimal in GPX track importer so import doesn't fail when column is absent by @mvanhorn in #2872
- Count overnight distance and repair historical statistics by @Freika in #2912
- Keep live points within the selected map date range by @Freika in #3217
- Configure SMTP certificate verification by @Freika in #2936
- Render Hebrew and Arabic map labels with a local RTL plugin by @Freika in #3558
- Allow self-hosted link-local photo integrations by @Freika in #3223
- Normalize Nominatim place and visit naming by @0LGuenth in #3430
- perf(places): scope place search with bounding box to prevent full planet scan by @nareddyt in #3528
- Preserve place tag filters across map navigation by @Freika in #3184
- Support explicit issuer and JWKS for manual OIDC configuration by @Freika in #3557
- fix(i18n): complete the Simplified Chinese locale by @AwHsR15 in #3545
- 1.14.4 by @Freika in #3541
Full Changelog: 1.14.3...1.14.4