Commit Graph
11051 Commits
Author SHA1 Message Date
Santo ShakilandGitHub 3e2e8e0fe8 fix(mobile): retry the background backup when connectivity is restored (#30909)
* fix(mobile): retry the background backup when connectivity is restored

* return the backup result from the zone and drop the unrelated upload test

* flip the background worker bool to needsRetry

* decide the background retry from the upload callbacks

* run the background worker offline again and retry on reconnect with a separate connected gated request

* retry the background backup when any upload fails and keep one worker at a time

* always hand the retry to the connected worker and release the worker lock if startWork throws

* respect the charging only setting on the connected retry worker
2026-09-23 17:27:45 +06:00
Aditya Raj SinghandGitHub 351ddff320 fix(server): compare integrity paths independently of unicode normalization (#31102)
* fix(server): compare integrity paths independently of unicode normalization

The untracked-file check compared on-disk paths against the database
byte for byte. macOS writes decomposed (NFD) filenames while an upload
stores the composed (NFC) form, so every asset with a non-ASCII name
came back from getAssetPathsByPaths under a different byte sequence,
was never removed from the candidate set, and was reported as an
untracked file. One reporter saw 14k false positives on a 55k library.

Look the batch up under both normal forms and key the comparison on
NFC, so a path that differs only in normalization is recognised as
tracked.

* test(server): cover normalized integrity lookup
2026-09-23 06:42:31 -04:00
Mees FrenselandGitHub 5689b0c8f6 refactor(web): stack-related service and actions (#29403)
* refactor(web): stack-related service and actions

* add withStacked guards
2026-09-23 06:24:43 -04:00
Mees FrenselandGitHub 8b1b9b9d41 refactor(web): breadcrumbs navbar for tags and folders (#31727)
* refactor(web): breadcrumbs navbar for tags and folders

* add back some color
2026-09-23 06:18:28 -04:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Jason Rasmussen
959d46c654 chore(deps): update dependency @types/node to ^24.13.5 (#31713)
* chore(deps): update dependency @types/node to ^24.13.5

* fix: add checksum

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-09-22 20:59:20 +00:00
Simon HandGitHub 8de97ae18b docs: document locked folder session behaviour (#31735)
Add documentation for how Locked Folder access applies to the current session, including the temporary unlock period and visibility of locked assets elsewhere in Immich while the session is elevated.

Refs #30724, #29690, #26185.
2026-09-22 20:56:26 +00:00
YarosandGitHub aa38c40c1c fix: preserve scroll position on memories page (#31588) 2026-09-22 16:48:05 -04:00
Brandon WeesandGitHub a4104368d3 feat: improved storage template onboarding (#31531)
* feat: improved storage template onboarding

* chore: minor cleanup
2026-09-22 16:43:53 -04:00
Mees FrenselandGitHub a9ce155cf8 refactor(web): use actions and ui lib context menu (#31729) 2026-09-22 16:38:00 -04:00
Mees FrenselandGitHub 1aedf1b41c feat(web): use ui lib's context menu for albums page (#31725) 2026-09-22 16:36:36 -04:00
bo0tzzandGitHub 9566fb7c74 fix: page path in better face clusters guide (#31671) 2026-09-22 16:31:32 -04:00
Adam GastineauandGitHub 91247f1492 chore(mobile): migrate OCR, Tag, and UserMetadata to Store (#31704)
* chore(mobile): migrate OCR, Tag, and UserMetadata to Store

* Add comments to Tag HTTP repository

* Add mounted check
2026-09-22 18:29:33 +00:00
Adam GastineauandGitHub f367ab2121 fix(mobile): prevent SurfaceLayer crashing on maps in Viewer on Android (#31709) 2026-09-22 20:55:22 +05:30
renovate[bot]andGitHub 0fa1399305 chore(deps): update github-actions (#31718) 2026-09-22 14:21:31 +02:00
AlexandGitHub d6d0947383 feat: birthday memories (#30831) 2026-09-22 04:30:43 -05:00
Yohanes KiranaandGitHub f48d4b3321 fix(mobile): ios clear file cache feedback (#31401)
* add clear file cache handling and snackbar

* create function to count deleted cache size

* clean up code and test

* ensure stable behaviour on non ios device

* refactor(mobile): simplify clear file cache feedback
2026-09-21 09:11:03 -07:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>mertalev
202015ed95 chore(deps): update machine-learning (#29123)
* chore(deps): update machine-learning

* bump to 3.13, increase minimum to 3.12

* cleanup

* target 3.12

* fix conditional

* fix builder images

* also update prod rknn

* unused parsers

* drop gold

* bump armnn

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2026-09-19 02:21:57 +00:00
Mees FrenselandGitHub 69e108adf1 fix(web): queue buttons focus outline (#31657) 2026-09-18 16:35:07 -04:00
Mees FrenselandGitHub 227ef01718 fix(web): scrollable search dropdown on mobile web (#31634) 2026-09-18 16:34:47 -04:00
Adam GastineauandGitHub 241ca1e2a2 chore(mobile): make Person Store reactive via Drift (#31661) 2026-09-18 11:21:31 -07:00
Santo ShakilandGitHub 909b8aac93 fix(mobile): clamp out of range datetimes so timeline queries cannot crash (#30490)
* fix(mobile): clamp out of range datetimes so timeline queries cannot crash

* replace the per column converters with a clamping custom type

* heal each table in one statement, rename the clamp type, read dates as stored

* one medium test for the clamp, drop the dart side bounds, private clamp type
2026-09-18 17:41:15 +00:00
Gillala DhruthiyaandGitHub 747af325d9 fix(web): correct memory title date (#31643) 2026-09-18 17:12:57 +02:00
Adam GastineauandGitHub 47f349c51c chore(mobile): mise clean command (#31635) 2026-09-18 06:16:59 -07:00
Lin GanandGitHub e952715aab fix(docs): update README_zh_CN: typos, links, cleanup (#31654)
Update README_zh_CN: typos, links, cleanup

Fixes and cleanup in the Chinese README: corrects image attribute typo (atl -> alt), removes an outdated maintenance note and the Star history embed, normalizes the official docs link (adds trailing slash), and updates the contributors graph URL to the immich-app/immich repository. These are content/metadata adjustments only.
2026-09-18 08:45:19 -04:00
Makar IvashkoandGitHub 64a2fc8259 perf: faster server cold start (#31630)
low hanging fruits for the speedup of immich startup
1. don't wait 1s if we actually got the lock
2. move full import from the top of the file to be imported lazily in the branch
2026-09-18 08:26:09 -04:00
Santo ShakilandGitHub 398a04e11d fix(mobile): sync status page goes blank when the counts query fails (#31642)
* sync status page stays usable when the counts query fails

* sync status error text through i18n
2026-09-17 18:14:11 +00:00
Luis NachtigallandGitHub 9994eb3bed fix(mobile): prevent live photo from getting stuck during dismiss animation (#28080)
* update animation methods to return futures

* fix(mobile): prevent live photo from getting stuck during dismiss animation

* chore: rename variables + comment
2026-09-17 10:32:20 -07:00
Santo ShakilandGitHub e8c6218431 fix(mobile): show the real date for android local photos with no exif (#29193)
* fix(mobile): show the real date for android local photos with no exif

photos with no exif date showed their copy-to-phone date in the "on this device" albums instead of the real date. fall back to the earlier of date_modified/date_added (matches the server + ios), plus a migration to fix the rows already saved wrong.

* persist migration progress when the date backfill fails

* fix local date migration for trash and epoch rows

* cover epoch dates in both local asset tables

* simplify the created date pick and rework the migration test

* heal no-exif dates from mediastore in the v27 migration

* check gallery access from dart and skip dates that do not parse

* let the date heal run once and never block the version

* read the trashed assets through the same cast the sync uses
2026-09-17 19:05:07 +06:00
Luis NachtigallandGitHub 5c8037301c fix(mobile): fill video placeholder to prevent flicker on open (#31621) 2026-09-17 05:44:08 -07:00
Jason RasmussenandGitHub efbbd32e55 feat(mobile): asset face v3 (#31615)
* feat(mobile): asset face v3

* fix: manually (cascade) delete asset faces
2026-09-16 16:27:02 -04:00
Jason RasmussenandGitHub 54e7ffa4e6 feat: asset face v3 (#31591) 2026-09-16 16:27:01 -04:00
TokenLimitExceededandGitHub 810454a343 fix: set limit maximum zoom in asset viewer (#31609)
* set maxScale in asset viewer

fix #31496 by setting a a maximum of 10× the fitted size

* change maxScale to 20x

* moved the multiplier to a constant

* type fix

* fix mismerge
2026-09-16 12:15:21 -07:00
Santo ShakilandGitHub c68ecb3892 feat(mobile): write the previous checksum when the upload finishes (#31577)
* write the previous checksum when the upload finishes

* ask the server for the checksum when the upload has none
2026-09-16 23:47:02 +06:00
Adam GastineauandGitHub bd59a373de fix(mobile): make EXIF provider reactive (#31552)
* fix(mobile): make EXIF provider reactive

* Fix tests

* Remove unnecessary invalidations
2026-09-16 17:36:37 +00:00
Mees FrenselandGitHub 32b2cdba61 fix(web): refactor some styling (#31269) 2026-09-16 18:41:46 +02:00
Mees FrenselandGitHub c6b363e625 feat(web): improve non-Latin text rendering on the map (#31611) 2026-09-16 17:19:52 +02:00
Adam GastineauandGitHub 2e98d745bf fix(mobile): load more than one image on Android with Remove animations (#31587)
* fix(mobile): load more than one image on Android with Remove animations

* Wrap album Mesmerizing Slivers with ProgressiveImage
2026-09-16 13:47:23 +00:00
Mees FrenselandGitHub c5cdbef26f refactor: remove assets from album action (#29210)
* refactor: remove assets from album action

* don't check and throw
2026-09-16 09:28:45 -04:00
Mees FrenselandGitHub 320d90949e fix(web): trim strings before searching/comparing (#31614) 2026-09-16 13:22:33 +00:00
bo0tzzandGitHub f30488596c docs: link to the docker compose builder (#31610) 2026-09-16 09:22:15 -04:00
Mees FrenselandGitHub 6c0a34f828 chore(docs): add note about opening issues to contributing (#31607) 2026-09-16 09:19:20 -04:00
Daniel DietzlerandGitHub 891c4054ba fix: vscode formatting (#31612) 2026-09-16 12:49:35 +00:00
Adam GastineauandGitHub 64de38092e chore(mobile): centralize duplicate mesmerizing header components (#31590)
* chore(mobile): centralize duplicate mesmerizing header components

* Fix formatting
2026-09-15 12:33:15 -07:00
Santo ShakilandGitHub 962ffaacc1 feat(mobile): stack edited photos over the original on upload (#31082)
* feat(mobile): stack edited photos over the original on upload

* stack through the asset service and give the live photo still its task metadata

* add plain photo stacking tests and the 2x2 edit detection matrix
2026-09-15 11:22:14 -07:00
Daniel DietzlerandGitHub ab5a9ae48c chore: drop tsc-alias (#31583) 2026-09-15 18:10:07 +02:00
Daniel DietzlerandGitHub e35aa718d9 fix: skip faces of other users when reassigning faces (#31580) 2026-09-15 17:27:46 +02:00
renovate[bot]andGitHub 9e0362dca0 chore(deps): update base-image to v202609151314 (#31585) 2026-09-15 13:42:38 +00:00
renovate[bot]andGitHub 8ab8ce8cf7 chore(deps): update dependency onnxruntime to v1.29.0 (#31563) 2026-09-15 09:35:39 -04:00
renovate[bot]andGitHub cab12ecb51 chore(deps): update dependency onnxruntime-migraphx to v1.27.1 (#31568) 2026-09-15 09:34:23 -04:00
Jason RasmussenandGitHub 99fd561144 chore: transition to nullable user.oauthId (#31560) 2026-09-15 09:33:15 -04:00