You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,32 +8,32 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
8
8
9
9
### Added
10
10
11
-
- The onboarding dialog now leads with **Start tracking**rather than importing existing data, so a new account can get a phone sending points before doing anything else. Importing from Google Timeline and the other sources is still one click away in the same dialog.
12
-
-Imports of Google Takeout (phone takeout, Semantic Location History) and Polarsteps now optionally extract **visits**, **named places**, **tracks**, and the source app's **transportation-mode classification** (driving, walking, cycling, transit, …) in addition to raw GPS points. Frequent places named by Google Takeout (Home, Work, etc.) are imported as Place records with their original names. Open an import in the Imports list and click **Extract additional data**to add this to existing imports; new imports run extraction automatically. Untick **Trust the source app's classification**in the Extract dialog to have Dawarich re-detect transportation modes using your settings. Existing visits detected by Dawarich's smart detection are kept side-by-side with the imported ones. Changed your mind? **Remove extracted data**on the same import deletes everything the extraction added and leaves your imported GPS points untouched.
11
+
- The onboarding dialog now leads with **Start tracking**instead of importing, so a new account can get a phone sending points right away. Importing from Google Timeline and the other sources is still one click away in the same dialog.
12
+
- Google Takeout (phone takeout, Semantic Location History) and Polarsteps imports can now also extract **visits**, **named places**, **tracks** and the source app's **transportation-mode classification**, alongside raw GPS points. Places named by Google Takeout (Home, Work, …) keep their original names. New imports extract automatically; for older ones use **Extract additional data**in the Imports list. Untick **Trust the source app's classification** to have Dawarich re-detect modes using your settings. Visits found by Dawarich's own detection are kept alongside the imported ones. **Remove extracted data**undoes an extraction and leaves your GPS points untouched.
13
13
14
14
### Changed
15
15
16
-
- Ordering a printed poster from the Poster Studio is now available to everyone, instead of sitting behind a feature flag that was off by default. An instance that would rather not offer it can switch the `poster_ordering` flag off at `/admin/flipper`, or leave `PRINT_ORDER_URL` blank. Note that the upgrade turns the flag on once, including on an instance that had already switched it off — switch it off again afterwards and it stays off.
17
-
- GPS noise filtering no longer uses the "Accuracy Threshold" setting, and the slider has been removed. A reported accuracy radius is a confidence estimate, not proof a position is wrong: Google Timeline routinely reports 1-4km for points sitting exactly on the road, and dropping those replaced real route geometry with straight lines. Only radii too large to be a position at all are now discarded; wrong positions are caught by the speed checks instead. Any value you had saved for it now does nothing, and `gps_accuracy_threshold` is no longer accepted by the settings API — a script still sending it gets no error, the key is simply ignored.
18
-
- Points within 5km of (0, 0) are treated as broken coordinates everywhere — import, cleanup and noise filtering previously disagreed, with only some paths catching near-zero values.
19
-
-Points already in the database are re-checked against the new noise rules after the upgrade, and tracks, stats and digests are rebuilt from the result — otherwise the old rules would keep deciding what your existing history looks like. Points hidden by the former accuracy rule come back, and displaced fixes the new checks catch are dropped. The work is spread out over the instance instead of starting for everyone at once, and every per-account pass — including the track rebuild it triggers — runs on the lowest-priority queue, so live tracking and imports keep going ahead of it; accounts that turned GPS filtering off are left alone. You get a notification when your own re-check is done, and self-hosted instances can also see whether an account is still waiting on Background jobs settings.
16
+
- Ordering a printed poster from the Poster Studio is now available to everyone instead of sitting behind a feature flag. To opt out, switch the `poster_ordering` flag off at `/admin/flipper` or leave `PRINT_ORDER_URL` blank. Note that the upgrade turns the flag on once, even on an instance that had already switched it off — switch it off again afterwards and it stays off.
17
+
- GPS noise filtering no longer uses the "Accuracy Threshold" setting, and the slider is gone. A reported accuracy radius is a confidence estimate, not proof a position is wrong: Google Timeline routinely reports 1-4km for points sitting exactly on the road, and dropping those replaced real route geometry with straight lines. Only radii too large to be a position at all are discarded; wrong positions are caught by the speed checks instead. Any saved value now does nothing, and `gps_accuracy_threshold` is ignored by the settings API rather than rejected.
18
+
- Points within 5km of (0, 0) are treated as broken coordinates everywhere — import, cleanup and noise filtering previously disagreed on what counted as near-zero.
19
+
-Existing points are re-checked against the new noise rules after the upgrade, and tracks, stats and digests are rebuilt from the result. Points hidden by the former accuracy rule come back, and displaced fixes the new checks catch are dropped. The work is spread across accounts, and every per-account pass — including the track rebuild it triggers — runs on the lowest-priority queue, so live tracking and imports keep going ahead of it; accounts with GPS filtering off are skipped. You get a notification when your own re-check is done, and self-hosted instances can also check progress under Background jobs settings.
20
20
21
21
### Fixed
22
22
23
-
- The Family plan now works on Dawarich Cloud. Family pages, invitations, members and location sharing were available only on self-hosted instances, so subscribers who paid for the Family plan hit errors on every family route. Access now follows the subscription instead of the hosting mode: Family plan holders can create a family, and everyone they invite gets full family access without needing a subscription of their own. Users without the plan are shown the upgrade page instead of an error. If the plan owner stops paying, members fall back to their own plans once the owner's paid period ends — the family itself is kept, so resubscribing restores it; members can still leave it, the owner can still dissolve it, and pending invitations to it can no longer be accepted. Self-hosted instances are unchanged — the feature stays open to everyone.
24
-
- Family members no longer keep Pro access after the family owner's subscription lapses. Access was inherited from the owner's plan alone, so an expired trial or a cancelled Family subscription left every member on full access indefinitely; members now revert to their own plan once the owner's paid period ends. Cancelling still leaves members with access until the period they paid for is over.
25
-
- Self-hosted mode is now recognised from common `SELF_HOSTED` values (quoted `"true"`, `TRUE`, whitespace-padded, `1`, `yes`, `on`), not only the exact string `true`, so a non-canonical value no longer silently flips a self-hosted instance into cloud mode and blocks LAN integration URLs (such as Immich) as SSRF. (#2522)
26
-
- Outgoing email no longer fails against slower SMTP servers: the default connection open/read timeouts now match net-smtp's own 30s and 60s instead of a 5-second cap that made digest reports and other emails fail with `Net::OpenTimeout`. Tune with `SMTP_OPEN_TIMEOUT`/`SMTP_READ_TIMEOUT` if needed (#3096)
23
+
- The Family plan now works on Dawarich Cloud. Family pages, invitations, members and location sharing were self-hosted only, so subscribers hit errors on every family route. Access now follows the subscription: plan holders can create a family, and everyone they invite gets full family access without a subscription of their own. Users without the plan see the upgrade page instead of an error. If the owner stops paying, members fall back to their own plans once the paid period ends — the family itself is kept, so resubscribing restores it, and pending invitations can no longer be accepted. Self-hosted instances are unchanged.
24
+
- Family members no longer keep Pro access indefinitely after the owner's subscription lapses; they revert to their own plan once the owner's paid period ends. Cancelling still leaves members with access until that period is over.
25
+
- Self-hosted mode is now recognised from common `SELF_HOSTED` values (quoted `"true"`, `TRUE`, whitespace-padded, `1`, `yes`, `on`), not only the exact string `true`, so a non-canonical value no longer flips an instance into cloud mode and blocks LAN integration URLs (such as Immich) as SSRF. (#2522)
26
+
- Outgoing email no longer fails against slower SMTP servers: connection open/read timeouts now match net-smtp's own 30s and 60s instead of a 5-second cap that failed digest reports with `Net::OpenTimeout`. Tune with `SMTP_OPEN_TIMEOUT`/`SMTP_READ_TIMEOUT` (#3096)
27
27
- FIT files that carry developer data fields (such as those from Wahoo devices) now import their location records instead of failing to parse. (#2945)
28
-
- Google Timeline imports now keep path points in order when several share the same minute-resolution timestamp: tied points on a path are spaced one second apart so their sequence survives, while genuine repeats at the same coordinate still collapse into a single point. Caveat: re-importing the same Timeline file before deleting its existing date range can leave partial duplicates, because the synthetic spacing shifts the deduplication key — delete the affected date range first when re-importing. (#3115)
28
+
- Google Timeline imports now keep path points in order when several share the same minute-resolution timestamp: tied points are spaced one second apart, while genuine repeats at the same coordinate still collapse into one. Caveat: the synthetic spacing shifts the deduplication key, so delete the affected date range before re-importing the same file. (#3115)
29
29
- Visit detection no longer turns long slow walks into one large suggested visit centered somewhere the user never stopped (#2970).
30
-
- Photon place names no longer show generic "Yes" categories in visits (https://github.com/Freika/dawarich/issues/3050)
31
-
- Imports that finish with zero saved points now notify you instead of completing silently. GPX and KML files are called out when they lack per-point timestamps; other sources get a source-neutral message. (#3062)
30
+
- Photon place names no longer show generic "Yes" categories in visits (#3050)
31
+
- Imports that finish with zero saved points now notify you instead of completing silently. GPX and KML files are called out when they lack per-point timestamps. (#3062)
32
32
- Traccar KML exports now import LineString points using the time range in each track name instead of completing with zero points (#3120)
33
-
- "Cancel my account" now works on self-hosted instances. It never sent a password, so the request failed silently with a 401 and no feedback; deletion now asks for confirmation in a dialog and reports failures instead. Accounts registered through OIDC, which never had a password to enter, can confirm with their email address, both on the web and via the API. (#3107)
34
-
- Tracks no longer connect two different devices. Google's Records.json contains every device on the account, and imports made before 1.10.0 stamped them all as one device, so a phone left at home was stitched to the one that travelled — drawing long straight lines between them. Existing imports are repaired automatically by re-reading the uploaded file.
33
+
- "Cancel my account" now works on self-hosted instances. It never sent a password, so the request failed silently with a 401; deletion now asks for confirmation in a dialog and reports failures. Accounts registered through OIDC, which never had a password, can confirm with their email address, on the web and via the API. (#3107)
34
+
- Tracks no longer connect two different devices. Google's Records.json contains every device on the account, and imports made before 1.10.0 stamped them all as one, so a phone left at home was stitched to the one that travelled. Existing imports are repaired automatically by re-reading the uploaded file.
35
35
- Restoring a data archive now recomputes GPS noise flags. The archive carries none, so restored points previously arrived unfiltered and tracks were rebuilt from noise the instance had already learned to ignore.
36
-
- The Map v2 custom basemap field now accepts MapLibre style URLs whose path has no `.json` suffix, such as `https://tiles.openfreemap.org/styles/liberty`. A tile URL that is missing one of the `{z}`/`{x}`/`{y}`placeholders, or that ends in a tile file extension, is still rejected as a malformed template. (#3256)
36
+
- The Map v2 custom basemap field now accepts MapLibre style URLs whose path has no `.json` suffix, such as `https://tiles.openfreemap.org/styles/liberty`. A tile URL missing a `{z}`/`{x}`/`{y}`placeholder, or ending in a tile file extension, is still rejected. (#3256)
0 commit comments