v1.127.0
Security fix
The HTML for the shared link page (/share/<token>
) is built on the server, and was previously susceptible to cross-site scripting (XSS). In short, this means you could do stuff like this.
This issue has been mitigated by sanitizing the data prior to including it in the resulting HTML.
Highlights
Welcome to the release v1.127.0
of Immich. As we were using the legendary salt gun to collect bugs into our inventory, the RNG god blessed us with a critical hit to a security bug. We encourage you to update to the latest version as soon as possible.
Some new features and enhancements also make it into this release, and we are excited to share them with you from the highlights below.
- Manual face tagging and deletion
- Persistent memories
- Search by rating (web)
Manual face tagging and deletion
This release introduces the ability to manually tag a face to a photo or video that the machine learning model failed to detect. You can also remove any existing faces for incorrect automatic tagging by the clustering algorithm.
You can start tagging by clicking on the “+” button under the people section of the detail panel.

A box will appear for the adjustment and selection of the person you want to tag
Click the pencil icon to access the editing view to remove existing faces. You can find a trash icon to remove a face from the photo.


Persistent memories
The Memories feature has received its first round of functional enhancements. Before, memories were generated on the fly, but they are now pre-generated, resulting in a faster timeline. You can interact with memories, such as liking and modifying their content. This change will allow us to deliver more complex memory features in the future.
Search by star rating
On the web, with the star rating feature enabled, you can use the search filter to select it as a search criteria.
External Library interface tweaks
The management page for external libraries now shows both photo and video counts. When creating a new external library, it will now ask for an import path immediately, making onboarding easier.
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app or purchase our merchandise at https://immich.store
Cheers! 🍻
What's Changed
🚨 Breaking Changes
🔒 Security
🚀 Features
- feat: sync implementation for the user entity by @zackpollard in #16234
- feat(web): manual face tagging and deletion by @alextran1502 in #16062
- feat: persistent memories by @jrasm91 in #15953
🌟 Enhancements
- feat(mobile): Made Map Bottom Sheet extendable higher by @YarosMallorca in #16056
- feat(web): use thumbhash as a cache key by @jrasm91 in #16106
- fix(web): improve memories layout on small screens by @lukashass in #16162
- feat(server): search by partial asset path by @kvalev in #16173
- fix(server): don't warn about missing timezone by @etnoy in #16211
- feat(web): show memories in portrait on small screens by @lukashass in #16213
- feat(web): library import path onboarding by @etnoy in #16229
- feat(server): add path to metadata logging by @etnoy in #16212
- feat(web): support searching by EXIF rating by @jasonappah in #16208
- feat(web): remove library type column by @etnoy in #16254
- feat(mobile): photos grouped by date in album page view by @ExceptionsOccur in #16272
🐛 Bug fixes
- fix(web): Update shared link Exif capitalization to match existing capitalization by @Snowknight26 in #16010
- fix(web): properly project profile picture by @immangat in #16095
- fix: place suggestions not clickable in the asset set location modal by @zackpollard in #16104
- fix(mobile): failed to load gl-ES locale by @pablopunk in #16123
- fix: include live images in-person view count by @immangat in #16116
- fix: limit the logo’s width in email templates to 100% by @NickOveracker in #16164
- fix(mobile): server endpoint on the login screen always include
/api
. by @jpros in #16149 - fix(server): flaky library e2e tests by @etnoy in #16174
- fix(server): more e2e library flakiness cleanup by @etnoy in #16176
- fix: pgvectors docs link by @bo0tzz in #16187
- fix(server): set
modifydate
by @etnoy in #16225 - fix(server): assets in multiple albums duplicated in map view by @mertalev in #16245
- fix(web): use an anonymous function in
setTimeout
in polyfill ofrequestIdelCallback
by @ykzts in #16264 - fix(web): thumbnail playback stops when hovering over the icon, then video by @NicholasFlamy in #16302
📚 Documentation
- docs: put Windows restore command on one line by @Mraedis in #16074
- chore(docs): Synology set-up guide by @JasonMAnderson in #16179
- docs: clarify custom locations guide by @bo0tzz in #16122
- chore(docs): access Immich using meshnet nordvpn by @RoseyWasTaken in #16316
🌐 Translations
- chore(web): update italian translations by @IGOLz in #15695
- chore(web): update translations by @weblate in #15559
New Contributors
- @HelloMihai made their first contribution in #16084
- @pablopunk made their first contribution in #16123
- @NickOveracker made their first contribution in #16164
- @IGOLz made their first contribution in #15695
- @jpros made their first contribution in #16149
- @JasonMAnderson made their first contribution in #16179
- @jasonappah made their first contribution in #16208
- @ykzts made their first contribution in #16264
- @ExceptionsOccur made their first contribution in #16272
- @RoseyWasTaken made their first contribution in #16316
Full Changelog: v1.126.1...v1.127.0