Run Settings → Recalculate tracks & stats to merge pre-existing overlapping tracks. #2463
Visit detection now creates one Place per visit (was up to 25 candidates). Use GET /api/v1/visits/:id/possible_places and POST /api/v1/visits/:id/select_place for alternatives. The place_visits table will be dropped in a follow-up release.
Download a trip's points as GPX or GeoJSON from the trip page. #2400
OIDC PKCE support via OIDC_PKCE_ENABLED=true (off by default). #2282
POST /api/v1/visits/:id/select_place — assign a Photon candidate to a visit.
Visits auto-clean their previous Place on reassignment/destroy when it has no notes, tags, or other references.
Changed
GET /api/v1/visits/:id/possible_places returns live Photon suggestions; the assigned place comes first with its id, others have id: null.
GET/POST /api/v1/places/nearby now include id, source, and geodata per item (additive).
Place#has_many :visits is now dependent: :nullify — deleting a Place no longer deletes its visits.
Fixed
select_place validates lat/lon bounds (422 on out-of-range) and serializes concurrent calls via PG advisory lock to prevent duplicate Places.
select_place dedups by name + 50 m proximity instead of geodata JSONB, working regardless of STORE_GEODATA.
Self-hosted instances no longer 500 on Stats/Insights when JWT_SECRET_KEY is unset; /trial/upgrade now redirects home. #2682
Imports table shows duplicate-skip counts and notifies when an import is all duplicates. #2721
Family members' positions update in real time instead of every 60 s. #2733
Immich/Photoprism photos reappear after a transient empty response (no more 30-minute hidden window). #1071, #784
Map v2 Select Area includes anomaly points so bulk-delete works on them. #2476
Map v2 area-selection: restored the "Delete N Points" action that disappeared in 1.7.8. Pro / self-hosted, confirmation prompt, capped at 5,000 per request; recalculates affected tracks and monthly stats. #2754
Timeline day click no longer corrupts the Search end-time; fields match date-picker minute precision. #2624
Map v2 speed-color gradient editor saves and applies correctly. #2120
Trips respect the GPS anomaly filter for route, distance, and countries. Run Recalculate trip to refresh existing trips. #2474
Bulk and single point deletion recalculate affected tracks. #2496
"Recalculate tracks & stats" and "Re-evaluate past data" skip anomaly points, matching real-time generation. #2630
Trip photos appear on sub-day trips (timestamps no longer truncated to dates). #2708
Tracks no longer split into overlapping segments when points arrive late/out of order; same-device overlaps auto-merge on the next run. #2463
Same-tracker boundary merging skips tracks more than 5 km apart (no more GPS-jump fusion).
Visit place cleanup runs in Places::DeleteIfOrphanJob instead of inline after_commit.
DataMigrations::BackfillPlacesUserIdJob correctly excludes just-assigned places from the orphan-delete pass.
Real-time track boundary detector skips the per-track scan when no untracked points exist.
Bulk visit suggestion accepts both user_id: and user_ids: to survive stale Sidekiq jobs. #2740
RemoveUnusedIndexes migration drops invalid points indexes left by failed REINDEX CONCURRENTLY before removing unused ones. #2124
Vendored h3-js retains its upstream Apache-2.0 license header.
Insights "Top Visited Locations" no longer underreports days for multi-month totals (e.g. 133 days rendered as "4 days"). #2743
Configuration
📅Schedule: (UTC)
Branch creation
At any time (no schedule defined)
Automerge
At any time (no schedule defined)
🚦Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕Ignore: Close this PR and you won't be reminded about this update again.
If you want to rebase/retry this PR, check this box
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [freikin/dawarich](https://github.com/Freika/dawarich) | patch | `1.7.8` → `1.7.9` |
---
### Release Notes
<details>
<summary>Freika/dawarich (freikin/dawarich)</summary>
### [`v1.7.9`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#179---Unreleased)
[Compare Source](https://github.com/Freika/dawarich/compare/1.7.8...1.7.9)
##### ⚠️ Upgrade notes
- Run **Settings → Recalculate tracks & stats** to merge pre-existing overlapping tracks. [#​2463](https://github.com/Freika/dawarich/issues/2463)
- Visit detection now creates one Place per visit (was up to 25 candidates). Use `GET /api/v1/visits/:id/possible_places` and `POST /api/v1/visits/:id/select_place` for alternatives. The `place_visits` table will be dropped in a follow-up release.
- Run after deploy (both safe to re-run):
1. `bin/rails dawarich:backfill_place_names`
2. `bin/rails dawarich:cleanup_suggested_places`
##### Added
- Map v2 **Hexagons** layer (Pro) — H3 cell heatmap, zoom-adaptive resolution. [#​2568](https://github.com/Freika/dawarich/issues/2568)
- Download a trip's points as GPX or GeoJSON from the trip page. [#​2400](https://github.com/Freika/dawarich/issues/2400)
- OIDC PKCE support via `OIDC_PKCE_ENABLED=true` (off by default). [#​2282](https://github.com/Freika/dawarich/issues/2282)
- `POST /api/v1/visits/:id/select_place` — assign a Photon candidate to a visit.
- Visits auto-clean their previous Place on reassignment/destroy when it has no notes, tags, or other references.
##### Changed
- `GET /api/v1/visits/:id/possible_places` returns live Photon suggestions; the assigned place comes first with its `id`, others have `id: null`.
- `GET/POST /api/v1/places/nearby` now include `id`, `source`, and `geodata` per item (additive).
- `Place#has_many :visits` is now `dependent: :nullify` — deleting a Place no longer deletes its visits.
##### Fixed
- `select_place` validates lat/lon bounds (422 on out-of-range) and serializes concurrent calls via PG advisory lock to prevent duplicate Places.
- `select_place` dedups by name + 50 m proximity instead of `geodata` JSONB, working regardless of `STORE_GEODATA`.
- Self-hosted instances no longer 500 on Stats/Insights when `JWT_SECRET_KEY` is unset; `/trial/upgrade` now redirects home. [#​2682](https://github.com/Freika/dawarich/issues/2682)
- Imports table shows duplicate-skip counts and notifies when an import is all duplicates. [#​2721](https://github.com/Freika/dawarich/issues/2721)
- Family members' positions update in real time instead of every 60 s. [#​2733](https://github.com/Freika/dawarich/issues/2733)
- Immich/Photoprism photos reappear after a transient empty response (no more 30-minute hidden window). [#​1071](https://github.com/Freika/dawarich/issues/1071), [#​784](https://github.com/Freika/dawarich/issues/784)
- Map v2 **Select Area** includes anomaly points so bulk-delete works on them. [#​2476](https://github.com/Freika/dawarich/issues/2476)
- Map v2 area-selection: restored the "Delete N Points" action that disappeared in 1.7.8. Pro / self-hosted, confirmation prompt, capped at 5,000 per request; recalculates affected tracks and monthly stats. [#​2754](https://github.com/Freika/dawarich/issues/2754)
- Timeline day click no longer corrupts the Search end-time; fields match date-picker minute precision. [#​2624](https://github.com/Freika/dawarich/issues/2624)
- Map v2 speed-color gradient editor saves and applies correctly. [#​2120](https://github.com/Freika/dawarich/issues/2120)
- Trips respect the GPS anomaly filter for route, distance, and countries. Run **Recalculate trip** to refresh existing trips. [#​2474](https://github.com/Freika/dawarich/issues/2474)
- Bulk and single point deletion recalculate affected tracks. [#​2496](https://github.com/Freika/dawarich/issues/2496)
- "Recalculate tracks & stats" and "Re-evaluate past data" skip anomaly points, matching real-time generation. [#​2630](https://github.com/Freika/dawarich/issues/2630)
- Trip photos appear on sub-day trips (timestamps no longer truncated to dates). [#​2708](https://github.com/Freika/dawarich/issues/2708)
- Tracks no longer split into overlapping segments when points arrive late/out of order; same-device overlaps auto-merge on the next run. [#​2463](https://github.com/Freika/dawarich/issues/2463)
- Same-tracker boundary merging skips tracks more than 5 km apart (no more GPS-jump fusion).
- Visit place cleanup runs in `Places::DeleteIfOrphanJob` instead of inline `after_commit`.
- `DataMigrations::BackfillPlacesUserIdJob` correctly excludes just-assigned places from the orphan-delete pass.
- Real-time track boundary detector skips the per-track scan when no untracked points exist.
- Bulk visit suggestion accepts both `user_id:` and `user_ids:` to survive stale Sidekiq jobs. [#​2740](https://github.com/Freika/dawarich/issues/2740)
- `RemoveUnusedIndexes` migration drops invalid `points` indexes left by failed `REINDEX CONCURRENTLY` before removing unused ones. [#​2124](https://github.com/Freika/dawarich/issues/2124)
- Vendored `h3-js` retains its upstream Apache-2.0 license header.
- Insights "Top Visited Locations" no longer underreports days for multi-month totals (e.g. 133 days rendered as "4 days"). [#​2743](https://github.com/Freika/dawarich/issues/2743)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjE5MC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
1.7.8→1.7.9Release Notes
Freika/dawarich (freikin/dawarich)
v1.7.9Compare Source
⚠️ Upgrade notes
GET /api/v1/visits/:id/possible_placesandPOST /api/v1/visits/:id/select_placefor alternatives. Theplace_visitstable will be dropped in a follow-up release.bin/rails dawarich:backfill_place_namesbin/rails dawarich:cleanup_suggested_placesAdded
OIDC_PKCE_ENABLED=true(off by default). #2282POST /api/v1/visits/:id/select_place— assign a Photon candidate to a visit.Changed
GET /api/v1/visits/:id/possible_placesreturns live Photon suggestions; the assigned place comes first with itsid, others haveid: null.GET/POST /api/v1/places/nearbynow includeid,source, andgeodataper item (additive).Place#has_many :visitsis nowdependent: :nullify— deleting a Place no longer deletes its visits.Fixed
select_placevalidates lat/lon bounds (422 on out-of-range) and serializes concurrent calls via PG advisory lock to prevent duplicate Places.select_placededups by name + 50 m proximity instead ofgeodataJSONB, working regardless ofSTORE_GEODATA.JWT_SECRET_KEYis unset;/trial/upgradenow redirects home. #2682Places::DeleteIfOrphanJobinstead of inlineafter_commit.DataMigrations::BackfillPlacesUserIdJobcorrectly excludes just-assigned places from the orphan-delete pass.user_id:anduser_ids:to survive stale Sidekiq jobs. #2740RemoveUnusedIndexesmigration drops invalidpointsindexes left by failedREINDEX CONCURRENTLYbefore removing unused ones. #2124h3-jsretains its upstream Apache-2.0 license header.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.