Releases: Freika/dawarich
1.3.2-rc.2
Full Changelog: 1.3.2-rc.1...1.3.2-rc.2
1.3.2-rc.1
What's Changed
- 1: Add lite plan by @Freika in #2325
- 2: Feature/lite api gating by @Freika in #2326
- 3: feat: gate map layers for Lite plan with timed preview by @Freika in #2327
- 4: feat: add data retention archival filter and archived data rendering by @Freika in #2328
- 5: feat: add Lite archival warning jobs by @Freika in #2329
- Lite plan for Cloud by @Freika in #2330
Full Changelog: 1.3.1...1.3.2-rc.1
1.3.1
Changed
- User deletion now being done in the background to prevent request timeouts for users with large amount of data.
Fixed
- Point speed in Map V2 is now correctly calculated from m/s to km/h or mph based on user preference. #2308
- Family members are now being loaded correctly on Map V2 when family layer is enabled. #2250
- Photos popups on Map V2 now show the photo timestamp in user's timezone. #2310
- Fix the issue preventing the fresh app from starting. #2304
💙 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., Matthias B., Milien M., Mathias, Travis S., Michael J., Matthew F., Johnathan D., bleibdirtroy, no1etal, dixet, Bailey J., Alex D., Benjamin M., Daniel A., Florian, BeeHappy, ChemistryDachshund, OrangeWindies, Roman G., Michelangelo V., Edward, Erazem Z., Denis Abt, Tony G., Andrew D., Lomky, Osamu Y., Simon van B., 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., Jon Coffee, Andre, Hendl91, Jon H., MrRed, Carsten M. and ArnyminerZ on Patreon and KoFi 💙
What's Changed
- Use exec in docker entrypoints to ensure bundler receives stop signals by @Almighty-Alpaca in #934
- fix(docker): app and sidekiq containers ignore signals by @ZeroKnight in #2010
- Bump omniauth-rails_csrf_protection from 1.0.2 to 2.0.1 by @dependabot[bot] in #2126
- Bump bootsnap from 1.18.6 to 1.20.1 by @dependabot[bot] in #2127
- Bump dotenv-rails from 3.1.8 to 3.2.0 by @dependabot[bot] in #2128
- Bump bundler-audit from 0.9.2 to 0.9.3 by @dependabot[bot] in #2130
- Bump @hotwired/turbo from 7.3.0 to 8.0.21 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #2180
- Move user deletions to background job by @Freika in #2140
- Fix family members not loading on Map V2 when family layer enabled by @Freika in #2312
- 1.3.1 by @Freika in #2311
New Contributors
- @Almighty-Alpaca made their first contribution in #934
- @ZeroKnight made their first contribution in #2010
Full Changelog: 1.3.0...1.3.1
1.3.0
The Storage & Timeline Interaction Release
This release adds a dedicated motion_data column for transportation-relevant fields alongside the existing raw_data. Users can now set their timezone for accurate date/time display across the app. The Timeline feed in Map v2 gains richer map interaction: hovering a journey highlights its track with an animated border, clicking zooms to fit and selects it, and expanding a day shows visit markers even when the Visits layer is off. User data export/import is enhanced with a new v2 format using JSONL files and monthly splitting for large datasets, while remaining backward-compatible with the old format.
Added
- Per-user timezone setting. Users can now select their timezone from Settings > General, and all dates/times across the app (including background jobs and API responses) will respect it. Defaults to the server's
TIME_ZONEenvironment variable for existing users. motion_dataJSONB column on thepointstable for storing transportation-relevant fields separately fromraw_data.- Background job (
DataMigrations::BackfillMotionDataJob) to backfillmotion_datafromraw_datafor existing points. - New Timeline feed in Map v2 Tools panel for browsing daily location history. Distances and speeds respect the user's distance unit preference (km/mi).
- Clicking a track point (when "Show Points" is enabled) now displays point info (timestamp, battery, altitude, speed) in the track info panel instead of triggering a position update. Dragging a point still updates its position and triggers track recalculation.
- Timeline-map interaction: hovering a journey entry in the Timeline feed now highlights the matching track on the map with the animated border and flow effect. Clicking a journey entry zooms the map to fit the track and keeps it selected. Expanding a day in the Timeline now temporarily shows visit markers for that day, even if the Visits layer is disabled.
- AES-256-GCM encryption for raw data archives (format version 2). Set
ARCHIVE_ENCRYPTION_KEYto use a custom key; otherwise derives fromSECRET_KEY_BASE. Existing unencrypted archives (format version 1) are read transparently. - v2 export/import format with JSONL files and monthly splitting for large entities (points, visits, stats, tracks, digests). The new format streams data to avoid memory issues with large datasets, while remaining backward-compatible with v1 archives (
data.json). - User data export now includes Tags, Taggings, Tracks (with embedded TrackSegments), Digests, and Raw Data Archives — previously missing from export/import, meaning users who exported and re-imported would lose these entities.
- Tracks are exported with their
original_pathserialized as WKT andtrack_segmentsembedded as a nested array, preserving transportation mode detection data across export/import cycles. - Digests get a fresh
sharing_uuidon import for security — old share links from the original user won't work for the importing user. - Raw Data Archives are exported with their attached gzip files, enabling full data restoration.
- Failed imports now will have an error message shown to the user.
- Pagination now looks nicer and more informative, indicating current page. #2279
- Imports and exports now can be sorted by name, file size, number of points, and creation date. #2279
- Lots of missing Swagger specs for the API endpoints have been added, improving API documentation and enabling better client generation. swagger.yaml is updated.
Changed
- Transportation-relevant fields (motion, activity, action) are now stored in a dedicated
motion_datacolumn alongsideraw_data, enabling efficient transportation mode detection. - All import sources now write both
raw_data(full original payload) andmotion_data(transportation-relevant fields). - The
STORE_GEODATAsetting now correctly controls whether geodata is written during reverse geocoding. - Dropped unused
idx_points_user_citydatabase index (304 MB) and replaced the fullreverse_geocoded_atindex (1,149 MB) with a smaller partial index covering only un-geocoded rows. - Selecting a track on Map v2 now always dims other tracks, regardless of whether the track has transportation mode segments.
- Default map layers for new users changed from Routes + Heatmap to Tracks + Heatmap. Existing users' settings are unaffected.
- Renamed the bottom-panel "Timeline" feature to "Replay" to avoid naming collision with the new Timeline feed sidebar.
- Default value for
RAILS_ENVindocker-compose.ymlis nowproductioninstead ofdevelopment
Fixed
- Stats queries (daily distance, time of day) now correctly handle timezone conversion without double-converting from UTC.
- Timezone validation in stats queries now properly resolves Rails timezone names to IANA identifiers.
- Clicking on [Map] on Stats page now correctly respects the user's preferred map version (v1 or v2) instead of always linking to Map v1. #2281
💙 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., Matthias B., Milien M., Mathias, Travis S., Michael J., Matthew F., Johnathan D., bleibdirtroy, no1etal, dixet, Bailey J., Alex D., Benjamin M., Daniel A., Florian, BeeHappy, ChemistryDachshund, OrangeWindies, Roman G., Michelangelo V., Edward, Erazem Z., Denis Abt, Tony G., Andrew D., Lomky, Osamu Y., Simon van B., 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., Jon Coffee, Andre, Hendl91, Jon H., MrRed and ArnyminerZ on Patreon and KoFi 💙
What's Changed
- Introduce timezone setting for users by @Freika in #2261
- Update archiving logic to separate motion data from raw_data and redu… by @Freika in #2263
- Feature/timeline by @Freika in #2268
- Rework user data import-export and replace some js with turbo/stimulus by @Freika in #2289
- 1.3.0 by @Freika in #2264
- feat: add country flag SVG icons (landscape and square variants) by @Freika in #2269
- Fix rubocop and biome linting issues by @Freika in #2298
- 1.3.0: green linters by @Freika in #2299
- 1.3.0: Add permissions to github workflows by @Freika in #2300
- Update swagger tests by @Freika in #2302
- 1.3.0: swagger docs & pagination by @Freika in #2303
Full Changelog: 1.2.0...1.3.0
1.3.0-rc.4
The Storage & Timeline Interaction Release
This release adds a dedicated motion_data column for transportation-relevant fields alongside the existing raw_data. Users can now set their timezone for accurate date/time display across the app. The Timeline feed in Map v2 gains richer map interaction: hovering a journey highlights its track with an animated border, clicking zooms to fit and selects it, and expanding a day shows visit markers even when the Visits layer is off. User data export/import is enhanced with a new v2 format using JSONL files and monthly splitting for large datasets, while remaining backward-compatible with the old format.
Added
- Per-user timezone setting. Users can now select their timezone from Settings > General, and all dates/times across the app (including background jobs and API responses) will respect it. Defaults to the server's
TIME_ZONEenvironment variable for existing users. motion_dataJSONB column on thepointstable for storing transportation-relevant fields separately fromraw_data.- Background job (
DataMigrations::BackfillMotionDataJob) to backfillmotion_datafromraw_datafor existing points. - New Timeline feed in Map v2 Tools panel for browsing daily location history. Distances and speeds respect the user's distance unit preference (km/mi).
- Clicking a track point (when "Show Points" is enabled) now displays point info (timestamp, battery, altitude, speed) in the track info panel instead of triggering a position update. Dragging a point still updates its position and triggers track recalculation.
- Timeline-map interaction: hovering a journey entry in the Timeline feed now highlights the matching track on the map with the animated border and flow effect. Clicking a journey entry zooms the map to fit the track and keeps it selected. Expanding a day in the Timeline now temporarily shows visit markers for that day, even if the Visits layer is disabled.
- AES-256-GCM encryption for raw data archives (format version 2). Set
ARCHIVE_ENCRYPTION_KEYto use a custom key; otherwise derives fromSECRET_KEY_BASE. Existing unencrypted archives (format version 1) are read transparently. - v2 export/import format with JSONL files and monthly splitting for large entities (points, visits, stats, tracks, digests). The new format streams data to avoid memory issues with large datasets, while remaining backward-compatible with v1 archives (
data.json). - User data export now includes Tags, Taggings, Tracks (with embedded TrackSegments), Digests, and Raw Data Archives — previously missing from export/import, meaning users who exported and re-imported would lose these entities.
- Tracks are exported with their
original_pathserialized as WKT andtrack_segmentsembedded as a nested array, preserving transportation mode detection data across export/import cycles. - Digests get a fresh
sharing_uuidon import for security — old share links from the original user won't work for the importing user. - Raw Data Archives are exported with their attached gzip files, enabling full data restoration.
- Failed imports now will have an error message shown to the user.
Changed
- Transportation-relevant fields (motion, activity, action) are now stored in a dedicated
motion_datacolumn alongsideraw_data, enabling efficient transportation mode detection. - All import sources now write both
raw_data(full original payload) andmotion_data(transportation-relevant fields). - The
STORE_GEODATAsetting now correctly controls whether geodata is written during reverse geocoding. - Dropped unused
idx_points_user_citydatabase index (304 MB) and replaced the fullreverse_geocoded_atindex (1,149 MB) with a smaller partial index covering only un-geocoded rows. - Selecting a track on Map v2 now always dims other tracks, regardless of whether the track has transportation mode segments.
- Default map layers for new users changed from Routes + Heatmap to Tracks + Heatmap. Existing users' settings are unaffected.
- Renamed the bottom-panel "Timeline" feature to "Replay" to avoid naming collision with the new Timeline feed sidebar.
- Default value for
RAILS_ENVindocker-compose.ymlis nowproductioninstead ofdevelopment
Fixed
- Stats queries (daily distance, time of day) now correctly handle timezone conversion without double-converting from UTC.
- Timezone validation in stats queries now properly resolves Rails timezone names to IANA identifiers.
- Clicking on [Map] on Stats page now correctly respects the user's preferred map version (v1 or v2) instead of always linking to Map v1. #2281
Full Changelog: 1.3.0-rc.3...1.3.0-rc.4
1.3.0-rc.3
1.3.0-rc.2
What's Changed
Full Changelog: 1.3.0-rc.1...1.3.0-rc.2
1.3.0-rc.1
What's Changed
Full Changelog: 1.2.0...1.3.0-rc.1
1.2.0
Changed
- Overall app performance in browser was improved
- Docker images are now being built in parallel for both amd64 and arm64 architectures to speed up the build process. Thank you @rtuszik!
Added
- Map v2 requires WebGL support, so if user's browser doesn't support it or it's disabled, they will see a warning message with a link to the list of supported browsers.
- New Insights API (
GET /api/v1/insights) returning year overview with totals, activity heatmap, and streak data for the mobile app. - New Insights Details API (
GET /api/v1/insights/details) returning year-over-year comparison and travel patterns for the mobile app. - New Digests API (
GET/POST/DELETE /api/v1/digests) allowing the mobile app to list, view, generate, and delete yearly digests. Digest generation runs asynchronously via Sidekiq and returns202 Accepted. Digest detail supports conditional GET (Last-Modified/304 Not Modified).
Fixed
- Scratch map layer is now working again on Map v2.
- Colored routes on Map v2 are now working correctly. Zoom in closer to see colored segments. #2254
- Live mode on Map v2 is now working again.
💙 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, gesus, Jonah B., Dante, daallex, Tanner A., Matthias B., Milien M., Mathias, Travis S., Michael J., Matthew F., Johnathan D., bleibdirtroy, no1etal, dixet, Bailey J., Alex D., Benjamin M., Daniel A., Florian, BeeHappy, ChemistryDachshund, OrangeWindies, Roman G., Michelangelo V., Edward, Erazem Z., Denis Abt, Tony G., Andrew D., Lomky, Osamu Y., Simon van B., 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., Jon Coffee, Andre, and ArnyminerZ on Patreon and KoFi 💙
New Contributors
Full Changelog: 1.1.0...1.2.0
1.1.1-rc.2
Full Changelog: 1.1.1-rc.1...1.1.1-rc.2