github Freika/dawarich 1.7.0

10 hours ago

The Timeline Release

The Timeline Feature in Map V2 is now a feature capable to fully replace Google Timeline's user experience and overshine it. Please enjoy responsibly.

изображение

Added

  • Monthly digest emails. On the 2nd of each month users receive an email summarizing the previous month with an ASCII-rendered overview (distance, active days, countries, cities), a weekly pattern bar chart, a daily distance sparkline, top countries and cities by time spent, first-time visits, and a month-over-month trend comparison. Enabled by default; opt out at Settings → Email Preferences.
  • Visible, selectable family invitation URL under each pending invite on the family page, so self-hosted instances without SMTP can still share the link #2438.
  • User-configurable GPS noise filtering in Map v2 → Settings. The accuracy threshold (previously a hardcoded 100 m) is now adjustable from 50–1000 m, and the filter can be disabled entirely, so trips on trains or other weak-signal data sources no longer get their legitimate points stripped out. A "Re-evaluate past data" button clears existing anomaly flags, re-runs the filter with the new settings, and rebuilds tracks/stats/digests; a separate "Recalculate tracks & stats" button rebuilds derived data without touching anomalies. Fixes #2480.

Changed

  • S3 storage can now be used in self-hosted mode. It's compatible with S3-like backends, such as MinIO, Ceph, or Cloudflare R2. To enable S3 storage, set STORAGE_BACKEND=s3 and provide AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, and AWS_BUCKET. For S3-compatible backends, additionally set AWS_ENDPOINT_URL (or AWS_ENDPOINT).
  • The Timeline tab in Map v2 Tools panel is now a first-class feature.
  • The single digest email toggle in Settings has been split into independent Monthly Digest and Year-End Digest controls. A data migration preserves explicit opt-outs: users who had previously disabled digest emails stay opted out of both; users with no preference default to both on.
  • The Year-End Digest email has been rewritten with ASCII-rendered charts (activity heatmap, monthly distance bars, top countries, year-over-year trend). Content renders identically in HTML and plain-text email clients without JavaScript or external images, fixing rendering issues in Gmail and Outlook.
  • Points exports (GeoJSON and GPX) are now stored on S3 as single-entry zip archives. Downloads are delivered as <name>.zip.
  • Import uploads are compressed client-side before upload. Users who previously uploaded uncompressed files see no behavior change; S3 storage for new uploads drops substantially for text formats.
  • Trial users' 10 MB import-file size limit applies to the uploaded file before any client-side compression, so the user-facing limit is unchanged.

Fixed

  • Fix yearly digest emails not being sent automatically. The scheduling job existed in the codebase but was never wired into config/schedule.yml, so no year-end emails went out. Yearly digests now fire on January 2nd at 06:00 UTC.
  • Fix a latent race in the yearly digest pipeline where the email job was scheduled with a 30-minute delay after the calculation job; if the calculation took longer than 30 minutes (e.g., Sidekiq backpressure, transient retries), the email was silently dropped. Emails are now chained from the calculation job's success path.
  • Fix visit name being overwritten by the location name when updating a visit via the map popup. The custom name typed into the "Visit Name" field is now preserved; the place name is only used as a default when the user leaves the name blank #1915.
  • Fix stray "Map layer preferences saved" flash (and spurious settings requests) when deleting a point on Map v1. Layer-preference saves are now suppressed while the delete flow internally rebuilds the routes layer and layer control #1902.
  • Fix the Map v2 replay slider showing times in the browser's local timezone instead of the timezone configured in Settings. Day buckets and the minute-of-day index are now computed in the user's timezone so the replay scrubber matches the rest of the app #2457.
  • Fix "View on map" to use the preferred map. #2475
  • Fix a bug allowing inactive users to create points via the API.
  • Fix country name canonicalization on the Stats page producing wrong results (e.g., France showing as "Scarborough Reef") when the countries table has multiple rows sharing the same ISO code #2434.
  • Fix Stats dashboard charts stuck on "Loading..." for some years due to duplicate Chartkick element IDs when rendered inside cached year partials #2453.
  • Fix map date-navigation prev/next buttons always shifting by one day; they now shift by the currently selected interval #1736.
  • Fix individual points occasionally rendering on top of dense point lines on Map v2 by adding a deterministic timestamp-based sort key #2388.

What's Changed

New Contributors

Full Changelog: 1.6.1...1.7.0

Don't miss a new dawarich release

NewReleases is sending notifications on new releases.