版本发布 8
**ImageGenius Changes:** change `pgvecto.rs` to `VectorChord` **immich Changes:** # v2.7.3 ## What's Changed ### 🐛 Bug fixes * fix(server): avoid false restore failures on large database imports by @ErasmusAndre in https://github.com/immich-app/immich/pull/27420 * fix(mobile): improve image load cancellation handling by @LeLunZ in https://github.com/immich-app/immich/pull/27624 * fix(server): people search not showing for 3 or less characters by @zackpollard in https://github.com/immich-app/immich/pull/27629 * fix(web): don't cache empty search results for people search by @zackpollard in https://github.com/immich-app/immich/pull/27632 * fix(mobile): get provider refs before async gaps in backup page by @LeLunZ in https://github.com/immich-app/immich/pull/27597 * fix: ssr open graph tags by @jrasm91 in https://github.com/immich-app/immich/pull/27639 ### 📚 Documentation * fix(docs): updated docker deprecation link by @mmomjian in https://github.com/immich-app/immich/pull/27633 ## New Contributors * @fluffy made their first contribution in https://github.com/immich-app/immich/pull/27606 * @ErasmusAndre made their first contribution in https://github.com/immich-app/immich/pull/27420 **Full Changelog**: https://github.com/immich-app/immich/compare/v2.7.2...v2.7.3
**ImageGenius Changes:** change `pgvecto.rs` to `VectorChord` **immich Changes:** You knew it was coming :sweat_smile: This release addresses the following issues: - Fix an issue with the default helmet.json file - Fix an issue with ML containers not working on some older CPUs - Fix an issue with importing external libraries <!-- Release notes generated using configuration in .github/release.yml at v2.7.2 --> ## What's Changed ### 🐛 Bug fixes * fix: csp quotes by @bo0tzz in https://github.com/immich-app/immich/pull/27592 * fix(ml): downgrade numpy by @mertalev in https://github.com/immich-app/immich/pull/27591 * fix(server): library import batch size by @mertalev in https://github.com/immich-app/immich/pull/27595 **Full Changelog**: https://github.com/immich-app/immich/compare/v2.7.0...v2.7.2
**ImageGenius Changes:** change `pgvecto.rs` to `VectorChord` **immich Changes:** # v2.7.0 Welcome to Immich `v2.7.0`! This release includes enhancements to the asset viewer, security improvements, changes to the duplicate APIs and viewer, and a bunch of bug fixes. Keep reading below for the complete highlights and a note on the upcoming `v3.0.0` release. > [!NOTE] > We're working on a managed backup service for Immich with end-to-end encrypted backups of your library to a remote datacentre where only you hold the keys. > > We've put together a quick survey (~5 mins) to get a better idea of how you're backing things up today and what you'd actually want from something like this. Your answers help us figure out what to prioritise, so we'd really appreciate it if you took a few minutes to fill it out. > > Leave your email at the end if you're interested in joining our free closed beta when it's ready. > > https://futo-backups-survey.immich.app/ ## Highlights * Remove from album (asset viewer) * Move to locked folder (folder page) * Editor shortcuts * Create a new face on-the-fly in the face tag editor * Resolve duplicates * Helmet configuration * Version check infrastructure * Notable fix: live photo and video download in Safari * Notable fix: escape HTML in the Panorama Photo Viewer ### Remove from album The web has a new action, "Remove from album," available in the asset viewer that makes it easier to remove an asset from an album. This action is available to both album and asset owners. <img width="360" height="202" alt="image" src="https://github.com/user-attachments/assets/e5facb24-ed10-4adc-957a-37147cca5634" /> ### Move to locked folder in the Folder view Similarly, the folder view now includes the "Move to locked folder" action. <img width="1900" height="762" alt="image" src="https://github.com/user-attachments/assets/c39e792b-81da-4c31-a23f-03f96853fe8e" /> ### Editor shortcuts Users on the web can now edit with keyboard shortcuts. Press `e` to open the editor. Once in the editor, press `[` or `]` to rotate the asset +/- 90 degrees. Finally, save any changes and close the editor with `ENTER`. https://github.com/user-attachments/assets/969de104-b02d-41a6-830b-3e1a49541d14 ### Create a new face on-the-fly in the face tag editor You can now create a new face/person on the fly from the face tagging editor interface <img width="350" alt="image" src="https://github.com/user-attachments/assets/c39db0e3-da47-4421-9040-5f51650deee9" /> <img width="350" alt="image" src="https://github.com/user-attachments/assets/0c81a1ee-c54e-4167-9dff-95719fe44595" /> ### Deduplication improvements The duplicate screen has gone through a bunch of iterations since it was first introduced all the way back in May, 2024. The latest release moves a bunch of logic from the client to the server, which now automatically suggests which asset to keep based on image size and EXIF data. Additionally, the new server implementation will automatically synchronize metadata, including albums, favorite status, rating, description, visibility, location, and tags. For more information about this process, see the new [documentation](https://docs.immich.app/features/duplicates-utility). ### Helmet configuration You can now opt in to using a [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP) in Immich. The new environment variant `IMMICH_HELMET_FILE` accepts a boolean or a path to a [helmet](https://helmetjs.github.io/) configuration file. **Recommend action:** The team recommends setting `IMMICH_HELMET_FILE=true` to enable the default policy. Then, please let us know if you run into any issues with it. #### Background and details Since Immich is deployed in so many different ways, it has been hard to figure out how to enable a CSP that would not conflict with or break existing installs that might use 3rd party map providers, custom CSS, embed Immich in an iframe, or other such features. In this release, we have added the ability to both opt in to a default policy and configure a custom one. To use the default policy, simply set the environment variable `IMMICH_HELMET_FILE=true`. To use a custom policy, set the environment variable to a path on disk (within the immich-server) that contains a valid helmet configuration (e.g. `IMMICH_HELMET_FILE=/opt/immich/helmet.json`). CSP can be used to control what scripts are allowed to run on the page, which domains to load images from, etc. Additionally, it can be used to configure headers for [Referrer-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Referrer-Policy), [X-Powered-By](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Powered-By), [X-Frame-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options), and others. ### New version check infrastructure Prior to this release, instances that used the automatic version check feature would send HTTP requests to `github.com`. Now, we have set up a small service at `version.immich.cloud` to handle these types of requests. This avoids any privacy implications of connecting to `github.com` , as well as moves the request load to our own infrastructure. ### Notable fix: live photo and video download in Safari When downloading files in Safari with the same name, it will simply overwrite the file instead of automatically renaming it. In this release, the still and motion parts of a live photo are now named differently to prevent this from happening. ### Notable fix: escape HTML in panorama photo viewer In `v2.6.0`, we added the ability to show/view clip text in the panorama viewer, but introduced an XSS vulnerability, which has been fixed in this release. Interestingly, this was XSS using text in the image, which would then get read by OCR. ### Notable fix: Immich User Agent for external requests Similar to the mobile app, the server now sends a custom [User Agent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/User-Agent) header. The format for the User Agent is `immich-server/{version}`. For example, `immich-server/2.7.0`. ## `v3.0.0` Just a heads up that this is the likely to be the last release before `v3.0.0`. Being a major release there will be a handful of breaking changes, *although it's worth noting that nothing is currently planned that requires user intervention*. It is mainly changes that impact 3rd party developers. More information and details should be available in the coming weeks. ## Support Immich <p align="center"> <img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbjY2eWc5Y2F0ZW56MmR4aWE0dDhzZXlidXRmYWZyajl1bWZidXZpcyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/87CKDqErVfMqY/giphy.gif" width="450" title="SUPPORT THE PROJECT!"> </p> If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app or our merchandise at https://immich.store ---- <!-- Release notes generated using configuration in .github/release.yml at v2.7.0 --> ## What's Changed ### 🚀 Features * feat: add support for helmet configuration by @jrasm91 in https://github.com/immich-app/immich/pull/27058 * feat: create new person in face editor by @alextran1502 in https://github.com/immich-app/immich/pull/27364 ### 🌟 Enhancements * feat(web): add a seperate tooltip for switching from dark to light mode by @Vogeluff in https://github.com/immich-app/immich/pull/27297 * feat(web): focus on face-editor search input by @cratoo in https://github.com/immich-app/immich/pull/27136 * feat(web): add RemoveFromAlbumAction to asset viewer nav bar by @timonrieger in https://github.com/immich-app/immich/pull/27000 * feat(web): add shortcuts to rotate images by @squishykid in https://github.com/immich-app/immich/pull/26927 * feat(server): add checksum algorithm field by @etnoy in https://github.com/immich-app/immich/pull/26573 * feat(server): resolve duplicates by @Phlogi in https://github.com/immich-app/immich/pull/25316 * chore(mobile): reduce spacing on video controls by @uhthomas in https://github.com/immich-app/immich/pull/27313 * perf(server): optimize people page query by @ffchung in https://github.com/immich-app/immich/pull/27346 * feat(web): dim photo outside hovered face bounding box by @midzelis in https://github.com/immich-app/immich/pull/27402 * feat(web): OCR overlay interactivity during zoom by @midzelis in https://github.com/immich-app/immich/pull/27039 * feat: add move to lock folder in folder view by @alextran1502 in https://github.com/immich-app/immich/pull/27384 * feat(web): highlight active person thumbnail in detail panel and edit faces panel by @midzelis in https://github.com/immich-app/immich/pull/27401 * feat: move version checks to our own infrastructure by @zackpollard in https://github.com/immich-app/immich/pull/27450 * feat: add preview button when selecting images by @johnmaguire in https://github.com/immich-app/immich/pull/27305 * fix: user-agent format by @jrasm91 in https://github.com/immich-app/immich/pull/27488 * chore(mobile): reduce buffering timer duration by @uhthomas in https://github.com/immich-app/immich/pull/27111 * fix(mobile): use key on video controls by @uhthomas in https://github.com/immich-app/immich/pull/27512 * feat(server): Add support for .ts files by @ray in https://github.com/immich-app/immich/pull/27529 ### 🐛 Bug fixes * fix(server): refresh unedited asset dimensions on metadata extraction by @michelheusschen in https://github.com/immich-app/immich/pull/27220 * fix(server): memory fragmentation by @mertalev in https://github.com/immich-app/immich/pull/27027 * fix(database restores): don't assume onboarding has completed by @insertish in https://github.com/immich-app/immich/pull/27052 * fix(web): preserve timezone when changing timestamp (Closes #25354) by @updatemike in https://github.com/immich-app/immich/pull/27095 * fix: various command palette usages by @danieldietzler in https://github.com/immich-app/immich/pull/27304 * fix(web): keep map view open after closing asset viewer by @diiogofer in https://github.com/immich-app/immich/pull/26980 * fix(web): prevent Safari from overwriting live photo image with video by @saurav61091 in https://github.com/immich-app/immich/pull/26898 * fix(mobile): video icon not showing on memories by @YarosMallorca in https://github.com/immich-app/immich/pull/27311 * fix(mobile): mismatch between system and app color when using low-chroma system color scheme by @putuprema in https://github.com/immich-app/immich/pull/27282 * fix(mobile): images loads sometimes cancel too early by @LeLunZ in https://github.com/immich-app/immich/pull/27067 * fix(mobile): streamline error handling for live photo saving by @LeLunZ in https://github.com/immich-app/immich/pull/27337 * fix(web): keep upload totals stable when dismissing items (#27247) by @Nicolas-micuda-becker in https://github.com/immich-app/immich/pull/27354 * fix(mobile): low upload timeout on android by @mertalev in https://github.com/immich-app/immich/pull/27399 * fix(web): add drop shadow to asset viewer nav bar and prevent button shrinking by @midzelis in https://github.com/immich-app/immich/pull/27404 * fix(mobile): favorite button not updating state by @YarosMallorca in https://github.com/immich-app/immich/pull/27271 * fix: detection of WebM container by @chanb22 in https://github.com/immich-app/immich/pull/24182 * fix(web): prevent AssetUpdate from adding unrelated timeline assets by @michelheusschen in https://github.com/immich-app/immich/pull/27369 * fix: withFilePath select edited or unedited file by @bwees in https://github.com/immich-app/immich/pull/27328 * fix(web): Enable stack selector in shared album view by @timonrieger in https://github.com/immich-app/immich/pull/24641 * fix(server): use substring matching for person name search by @okxint in https://github.com/immich-app/immich/pull/26903 * fix: escape html by @jrasm91 in https://github.com/immich-app/immich/pull/27469 * fix(mobile): ignore pointer events on toasts by @uhthomas in https://github.com/immich-app/immich/pull/26990 * fix(mobile): reset video controls hide timer when showing controls ch… by @uhthomas in https://github.com/immich-app/immich/pull/26985 * fix(mobile): don't update search filters in-place by @uhthomas in https://github.com/immich-app/immich/pull/26965 * fix(web): isFullScreen initial value check is incorrect by @midzelis in https://github.com/immich-app/immich/pull/27520 * fix(mobile): transparent system navbar when trash bottom bar is visible by @putuprema in https://github.com/immich-app/immich/pull/27093 * fix: timestamp handling for database backup in Web UI by @AfonsoMendoncaRibeiro in https://github.com/immich-app/immich/pull/27359 * fix: allow bots to access /s/ urls by @domints in https://github.com/immich-app/immich/pull/27579 ### 📚 Documentation * feat(docs): add keycloack example to oauth docs by @robson90 in https://github.com/immich-app/immich/pull/27425 ### 🌐 Translations * chore(web): update translations by @weblate in https://github.com/immich-app/immich/pull/27029 * chore(web): update translations by @weblate in https://github.com/immich-app/immich/pull/27483 ## New Contributors * @Vogeluff made their first contribution in https://github.com/immich-app/immich/pull/27297 * @updatemike made their first contribution in https://github.com/immich-app/immich/pull/27095 * @diiogofer made their first contribution in https://github.com/immich-app/immich/pull/26980 * @squishykid made their first contribution in https://github.com/immich-app/immich/pull/26927 * @Phlogi made their first contribution in https://github.com/immich-app/immich/pull/25316 * @saurav61091 made their first contribution in https://github.com/immich-app/immich/pull/26898 * @putuprema made their first contribution in https://github.com/immich-app/immich/pull/27282 * @ffchung made their first contribution in https://github.com/immich-app/immich/pull/27346 * @chanb22 made their first contribution in https://github.com/immich-app/immich/pull/24182 * @robson90 made their first contribution in https://github.com/immich-app/immich/pull/27425 * @okxint made their first contribution in https://github.com/immich-app/immich/pull/26903 * @johnmaguire made their first contribution in https://github.com/immich-app/immich/pull/27305 * @ray made their first contribution in https://github.com/immich-app/immich/pull/27529 * @AfonsoMendoncaRibeiro made their first contribution in https://github.com/immich-app/immich/pull/27359 * @domints made their first contribution in https://github.com/immich-app/immich/pull/27579 **Full Changelog**: https://github.com/immich-app/immich/compare/v2.6.3...v2.7.0
**ImageGenius Changes:** change `pgvecto.rs` to `VectorChord` **immich Changes:** # v2.6.3 ## What's Changed ### 🐛 Bug fixes * fix(mobile): remove upload timeout by @mertalev in https://github.com/immich-app/immich/pull/27237 * fix(web): prevent horizontal scroll bar in asset viewer side panel by @michelheusschen in https://github.com/immich-app/immich/pull/27270 * fix(web): shifting motion image button by @YarosMallorca in https://github.com/immich-app/immich/pull/27275 * chore(docs): withPeople parameter description by @YarosMallorca in https://github.com/immich-app/immich/pull/27262 * fix(server): filter out empty search suggestions by @michelheusschen in https://github.com/immich-app/immich/pull/27292 * fix: incorrect asset face sync by @bwees in https://github.com/immich-app/immich/pull/27243 **Full Changelog**: https://github.com/immich-app/immich/compare/v2.6.2...v2.6.3
**ImageGenius Changes:** change `pgvecto.rs` to `VectorChord` **immich Changes:** # v2.6.3 ## What's Changed ### 🐛 Bug fixes * fix(mobile): remove upload timeout by @mertalev in https://github.com/immich-app/immich/pull/27237 * fix(web): prevent horizontal scroll bar in asset viewer side panel by @michelheusschen in https://github.com/immich-app/immich/pull/27270 * fix(web): shifting motion image button by @YarosMallorca in https://github.com/immich-app/immich/pull/27275 * chore(docs): withPeople parameter description by @YarosMallorca in https://github.com/immich-app/immich/pull/27262 * fix(server): filter out empty search suggestions by @michelheusschen in https://github.com/immich-app/immich/pull/27292 * fix: incorrect asset face sync by @bwees in https://github.com/immich-app/immich/pull/27243 **Full Changelog**: https://github.com/immich-app/immich/compare/v2.6.2...v2.6.3
**ImageGenius Changes:** change `pgvecto.rs` to `VectorChord` **immich Changes:** # v2.6.1 ## Hot fixes - Fixed a failed migration issue on the mobile app when the URL Switching feature is used ## What's Changed ### 🐛 Bug fixes * fix(server): fallback to email when name is empty by @jrasm91 in https://github.com/immich-app/immich/pull/27016 * fix: ignore errors deleting untitled album by @jrasm91 in https://github.com/immich-app/immich/pull/27020 * fix(web): wrap long album title by @jrasm91 in https://github.com/immich-app/immich/pull/27012 * fix(web): stop in-progress uploads on logout by @jrasm91 in https://github.com/immich-app/immich/pull/27021 * fix: writing empty exif tags by @danieldietzler in https://github.com/immich-app/immich/pull/27025 * fix(web): disable send button by @jrasm91 in https://github.com/immich-app/immich/pull/27051 * fix(mobile): server url migration by @mertalev in https://github.com/immich-app/immich/pull/27050 **Full Changelog**: https://github.com/immich-app/immich/compare/v2.6.0...v2.6.1
**ImageGenius Changes:** change `pgvecto.rs` to `VectorChord` **immich Changes:** # v2.6.1 ## Hot fixes - Fixed a failed migration issue on the mobile app when the URL Switching feature is used ## What's Changed ### 🐛 Bug fixes * fix(server): fallback to email when name is empty by @jrasm91 in https://github.com/immich-app/immich/pull/27016 * fix: ignore errors deleting untitled album by @jrasm91 in https://github.com/immich-app/immich/pull/27020 * fix(web): wrap long album title by @jrasm91 in https://github.com/immich-app/immich/pull/27012 * fix(web): stop in-progress uploads on logout by @jrasm91 in https://github.com/immich-app/immich/pull/27021 * fix: writing empty exif tags by @danieldietzler in https://github.com/immich-app/immich/pull/27025 * fix(web): disable send button by @jrasm91 in https://github.com/immich-app/immich/pull/27051 * fix(mobile): server url migration by @mertalev in https://github.com/immich-app/immich/pull/27050 **Full Changelog**: https://github.com/immich-app/immich/compare/v2.6.0...v2.6.1
**ImageGenius Changes:** change `pgvecto.rs` to `VectorChord` **immich Changes:** # v2.5.6 This patch release addresses the following issues - Fixed an issue where thumbnail generation runs every night when `full-size image generation` option is enabled. - Fixed an issue where iOS is slow to start in some cases. - Fixed an issue where Android device cannot delete asset using Free Up Space feature if it has more than a few thousand assets <!-- Release notes generated using configuration in .github/release.yml at v2.5.6 --> ### 🐛 Bug fixes * fix: enhance album sorting functionality with order handling by @LeLunZ in https://github.com/immich-app/immich/pull/24816 * fix: add missing translations for image editor by @michelheusschen in https://github.com/immich-app/immich/pull/25957 * fix: image and video download complete notification shows "file_name" by @romoisverycool in https://github.com/immich-app/immich/pull/25975 * fix: user profile refetched each time on opening app dialog by @shenlong-tanwen in https://github.com/immich-app/immich/pull/25992 * fix: improve albums page load time on firefox by @michelheusschen in https://github.com/immich-app/immich/pull/26025 * fix: reduce queue graph jitter and include paused count by @michelheusschen in https://github.com/immich-app/immich/pull/26023 * fix(web): toast fixed location by @YarosMallorca in https://github.com/immich-app/immich/pull/25966 * fix: scroll jump when opening show & hide people by @michelheusschen in https://github.com/immich-app/immich/pull/25932 * fix(web): display storage unit next to value instead of absolute positioning in admin user page by @K0lin in https://github.com/immich-app/immich/pull/25985 * fix: iOS slow start by @alextran1502 in https://github.com/immich-app/immich/pull/26043 * fix: profile dialog auto dismiss after opening on iPad by @alextran1502 in https://github.com/immich-app/immich/pull/26046 * fix(web): prevent context menu from overflowing viewport by @ttpss930141011 in https://github.com/immich-app/immich/pull/26041 * fix: slideshow setting dropdown overflow by @michelheusschen in https://github.com/immich-app/immich/pull/26066 * fix: free up space using small batch size to reliably work on Android by @alextran1502 in https://github.com/immich-app/immich/pull/26047 * fix(web): removing a person in an asset, doesn't remove the asset in … by @dolfje in https://github.com/immich-app/immich/pull/26068 * fix(mobile): handle image stream completion when no image is emitted by @LeLunZ in https://github.com/immich-app/immich/pull/25984 * fix: evict image from cache on error during image loading by @LeLunZ in https://github.com/immich-app/immich/pull/26078 * fix(server): thumbnail queueing by @mertalev in https://github.com/immich-app/immich/pull/26077 * fix: create face exif orientation handling by @bwees in https://github.com/immich-app/immich/pull/26108 * fix(web): refresh text by @jrasm91 in https://github.com/immich-app/immich/pull/26071 * fix: correctly cancel select all assets by @michelheusschen in https://github.com/immich-app/immich/pull/26067 * fix: person thumbnail generation on edited assets by @bwees in https://github.com/immich-app/immich/pull/26112 * fix: local date time group fall back by @alextran1502 in https://github.com/immich-app/immich/pull/26110 ### 📚 Documentation * feat(docs): version policy by @mmomjian in https://github.com/immich-app/immich/pull/25979 * feat(deployment): rootless compose file by @mmomjian in https://github.com/immich-app/immich/pull/25931 * docs: update ml-hardware-acceleration.md by @cmrtdev in https://github.com/immich-app/immich/pull/25755 ### 🌐 Translations * chore(web): update translations by @weblate in https://github.com/immich-app/immich/pull/25947 ## New Contributors * @ttpss930141011 made their first contribution in https://github.com/immich-app/immich/pull/26041 * @dolfje made their first contribution in https://github.com/immich-app/immich/pull/26068 * @cmrtdev made their first contribution in https://github.com/immich-app/immich/pull/25755 * @nicosemp made their first contribution in https://github.com/immich-app/immich/pull/25599 **Full Changelog**: https://github.com/immich-app/immich/compare/v2.5.5...v2.5.6