What's Changed
Marker Limit Controls
- Configurable marker limit on the map (up to 100k) with a slider in the filter bar
- Dynamic step sizes based on total marker count
- Marker count displayed in the UI
External Library Management
- Automatically detected based on your Immich API key — if your key has admin access, a new "External Libraries" option appears in the user menu
- Toggle visibility of individual external libraries — hidden libraries are excluded from all views and queries for every user
- Sync button to refresh the library list from Immich
- Assets from hidden libraries are filtered from the map, photo grid, and suggestions globally
API Key Management
- New dialog to update your Immich API key directly from the UI (no restart needed)
- Sync pauses cleanly during key rotation and resumes automatically
- Library cache and access flags reset on key change
Full Resync & auto Resync on Server Update
- Backend exposes a sync version; the frontend detects version changes and triggers a resync automatically
- No more stale data after a backend update/restart
- New "Full Resync" option in the user menu to re-download all assets from Immich
- Cleans up stale/deleted assets that incremental sync missed
GPX Track Import
- Upload a GPX file to automatically geotag photos based on their timestamps
- The backend parses the GPX, detects the timezone from the track's geographic midpoint, and interpolates GPS positions between trackpoints
- Preview all matches before applying — the map shows matched photo positions overlaid on the track
- Already-geotagged photos at the matched coordinates are flagged so you can skip them
- Configurable max time gap between trackpoints (default 10 min)
- Option to include already-geotagged photos in the matching
Undo / Redo
- Full undo/redo for location assignments (Cmd/Ctrl+Z, Cmd/Ctrl+Shift+Z)
- Works across manual placements, GPX batch imports, and marker drag operations
Docker Compose
- Added a production docker-compose.yml with .env.example for simpler deployment alongside the existing docker run setup
New Contributors
- @frederikemmer made their first contribution in #8
Full Changelog: v0.0.4...v0.1.0