Update ghcr.io/immich-app/immich-server Docker tag to v2 #1643

Open
renovate-bot wants to merge 1 commits from renovate/ghcr.io-immich-app-immich-server-2.x into main
Collaborator

This PR contains the following updates:

Package Update Change
ghcr.io/immich-app/immich-server major v1.132.3 -> v2.0.0

Release Notes

immich-app/immich (ghcr.io/immich-app/immich-server)

v2.0.0: - Stable Release

Compare Source

v2.0.0 - Stable Release

Welcome to the release v2.0.0 of Immich. This release marks the first stable version of Immich. You can read our announcement blog post here to learn what stable means for Immich, what you can expect from a stable version, along with our future plans. Of course, it wouldn't be complete without a few surprises.

To update to this version, no special steps are required. Compose pull and compose up, and you are now on v2.0.0. Additionally, there are a few noteworthy items that we have been working on in preparation for the stable release:

  • New homepage
  • New API documentation
  • New community metrics

New homepage

The https://immich.app/ website has been recently updated. It’s been rewritten with our very own UI component library, and includes a blog with a few initial posts, including one about the new mobile sync implementation. Existing documentation has been moved to https://docs.immich.app/.

image

Better API documentation

We’re also happy to announce a new version of our API documentation, which is now live at https://api.immich.app/. The new docs include more information about authentication, authorization & permissions, a command palette for quick navigation (press / or ctrl+k), and a built-in method to view live results.

image

New community metrics

The https://data.immich.app/ website has also been updated to include new community metrics that show member growth on our subreddit and discord server.

image

What's Changed

🐛 Bug fixes

Full Changelog: https://github.com/immich-app/immich/compare/v1.144.1...v2.0.0

v1.144.1

Compare Source

v1.144.1

v1.144.0 has been made a sacrificial object to the Release God

Welcome to the release v1.144.1 of Immich. This release marks the end of summer, with many bugs being squashed and the continuous improvement of the upload process on the new timeline. It also comes with enhancements to storage management for iCloud users when uploading a large library. The mobile app now also displays an indicator for LivePhoto or MotionPhoto, making them easier to recognize.

image

Support Immich

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

What's Changed

🚀 Features
🐛 Bug fixes
📚 Documentation
🌐 Translations

Full Changelog: https://github.com/immich-app/immich/compare/v1.143.1...v1.144.1

v1.143.1

Compare Source

v1.143.1

What's Changed

🐛 Bug fixes
🌐 Translations

Full Changelog: https://github.com/immich-app/immich/compare/v1.143.0...v1.143.1

v1.143.0

Compare Source

v1.143.0

[!NOTE]
If you're still experiencing issues with remote assets or albums not showing up on the mobile app, please ensure that your server is updated to the latest version. If you are still having issues, try logging out and back in.

Highlights

Welcome to release v1.143.0 of Immich. Like all releases, this one includes the latest batch of translations. A special thanks to everyone who has contributed so far to translating the project. If you are interested in helping translate yourself, check out our project on Weblate. Other than that, this release is mostly bug fixes, with a few minor enhancements. Now let’s dive right in!

  • Material 3 switch/toggle (web) #​22100
  • Bring back configurable backup settings (mobile) #​22114
  • Concurrent hashing & hashing progress (mobile) #​21997
  • Download progress (mobile) #​22178
  • Notable fix: Web modals #​22079
  • Notable fix: Mobile “freezes” #​22111
  • Notable fix: Copy image on Safari
Material 3 switch/toggle (web)

The web project has an updated switch/toggle, thanks to @​SevereCloud (immich-app/ui#267) for that.

image
Bring back configurable backup settings (Android)

Just like the previous timeline implementation, the new version now has similar settings for

  • Backup only while charging
  • Upload only after a minimum amount of elapsed time
Concurrent hashing & hashing progress (mobile)

Improvements have been made to the client-side hashing implementation, which now enables hashing to happen concurrently. This significantly increases throughput, and now the speed is mostly limited by how fast files can be read from internal storage. The hashing process has also been updated to only hash assets from the albums selected for backups, which reduces the number of downloads for iCloud users.

Download progress (mobile)

The mobile app now has a built-in download progress indicator, which makes it easy to see the progress of files being downloaded onto the device.

image image

Notable fix: Web modals

Previous to this release, the web application would often “freeze” or become unusable after using a modal (creating a shared link, creating an api key, confirming the deletion of assets, etc.). This issue has been fixed.

Notable fix: Mobile “freezes”

This release fixes an issue that the mobile application could occasionally “freeze”, with the thumbnails would stop loading, and certain pages would become unusable until the application was forced closed. This has proved much more challenging to solve. We determined that the cause was due to concurrent access to SQLite from background/foreground processes, which could have put the app into this state. We have taken measures to address these situations and believe the application should be much more stable. If you are still running into these types of issues, please let us know!

Notable fix: Copy image on Safari

The “copy image to clipboard” functionality has long worked on non-Safari browsers, but in this release, we were finally able to identify and implement a fix. Copying an image to the clipboard should now also work on Safari.

Support Immich

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

What's Changed

🚀 Features
🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.142.1...v1.143.0

v1.142.1

Compare Source

v1.142.1

Hey guys, Alex here.

Sorry about the rocky release of version v1.142.0. Instead of giving you guys a better experience with the timeline, a mistake in the migration flow code that I wrote put the app into an erroneous state that makes it seem like the new timeline isn't working at all, and the only way to fix that was to log out and log back in manually. For that, I personally apologize for the inconvenience and the frustration that I caused over the weekend. This patch release addresses those issues and some other bugs that were reported over the weekend. If you have problems, please don't hesitate to reach out to me or the team on Discord or GitHub

Alex


In release v1.142.0, during the migration from the old timeline to the new one on the mobile app, the sync checkpoint isn't getting reset, leading to the data not being pulled from the server. During the development of the new timeline, while on the old timeline, the sync endpoint might have been triggered at some points. The missing sync information creates a perception of data loss and mismatched sync information for the mobile app. This release reset the sync checkpoints so that they can be pulled down correctly for everyone.

[!TIP]
For the new timeline to pull the correct information, please consider updating your server to the latest version. We have seen reports that the timeline isn't working because it was connecting to an older version of the server

This patch release also addresses the reliability of background sync on Android. We suggest that you don't swipe away to dismiss the app, but keep it in the background; this will prevent the background worker from being terminated by the OS. Further optimization of the background worker's operation when the app is dismissed will be implemented in the next few days, pending additional testing.

What's Changed

🐛 Bug fixes

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.142.0...v1.142.1

v1.142.0

Compare Source

v1.142.0

Highlights

Welcome to release v1.142.0 of Immich. Starting with this version, the beta timeline is now the default version for the app. When you first open the app after updating, it will check and run the on-device migration steps for those that are on the old timeline, after that you can close and relaunch the app to start with a better app experience. We want to express our sincere gratitude again for the users who have been using the new version to help us polish it, and for those who work closely with us to tackle weird bugs. As always, this version comes with many bug fixes for the server, web and the mobile app. Let’s dive into some of the highlights below.

  • Resume all paused jobs
  • Geolocation utility improvements
  • Read-only mode toggle on the mobile app has changed to a long-press behavior instead of a double-tap
  • Notable fix: Raspberry Pi 4 crashes when generating thumbnails
    • If you were affected by this bug and set the environmental variable VIPS_NOVECTOR=1, you should remove this variable when upgrading to this Immich release or above
Resume all paused jobs

The job administration page now comes with a resume all button. This is especially helpful for users who are importing their libraries to Immich via immich-go, which pauses all jobs during upload, including background jobs not visible in the UI. If the process fails mid-way, the jobs stay paused until the admin either recreates the Redis container or manually resumes them. If you’ve been having problems with the trash not clearing or memories not generating, make sure to check this button.

image
Geolocation utility improvements

The geolocation utility has been converted to a timeline view, so you can easily scroll through your entire library while investigating

image

You can now browse the timeline, and at the same time, fill in the missing coordinates for your assets. Thanks @​Johannbr for your continued work on this.

Support Immich

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

What's Changed

🫥 Deprecated Changes
🚀 Features
🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.141.1...v1.142.0

v1.141.1

Compare Source

v1.141.1

Highlight

Welcome to the release v1.141.1 of Immich, as hot as this summer gets, the beta timeline is ready to be taken out of the kitchen, now with more features and bug fixes. Let’s dive right in while it’s still hot

  • [beta] Auto-add uploaded assets to albums
  • View similar photos
  • DigitalOcean 1-click deployment
  • Notable fix - thumbnail generation for 200MP HEIC images
[beta] Auto-add uploaded assets to albums.

This feature has made its way back to the beta timeline. You can enable this feature on the Backup Options page. The current selected albums for backup will be linked with the album of the same name on the server, or a new album will be created if those albums don’t exist. Assets uploaded will be placed in the respective linked album.

image

View similar photos

On the web, you can now look for similar photos or videos when viewing an asset by clicking on the context menu > Find similar photos. Powered by CLIP search to quickly identify photos with similar scenery and context

image image

Digital Ocean 1-Click Deployment

To help users who are interested in trying out the application without setting it up on their infrastructure, or who do not have the infrastructure available yet. We now have the option to deploy Immich directly on DigitalOcean.

The default configuration is the smallest pod size that can run Immich comfortably. The new instance is set up with a default reverse proxy that handles TLS. For more information, you can read here.

You can give it a try by clicking the button below

image

Support Immich

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

What's Changed

🚀 Features
🌟 Enhancements
🐛 Bug fixes
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.140.1...v1.141.1

v1.140.1

Compare Source

v1.140.1

What's Changed

🐛 Bug fixes
📚 Documentation

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.140.0...v1.140.1

v1.140.0

Compare Source

v1.140.0

Highlights

Welcome to the release v1.140.0 of Immich, one more release, and one more day closer to 🐴 Stable-Day 🐴. This release continues the ramp-up effort to bring the beta timeline up to the same feature parity as the old one, while also addressing as many bugs as possible. Thanks to our active contributors, some cool features also made their way into this release. We encourage all Immich users to switch to the beta timeline and use it to help us identify and resolve issues. Let’s dive into the highlights of this release.

  • [beta] Background sync
  • [beta] Read-only mode
  • Location management utility
[beta] Background sync

The background sync feature has now been added to the beta timeline. New assets are now detected and pushed to an upload queue, which will be handled automatically by the OS.

Some tasks, such as local and remote data sync, now also run in the background periodically. So that, as soon as you open the app, the newly taken assets are immediately available on the timeline.

For those who have been using the beta timeline, please toggle the upload button off then on again to enable the background workers.

[beta] Read-only mode

For parents who have kids who want to look over photos but don’t want them to accidentally delete or perform any action on them, this feature is for you. By double-tapping on the profile photo in the app, you can only view assets in the main timeline, and all the action buttons will be hidden. Thanks, @​Sud-Puth, for proposing and initiating work on this nifty feature!

image
Location management utility

Thanks to @​Johannbr for putting in time and effort into this feature. You can now find and edit missing location data on a specific date. By going to Utilities > Manage location on the web, you will be presented with an interface to select the date to find the assets with missing GPS location and to update them in bulk

image image

Support Immich

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

What's Changed

🚀 Features
🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.139.4...v1.140.0

v1.139.4

Compare Source

v1.139.4

What's Changed

🐛 Bug fixes

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.139.3...v1.139.4

v1.139.3

Compare Source

v1.139.3

What's Changed

🐛 Bug fixes
📚 Documentation

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.139.2...v1.139.3

v1.139.2

Compare Source

v1.139.2

v1.139.0 and v1.139.1 have made the ultimate sacrifice for switching from npm to pnpm in our release pipeline


Welcome to release v1.139.2. This version continues to bring improvements to the beta timeline, from fixing bugs to significantly improving the image rendering pipeline, especially on Android. We appreciate users who have helped us test out the beta timeline! We encourage you all to switch to it to help us catch more bugs as the stable release is nigh. Let’s dive into the highlights of this release.

Highlights

  • [beta] New image rendering pipeline
  • [beta] Show remainder assets detail
  • Option to skip in the duplicate resolver tools
  • Add to multiple albums action
  • [beta] Fixed the bug that upload progress doesn’t resume upon app restart (really fix it this time)
[beta] New image rendering pipeline

Thanks to our one and only wizard @​mertalev 🧙, the mobile app now uses our own custom image loading and rendering pipeline, featuring multithreading and a series of other optimizations. In particular, this significantly improves displaying of local images on Android. Not only does this improve thumbnail loading speed, but local thumbnails are noticeably higher quality by avoiding compression. The experience of scrolling the timeline should now be on par with the local gallery app. Additionally, remote assets now benefit from request cancellation to avoid downloading thumbnails that are no longer relevant, further improving responsiveness when quickly scrolling the timeline.

[beta] Show assets pending backup

You can now view which assets are in the remaining list of backups. This helps track down problematic assets that cannot be uploaded for some reason. *cough, iCloud assets, cough*

image image

Option to skip an entry in the duplicate resolution utility

You can now navigate back and forth to get to other entries in the duplicate list.

image

Add to multiple albums action

On the web, you can now add assets to multiple albums at once from the album selection modal.

image

Support Immich

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

What's Changed

🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.138.1...v1.139.2

v1.138.1

Compare Source

v1.138.1

What's Changed

🐛 Bug fixes

Full Changelog: https://github.com/immich-app/immich/compare/v1.138.0...v1.138.1

v1.138.0

Compare Source

v1.138.0

[!IMPORTANT]

For users that are using the beta timeline, please update your server to v1.138.0 so that the sync mechanism can work correctly. v1.138.0 of the mobile app doesn’t sync the data correctly if your server is v1.137.2 or below.

Highlights

Welcome to the release v1.138.0 of Immich, this release adds many bugfixes and brings the beta timeline closer to feature parity; thank you all for helping with testing and giving feedback. Please let us know if the release fixes the issues you are facing. Let’s dive into some of the highlights below

  • Reset PIN code with password
  • Reset the OAuth ID
  • [beta] swipe to delete album
  • [beta] improvement in the upload and sync process
  • [beta] map view with SQLite

Reset PIN code with password

In order to reset a forgotten PIN code, the admin user used to have to click the “Reset PIN code” button for the user. Now, users can reset their own PIN code by supplying their current password.

Note: when password login is disabled, this option is unavailable.

Reset via password

image image

Reset via admin account

image image

Reset OAuth ID

Immich stores some configuration in the database to keep track of which OAuth accounts are linked to which Immich users. When migrating to a new authentication system or provider, this configuration becomes invalid and can prevent the user from logging in with the new system. A button and accompanying reminder now exists in the OAuth settings to clear or reset this configuration for all users.

image image

What's Changed

🚨 Breaking Changes
🚀 Features
🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.137.3...v1.138.0

v1.137.3

Compare Source

v1.137.3

  • Fixes a media location migration issue for people who have IMMICH_MEDIA_LOCATION set. (e.g., Unraid)

What's Changed

🐛 Bug fixes

Full Changelog: https://github.com/immich-app/immich/compare/v1.137.2...v1.137.3

v1.137.1

Compare Source

v1.137.1

  • Fixes an issue with the /usr/src/app/upload => /data migration if you don't have any assets in the default library

What's Changed

🐛 Bug fixes

Full Changelog: https://github.com/immich-app/immich/compare/v1.137.0...v1.137.1

v1.137.0

Compare Source

v1.137.0

  • knock, knock
  • Who's there?
  • Breaking
  • Breaking who?
  • Breaking changes woohoo, with a stable-release-is-around-the-corner and coming to a server near you (soon™)

[!CAUTION]

Breaking Changes

If your current, running version of Immich is v1.132.0 or newer, there is NO ACTION required. If you are updating from version below v1.132.0 continue reading.

Remove TypeORM (#​20366)

This update requires applications to have started up at least once on 1.132.0+. See https://immich.app/errors#typeorm-upgrade for more details.

Highlights

Welcome to the release v1.137.0 of Immich. This version adds many bug fixes for the beta timeline, more feature parity with the old timeline, alongside some nifty enhancements to the web and the server as well. As always, new translations have been merged in, and the documentation has been updated at https://immich.app. Now, let’s dive in!

  • The default docker-compose.yml template has changed
  • Beta timeline
  • Shared link custom URL
  • Find large files utility
  • API key permission improvements

docker-compose.yml template change (optional)

The default compose file now uses /data instead of /usr/src/app/upload. This is a completely optional change and NOT a breaking change. Prior versions of Immich will continue to work without any user intervention. For more information, see #​20367.

Prior to this change, uploaded media was located at /usr/src/app/upload/upload in the container (notice the double “upload” folders), which often led to confusion. It will now be located at /data/upload, and we hope that makes things easier.

Beta timeline

Thank you to everyone who tried out the beta timeline in the last release! We have gathered a lot of great feedback, and are actively working on incorporating it. We’ve fixed a bunch of bugs and added back a bunch of previous features. Here’s a quick list/overview of beta timeline changes this release:

  • Fix the invalid timeline grouping issue

  • Fix the trash action translation keys

  • Fix the beta timeline switch missing in landscape mode

  • Fix a timeline migration bug on Android

  • Fix the text overflow issue on the action buttons

  • Fix deep links when the beta timeline is enabled

  • Fix search places not working correctly

  • Fix missing hero animation between tabs

  • Fix the backup remainder backup count issue

  • Fix the share to app upload

  • Fix the error navigating back from the backup page

  • Fix the backup indicator

  • Fix the back gesture in multi-select mode

  • Fix user profile images

  • Fix the issue downloading live photo

  • Fix the issue with sync for users with external libraries

  • Fix the issue with storage filling up for users with iCloud photos

    … and more

Immich shared links by default are long and hard to guess. This is by design and is a security mechanism to prevent unwanted access. However, the long links can be a bit awkward to use because they are difficult to read. For cases where security is less important, we have added the option to specify a custom URL.

image

Shared links with a custom URL are now also available at /s/<slug> (in addition to /share/<long-random-string>. Naturally, these links don’t share the same security benefits of the long-random-string ones, so please use them accordingly.

Find large files utility (web-only)

This release adds a new, convenient utility to find large files on your instance. You can access it by navigating to the “Utility” page on the web, and clicking “Review large files”. The page shows the largest 250 original files for your user.

image image

Improved API key permissions and documentation

Following up from the last release, we have added fine-grained permissions to more API endpoints, which are now also included in the auto-generated documentation, which can be read here.

[!CAUTION]

Related to these changes, a few API permissions have been renamed. See #​20250 for more details.

On the web, the New API Key form now includes the newly added permissions, as well as a search bar for quicker access.

image

What's Changed

🚨 Breaking Changes
🚀 Features
🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations
  • fix(mobile): distinguish backup settings title from 'backup_controller_page_backup' translation entry by @​zigarn in #​20237
  • fix(mobile): remove unused translation and pluralize existing one for map photos count by @​zigarn in #​20282
  • chore(web): update translations by @​weblate in #​20105

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.136.0...v1.137.0

v1.136.0: - 69420 stars release

Compare Source

v1.136.0 - 69420 stars release

[!CAUTION]

BREAKING CHANGES

IMMICH_MEDIA_LOCATION (#​19995)

Note: This is a different variable than UPLOAD_LOCATION, which requires no change.

Note: if you DO NOT have IMMICH_MEDIA_LOCATION in your .env file, or if it is set to a path that starts with a / (absolute path), THIS BREAKING CHANGE DOES NOT APPLY TO YOU. Users of the all-in-one image (e.g., the unraid app) for instance are not affected.


If you have a custom IMMICH_MEDIA_LOCATION environment variable set to a relative path, you will have to do the following process:

  1. Stop Immich (docker compose stop):
  2. Update Immich (docker compose pull)
  3. Update the environment variable to an absolute path, for example:
-IMMICH_MEDIA_LOCATION=./my-library
+IMMICH_MEDIA_LOCATION=/usr/src/app/my-library

  1. Start Immich (docker compose up -d --force-recreate)
  2. After the server successfully starts up, connect to it (docker exec ``*-it*`` immich_server /bin/sh) and run immich-admin change-media-location. When prompted, enter the appropriate values. For example:
docker exec -it immich_server /bin/sh

$ immich-admin change-media-location
...
? Enter the previous value of IMMICH_MEDIA_LOCATION: ./my-library
? Enter the new value of IMMICH_MEDIA_LOCATION: /usr/src/app/my-library

  Previous value: ./my-library
  Current value:  /usr/src/app/my-library

  Changing database paths from "my-library/*" to "/usr/src/app/my-library/*"

? Do you want to proceed? [Y/n] y

Matching database file paths were updated successfully! 🎉

You may now set IMMICH_MEDIA_LOCATION=/usr/src/app/my-library and restart!

Background/Motivation

Relative paths have implied ambiguity, as they depend on the current working directory to resolve correctly, leading to issues like (#​4465). This change removes this ambiguity and sets up the project to transition away from files living at /usr/src/app/upload entirely. Currently, the upload folder lives at /usr/src/app/upload/upload, which is very confusing… for everyone. This change opens to door for a future migration to something like IMMICH_DATA=/data, which a more sensible setup.

API Key changes (#​20113)

Note: This change may affect the use of third-party applications, such as ImmichGo, ImmichKios, or ImmichFrame.

This release includes a change to how API Keys work, specifically when used with routes that don’t require a specific permission. Previously, a scoped API Key could access these routes, but they will now throw a forbidden error. Routes without a declared scope now implicitly require the “all” permission.

Highlights

Welcome to release v1.136.0. This midsummer release is the culmination of the team's labor of love for the Immich community, featuring the introduction of a new timeline and sync mechanism in beta mode, Android widgets, and one of the last breaking changes we want to make before reaching the stable release milestone. Let’s dive right into it.

  • Beta mode for the new timeline, sync, and upload mechanism
  • Android widgets
  • iOS widget improvements
  • Deep links

Beta timeline, sync, and upload mechanism

[!NOTE]
This is only supported when both the server and the mobile app are updated to v1.136.0

This is a series of work that has been happening for months under the hood, from the changes in the database query engine, server’s queries, and support logic, to integrating a whole new database on the mobile app, and rewriting almost all aspects of the mobile app, you can now try the new timeline with data sync mechanism, and upload rework by go to the App Settings > Toggle the Beta timeline button. After toggling, you will be directed to a screen where data migration is executed automatically. You can then proceed to the new experience.

image

You can distinguish the beta timeline from the old one by the beta symbol next to the Immich logo in the app bar.

image

Why?

Over the past year, the major complaints we've received from users have primarily centered around the mobile app. The app simply doesn't feel premium or responsive—it's often janky and takes too long to become usable when first opened, especially when you have a large number of albums. Users can't even view their local albums unless they've selected them as backup targets. Our technical debt in the data structure has created some truly frustrating behaviors, like forcing users to re-upload everything (only to have it rejected by the server) when they switch phones and end up with a different device ID. Or local photos and videos don’t show up until they are all hashed, which could take a while.

We've realized we can't honestly call the application stable or confidently recommend it to everyone until we resolve these fundamental problems. We genuinely want this app to be excellent. We want the user experience to be seamless and delightful—we want you to feel genuinely happy when you open Immich to browse through your precious memories.

What’s new?
Data sync
  • The data sync is now running in a background thread, separate from the UI thread. This means that during data synchronization, the app will remain smooth to browse.
  • The data sync speed should be improved drastically. The data is being streamed to the mobile app instead of being sent there in a single large chunk. This will help users with a massive library.
  • The calculation of which data needs to be retrieved from the server is now performed on the server, rather than being calculated by the mobile app previously. This means lower CPU usage on the mobile app and quicker incremental sync.
  • The mobile app will now retrieve data from the server and maintain similar database tables within the app. This restructuring enables better offline operation and supports more complex usage behaviors.
Timeline/Display experience
  • The new timeline has been rewritten from the ground up to enhance scrolling and dragging behavior, making it easier for you to navigate the timeline.
  • The detail viewer is now more interactive, allowing you to scroll between photos or videos when the bottom detail sheet is opened.
  • The album views and other collection views are more lively, featuring a parallax effect to make your album/collection feel alive with mesmerizing animation.
  • You can now view all albums on the device, regardless of which album you have selected as the target for backing up. You can view them in the `Library > On this device` section. For users who want to select individual assets to back up to the server, they can perform that operation from here.
Upload
  • The upload mechanism has been rewritten from the ground up.
  • Upload is now handled by the OS, allowing for a better background upload operation. Instead of handling the uploading ourselves, we are now placing the photos and videos in a queue, which will run continuously when the Immich app is opened in the foreground and for a few minutes after it is put into the background. Then the OS will take over and start pulling tasks from the queue, handling the upload process by itself.
  • Starting the upload progress is now invoked from a toggle button

image

  • Uploads are now running in parallel . The new upload detail page displays which assets are being uploaded and whether they are experiencing issues or stuck. You can tap on each item to see exactly which asset is causing the problem.

image

image

  • On Android, there is no longer a virtual Recents album that includes all assets. Instead, there is a button to select all albums for backup.
  • In the backup album selection screen, you can now search for the album you want to back up.
Expectations of the beta version of the mentioned mechanisms
  • The app should be very smooth to browse around during the initial login and subsequent app openings.
  • Collections (favorite, archived, locked folder, etc.) and album views should make you feel nice, cozy, and delighted.
  • Background queuing of newly taken photos is not yet implemented. We will start working on this next.
  • Some views are not yet ported over to the new implementation, such as, but not limited to
    • People view
    • Map view
  • Some mechanisms are still missing from the previous implementation, such as, but not limited to
    • Add to album from multi-selection
    • Album sync when uploading
  • There are still some buggy behaviors/animations we will be ironing out in the coming days.
How can you help us?
  • Use the beta timeline and the new upload rework.
  • Report any bugs and weirdness you experience on GitHub’s issue tracker [beta] <your-title-here> as the title
  • Reach out and provide direct feedback on Discord
  • Feedback from iCloud users is greatly appreciated

Android Widgets

image

This is a follow-up to one of our most requested features: Home screen widgets! In v1.135.0 We introduced Immich widgets on iOS, which included a memory widget and a random widget. With v1.136.0, we bring these widgets to Android! Many of the improvements to iOS widgets listed below have also been incorporated into the Android version.

iOS Widget Improvements

iOS widgets have been improved with feedback from the community:

  • iOS widgets now support servers that use insecure HTTP connections
  • iOS widgets now support servers that use WebP as their preview thumbnail format
  • Tapping on the widget now takes you directly to the image in the app
  • Widgets now render properly when used on a tinted home screen
  • iOS widgets now cache the latest image for use if network access is unavailable during update. You should see fewer “Unable to connect to your Immich instance” errors on your home screen!
  • You can now choose to show images from your Favorites in the Random Widget
  • Improved error descriptions

You can now deep link into the Immich app. Supported URLs include:

  • immich://asset?id=<asset id>
  • immich://album?id=<album id>
  • immich://memory?id=<memory id>

Some my.immich.app URLs will also now open inside the mobile app:

  • https://my.immich.app/photos/<asset id>
  • https://my.immich.app/albums/<album id>

Navigating to any of these URLs (via the browser, Apple Shortcuts, NFC, or other automation frameworks) will open the corresponding resource inside the mobile app.

In other news

We missed capturing the moment when the project reached 69_420 stars, 😔


Support Immich

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

What's Changed

🚨 Breaking Changes
🚀 Features
🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.135.3...v1.136.0

v1.135.3

Compare Source

v1.135.3

  • Fixed an issue where the database migration fails on some instances with a different default database name

What's Changed

🐛 Bug fixes

Full Changelog: https://github.com/immich-app/immich/compare/v1.135.2...v1.135.3

v1.135.2

Compare Source

v1.135.2

This release addresses the following issues.

  • Fixed an issue where the database migration was not running correctly on some systems
  • Fixed an issue where the timezone causes an issue showing the web timeline in some instances, the counter resets again!

- Reverted the behavior of sorting people, it is now based on asset count as before

What's Changed

🌟 Enhancements
🐛 Bug fixes

Full Changelog: https://github.com/immich-app/immich/compare/v1.135.1...v1.135.2

v1.135.1

Compare Source

v1.135.1

Highlights

This release addresses the following issues.

  • Fixed a bug where the navigation button disappears in detail view if opened from an album
  • Fixed a bug where the local network permission prompt doesn't show up on iOS. If for some reason, you still cannot access the instance after enabling the permission, restarting the phone will fix it
  • Fixed an issue where warning messages were shown after updating the VectorChord extension
  • Fixed an issue where named people are not showing up on top of the people list
  • Fixed an issue where the web timeline does not show on some older browsers
  • iOS Widget now supports iOS 17 and above (previously supported only 18.5)

What's Changed

🐛 Bug fixes
📚 Documentation

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.135.0...v1.135.1

v1.135.0

Compare Source

v1.135.0

Highlights

Welcome to the release v1.135.0 of Immich. Another three-week gap, another ~200 PRs merged, another big release, let’s dive right in to what’s new.

  • iOS home screen widgets
  • Granular API key access control creation
  • Google Cast support on the mobile app
  • Opt-in Google Cast on the web
  • New user onboarding
  • Album description on the mobile app
  • Drag-and-drop to the locked folder on the web
  • Support for Vchord 0.4.2
  • Shortcut to navigate the timeline
  • Multiple admins support
  • Devcontainer
  • Notable fix: Double swiping issue on iOS when using the gallery viewer
iOS Home Screen Widgets
Memory Widget Random Widget

Immich now supports home screen widgets on iOS! You can now add widgets to your home screen that:

  • Display a random image from your library
  • Display a random image from an album
  • Show images from memory lane

We support all widget sizes (S, M, L, and XL on iPad). These widgets update approximately every 20 minutes and pull directly from your Immich server. Android support is coming in the near future, so keep an eye out!

[!TIP]
Your server must be on v1.135.0 for album filtering to work.

Granular API key access control creation

You can now select additional permissions when creating an API key to use in any third-party libraries or software that integrate with Immich. This mechanism will give you better control over what the other applications or libraries can do with your Immich’s instance.

Google Cast support on the mobile app

Immich now supports casting photos from the mobile app to Google Cast-enabled devices! This is a follow-up to the casting feature present on the web. We support photos and videos, similar to the web feature. This feature is not controlled by the new “Opt-in Google Cast on the web” setting since it does not require third-party resources from Google.

[!TIP]
Your server must be accessible through the server URL from the cast receiver. There is no limitation on public accessibility or an HTTPS connection requirement, unlike on the web. In addition, only assets that are uploaded to the server may be cast.

Opt-in Google Cast on the web

We received a few reports from users who were concerned about the privacy implications of Google Cast on the web. Immich needs to fetch a third-party script from Google to check if casting is supported in the browser and to communicate with the cast library in Chrome. This causes a network request to Google each time Immich is loaded.

We have made Google Cast opt-in now to remove this requirement. If you use Google Cast on the web, you may enable Google Cast for your user by going to Account Settings > Features > Settings > Cast or by using this link.

If you have previously used Google Cast on the web and would like to continue using it, you must also enable it.

New user onboarding

image

To provide a better user experience for discovering and enabling various features, settings, and preferences, all new users are now greeted with an onboarding flow on the web when they first log in. They can select their language, theme, and personal privacy settings (such as Google Cast opt-in). Any users present before updating to v1.135.0 will not experience the onboarding flow.

Album description on the mobile app

The album’s description is now displayed and editable in the mobile app. The album’s header also gets some styles to make it more presentable.

Support for Vchord 0.4.2

Right after we rolled out the VectorChord vector database extension, the library dropped a new version 0.4.2 with some significant improvements (classic timing!). We've updated our server to support it and made it the default in the docker-compose.yml file.

You don't have to upgrade, though - sticking with your current version (0.3.0) is perfectly fine. But if you want to move to the newer one, it is an option.

Keyboard Navigation in Timeline

The timeline now supports shortcuts to make navigating between days, months, and years easier.

  • Use d or shift + d to jump to an earlier or later day.
  • Use m or shift + m to jump to the earlier or later month.
  • Use y or shift + y to jump to the earlier or later year.
  • Use g to go directly to a specific date

image

Multiple admins support

You can now grant other users administrative permission by navigating to Administration > Users > View Users > Edit User and toggling the Admin option

image
Dev Containers

There is an alternative way to set up a development environment using dev containers. For more information, refer to the documentation.

Contributing has never been easier: Get started right away with a single click on this button to launch an entire development environment in GitHub’s Codespaces in the cloud.

Open in GitHub Codespaces

Along with the highlights, there are many other improvements and bug fixes. Make sure to check out the full changes below.

Support Immich

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

What's Changed

🚀 Features
🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.134.0...v1.135.0

v1.134.0

Compare Source

v1.134.0

Welcome to release v1.134.0 of Immich. This release focuses on bug fixes and enhancements from the previous release. Please find some of the highlights below:

  • Adds a new API endpoint to check the application version status
  • Adds a mechanism to handle startup reindexing after a failed model change
  • Improves pinch-to-zoom action on the mobile app
  • Replaces the administration user edit button with the action button to go straight to the user's detail page
  • Fixes a bug where generated memories include locked assets
  • Fixes a bug where the search filter panel anchors to the top of the page instead of the viewport
  • Fixes a bug where ctrl/cmd + click doesn't open the photo on a new page
  • Fixes various minor issues related to styling and z-index

Support Immich

What's Changed

🌟 Enhancements
🐛 Bug fixes
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.133.1...v1.134.0

v1.133.1

Compare Source

v1.133.1

Highlights

  • Lower disk usage during VectorChord migration
  • Adds move to locked album button to more views on the web
  • Fixes a bug where the missing button for the duplicate detection job is not working
  • Fixes a bug where a hard link does not navigate to the asset location on the timeline
  • Fixes a bug where styling information is missing in some cases
  • Fixes a bug where locked assets show up in local album view if it is presented on the phone
  • Fixes some translation issues

What's Changed

🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.133.0...

v1.133.0

Compare Source

v1.133.0 - The Hot Summer Release

[!CAUTION]

BREAKING CHANGES

  1. Mobile app version

    Please make sure to have the mobile app and the server on the same version for this release. Older versions of the mobile app will not work correctly with version v1.133.0 of the server. At the time of this release, the updated version of the mobile app should be available on the app stores.

  2. Upgrading the server from a very old release

    As of 1.133.0, Immich only supports upgrading directly from 1.107.2 or later. If you’re trying to upgrade a version of Immich below this, please upgrade to 1.107.2 first and ensure Immich starts up successfully before continuing to the latest release.

  3. New database vector extension

    We are migrating off the deprecated pgvecto.rs database extension to its successor VectorChord, which comes with performance improvements in almost all aspects. This change is a major milestone we want to perform prior to the stable release.

Before making any other changes, please back up your database. While every effort has been made to make this migration as smooth as possible, there’s always a chance that something can go wrong.

After making a backup, please modify your docker-compose.yml file with the following information.

  [...] 

  database:
    container_name: immich_postgres
-   image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@&#8203;sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52
+   image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
+     # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
+     # DB_STORAGE_TYPE: 'HDD'
    volumes:

### Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
-   healthcheck:
-     test: >-
-       pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1;
-       Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align
-       --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')";
-       echo "checksum failure count is $$Chksum";
-       [ "$$Chksum" = '0' ] || exit 1
-     interval: 5m
-     start_interval: 30s
-     start_period: 5m
-   command: >-
-     postgres
-     -c shared_preload_libraries=vectors.so
-     -c 'search_path="$$user", public, vectors'
-     -c logging_collector=on
-     -c max_wal_size=2GB
-     -c shared_buffers=512MB
-     -c wal_compression=on
    restart: always

    [...]

If you deviated from the defaults of pg14 or pgvectors0.2.0, you must adjust the pg major version and pgvecto.rs version. If you are still using the default docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 image, you can just follow the changes above. For example, if the previous image is docker.io/tensorchord/pgvecto-rs:pg16-v0.3.0, the new image should be ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0 instead of the image specified in the diff.

After making these changes, you can start Immich as normal. Immich will make some changes to the DB during startup, which can take seconds to minutes to finish, depending on hardware and library size. In particular, it’s normal for the server logs to be seemingly stuck at Reindexing clip_index and Reindexing face_indexfor some time if you have over 100k assets in Immich and/or Immich is on a relatively weak server. If you see these logs and there are no errors, just give it time.

[!IMPORTANT]
Note: after switching to VectorChord, you should not downgrade Immich below 1.133.0.

Please don’t hesitate to contact us here on GitHub or Discord if you encounter migration issues.

VectorChord FAQ

I have a separate PostgreSQL instance shared with multiple services. How can I switch to VectorChord?

Please see https://immich.app/docs/administration/postgres-standalone#migrating-to-vectorchord for migration instructions. The migration path will be different depending on whether you’re currently using pgvecto.rs or pgvector, as well as whether Immich has superuser DB permissions.

What will happen if I upgrade Immich to 1.133.0 without changing the DB image?

Immich will auto-detect the vector extension available in the DB and continue to work without manual intervention. However, we will drop support for pgvecto.rs in a later release, so please switch at your convenience.

I’m using a different deployment method than Docker Compose. How should I migrate?

If you’re using Immich through turnkey deployment methods such as TrueNAS apps, the respective maintainers will either perform the migration transparently or inform you of what to do if not.

Why are so many lines removed from the docker-compose.yml file? Does this mean the health check is removed?

These lines are now incorporated into the image itself along with some additional tuning.

What does this change mean for my existing DB backups?

The new DB image includes pgvector and pgvecto.rs in addition to VectorChord, so you can use this image to restore from existing backups that used either of these extensions. However, backups made after switching to VectorChord require an image containing VectorChord to restore successfully.

Do I still need pgvecto.rs installed after migrating to VectorChord?

pgvecto.rs only needs to be available during the migration, or if you need to restore from a backup that used pgvecto.rs. For a leaner DB and a smaller image, you can optionally switch to an image variant that doesn’t have pgvecto.rs installed after you’ve performed the migration and started Immich: ghcr.io/immich-app/postgres:14-vectorchord0.3.0, changing the PostgreSQL version as appropriate.

Why does it matter whether my database is on an SSD or an HDD?

These storage mediums have different performance characteristics. As a result, the optimal settings for an SSD are not the same as those for an HDD. Either configuration is compatible with SSD and HDD, but using the right configuration will make Immich snappier. As a general tip, we recommend users store the database on an SSD whenever possible.

Can I use the new database image as a general PostgreSQL image outside of Immich?

It’s a standard PostgreSQL container image that additionally contains the VectorChord, pgvector, and (optionally) pgvecto.rs extensions. If you were using the previous pgvecto.rs image for other purposes, you can similarly do so with this image.

If pgvecto.rs and pgvector still work, why should I switch to VectorChord?

VectorChord is faster, more stable, uses less RAM, and (with the settings Immich uses) offers higher-quality results than pgvector and pgvecto.rs. This translates to better search and facial recognition experiences. In addition, pgvecto.rs support will be dropped in the future, so changing it sooner will avoid disruption.


Highlights

Welcome to the release v1.133.0 of Immich, which is the hottest release yet for this summer, with more than 200 commits since the last version. This version brings you a new database extension, an even more optimized and faster timeline, more unified components on the web, some cool new features that have been requested for a long time, and many bug fixes and improvements. Let’s dive in!

  • VectorChord database extension
  • In-app notification
  • Show map in albums view (web only)
  • Locked folder
  • Google Cast Support (web only)
  • User detail page
  • RTL text support on the web
  • Performance improvement in web timeline
  • Notable fix: thumbnail caching issue on the mobile app
  • Notable fix: For users who use OAuth, you can now configure TOKEN_ENDPOINT_AUTH_METHOD to either client_sect_post or client_secret_basic after entering the CLIENT_SECRET
  • Sneak peek
In-app notification

Introducing an in-app, or internal, notification system. Previously, there was no way to notify you on the client if a database backup failed. Now, the failed backup will show up under a new notification section on the web. This mechanism paves the way for other helpful notifications, such as when a new album is shared with you or when new assets are added to a shared album, directly in the app.

Show map in albums view

On the web, you can now click this button to see the map view that shows the location of all the photos and videos in an album.

Locked folder

Have you ever taken embarrassing selfies that you don’t want anyone to see, and worry that you could accidentally reveal them while showcasing your superb Immich library? Locked folder view got you covered, with a personal PIN code, and an option to use biometric verification on the mobile app. You can access the page from the sidebar on the web or in the Library page on the app

https://github.com/user-attachments/assets/f0d33556-54db-44fa-88cb-10399cd2df2d

)

You can select any assets and add them to the locked folder. They will only be shown in the locked folder view.

Google Cast Support

We now have casting support! Immich now supports casting to Google Cast enabled devices like the Google Chromecast. This feature is currently only available on the web, with mobile app support coming in the near future. You can use images, videos and slideshows with casting.

image image

[!NOTE]

Your Immich instance must be accessed through a public HTTPS endpoint in order for the casting device to successfully load media. Accessing the instance and casting from a private HTTPS endpoint (or an HTTP endpoint) will result in the cast receiver failing to load any media.

User detail page

From the user management page of the admin view, you can now get a more in-depth view of individual users for their information, usage statistics, and which features they have enabled, etc, by clicking on the email from the user’s table

image image

RTL text support on the web

The web styling has been changed to accommodate RTL languages

image
Performance improvement in web timeline

Last time, we discussed thinking that the timeline performance has reached its prime and that adding more gains would be difficult. In this release, we managed to squeeze that gain like a ripe orange.

The timeline will automatically cancel the requests to the server when you scroll very fast, displaying the thumbnails instantaneously when the scrolling stops. Previously, the web needed to finish the requests for the thumbnails being scrolled by, even if they are not displayed on the viewport. This change significantly reduces the load time.

An additional optimization has been made to reduce the data packet for each thumbnail to about 30% of its original size. This optimization contributes to a greater loading speed on the timeline.

We hope you enjoy these impressive improvements.

Sneak Peak

Besides the cool features and enhancements that made their way into the application, along with many bug fixes, our highest priority at the moment is moving toward the stable release. A big chunk of time and dedication from the team is now spent on improving the mobile app synchronization system, basically rewriting the flow and designing the data model from the ground up. At the same time, we’re working to properly allocate CPU-intensive tasks to background threads to avoid app stuttering and jerkiness when the data sync between the server and the mobile app happens.

Below is the chart result comparing the local album sync between the current version and the reworked version.

Current version
image

Improved version
image

We are working hard to get it into the application in the coming months and are very excited about this new improvement.

Cheers!

The Immich Team

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

What's Changed

🚨 Breaking Changes
🚀 Features
🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.132.3...


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

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 has been generated by Renovate Bot.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/immich-app/immich-server](https://github.com/immich-app/immich) | major | `v1.132.3` -> `v2.0.0` | --- ### Release Notes <details> <summary>immich-app/immich (ghcr.io/immich-app/immich-server)</summary> ### [`v2.0.0`](https://github.com/immich-app/immich/releases/tag/v2.0.0): - Stable Release [Compare Source](https://github.com/immich-app/immich/compare/v1.144.1...v2.0.0) ### v2.0.0 - Stable Release Welcome to the release `v2.0.0` of Immich. This release marks the first stable version of Immich. You can read our announcement blog post [here](https://github.com/immich-app/immich/discussions/22546) to learn what stable means for Immich, what you can expect from a stable version, along with our future plans. Of course, it wouldn't be complete without a few surprises. To update to this version, no special steps are required. Compose pull and compose up, and you are now on `v2.0.0`. Additionally, there are a few noteworthy items that we have been working on in preparation for the stable release: - New homepage - New API documentation - New community metrics #### New homepage The <https://immich.app/> website has been recently updated. It’s been rewritten with our very own UI component library, and includes a [blog](https://immich.app/blog) with a few initial posts, including one about [the new mobile sync implementation](https://immich.app/blog/sync-v2). Existing documentation has been moved to <https://docs.immich.app/>. <img width="800" alt="image" src="https://github.com/user-attachments/assets/911574d2-c8a7-46c6-a6f9-2a00d06baf3e" /> #### Better API documentation We’re also happy to announce a new version of our API documentation, which is now live at <https://api.immich.app/>. The new docs include more information about authentication, authorization & permissions, a command palette for quick navigation (press `/` or `ctrl+k`), and a built-in method to view live results. <img width="800" alt="image" src="https://github.com/user-attachments/assets/910a3539-cee2-417e-b1f9-77cb0e68e2b9" /> #### New community metrics The <https://data.immich.app/> website has also been updated to include new community metrics that show member growth on our [subreddit](https://www.reddit.com/r/immich/) and [discord server](https://discord.immich.app/). <img width="800" alt="image" src="https://github.com/user-attachments/assets/8fc418ef-cf26-4ad3-b9a6-56bdc07eb97e" /> #### What's Changed ##### 🐛 Bug fixes - fix: show un-hashed remainder assets by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22492](https://github.com/immich-app/immich/pull/22492) - fix(server): Revert update libmimalloc path ([#&#8203;22345](https://github.com/immich-app/immich/issues/22345)) by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22526](https://github.com/immich-app/immich/pull/22526) - fix: missing email button padding by [@&#8203;Funk66](https://github.com/Funk66) in [#&#8203;22529](https://github.com/immich-app/immich/pull/22529) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.144.1...v2.0.0> ### [`v1.144.1`](https://github.com/immich-app/immich/releases/tag/v1.144.1) [Compare Source](https://github.com/immich-app/immich/compare/v1.143.1...v1.144.1) ### v1.144.1 *`v1.144.0` has been made a sacrificial object to the Release God* Welcome to the release `v1.144.1` of Immich. This release marks the end of summer, with many bugs being squashed and the continuous improvement of the upload process on the new timeline. It also comes with enhancements to storage management for iCloud users when uploading a large library. The mobile app now also displays an indicator for LivePhoto or MotionPhoto, making them easier to recognize. <p align="center"> <img width="400" alt="image" src="https://github.com/user-attachments/assets/aaee8542-bb4c-4f81-bca6-3dabd40f9c89" /> </p> #### 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 v1.144.1 --> #### What's Changed ##### 🚀 Features - feat: show motion photo icon on mobile timeline tile by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;22454](https://github.com/immich-app/immich/pull/22454) ##### 🐛 Bug fixes - fix(server): update libmimalloc path by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;22345](https://github.com/immich-app/immich/pull/22345) - fix: ios export sqlite db by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22369](https://github.com/immich-app/immich/pull/22369) - fix: map attribution and other styling by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;22303](https://github.com/immich-app/immich/pull/22303) - fix: delete temp file on iOS after upload by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22364](https://github.com/immich-app/immich/pull/22364) - fix(mobile): load local thumbnails in album timeline by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;22329](https://github.com/immich-app/immich/pull/22329) - fix(mobile): scrubbing mode on scroll to date event by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;22390](https://github.com/immich-app/immich/pull/22390) - fix: local assets should not be added to album by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;22304](https://github.com/immich-app/immich/pull/22304) - feat(mobile): add unstack button by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21869](https://github.com/immich-app/immich/pull/21869) - fix: prefer remote images in new timeline by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22452](https://github.com/immich-app/immich/pull/22452) - fix: merged timeline orderby localtime by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22371](https://github.com/immich-app/immich/pull/22371) - fix: process upload only after successful remote sync by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22360](https://github.com/immich-app/immich/pull/22360) ##### 📚 Documentation - feat: docs.immich.app by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;21819](https://github.com/immich-app/immich/pull/21819) ##### 🌐 Translations - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;22343](https://github.com/immich-app/immich/pull/22343) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.143.1...v1.144.1> ### [`v1.143.1`](https://github.com/immich-app/immich/releases/tag/v1.143.1) [Compare Source](https://github.com/immich-app/immich/compare/v1.143.0...v1.143.1) ### v1.143.1 #### What's Changed ##### 🐛 Bug fixes - fix: migrate backup delay from old timeline by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22327](https://github.com/immich-app/immich/pull/22327) ##### 🌐 Translations - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;22022](https://github.com/immich-app/immich/pull/22022) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;22288](https://github.com/immich-app/immich/pull/22288) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.143.0...v1.143.1> ### [`v1.143.0`](https://github.com/immich-app/immich/releases/tag/v1.143.0) [Compare Source](https://github.com/immich-app/immich/compare/v1.142.1...v1.143.0) ### v1.143.0 > \[!NOTE] > *If you're still experiencing issues with remote assets or albums not showing up on the mobile app, please ensure that your server is updated to the latest version. If you are still having issues, try logging out and back in.* #### Highlights Welcome to release `v1.143.0` of Immich. Like all releases, this one includes the latest batch of translations. A special thanks to everyone who has contributed so far to translating the project. If you are interested in helping translate yourself, check out our project on [Weblate](https://hosted.weblate.org/projects/immich/immich/). Other than that, this release is *mostly* bug fixes, with a few minor enhancements. Now let’s dive right in! - Material 3 switch/toggle (web) [#&#8203;22100](https://github.com/immich-app/immich/issues/22100) - Bring back configurable backup settings (mobile) [#&#8203;22114](https://github.com/immich-app/immich/issues/22114) - Concurrent hashing & hashing progress (mobile) [#&#8203;21997](https://github.com/immich-app/immich/issues/21997) - Download progress (mobile) [#&#8203;22178](https://github.com/immich-app/immich/issues/22178) - Notable fix: Web modals [#&#8203;22079](https://github.com/immich-app/immich/issues/22079) - Notable fix: Mobile “freezes” [#&#8203;22111](https://github.com/immich-app/immich/issues/22111) - Notable fix: Copy image on Safari ##### Material 3 switch/toggle (web) The web project has an updated switch/toggle, thanks to [@&#8203;SevereCloud](https://github.com/SevereCloud) ([immich-app/ui#267](https://github.com/immich-app/ui/pull/267)) for that. <img width="400" alt="image" src="https://github.com/user-attachments/assets/9968ec63-1eb8-4e22-a59c-59ed37f11d42" /> ##### Bring back configurable backup settings (Android) Just like the previous timeline implementation, the new version now has similar settings for - Backup only while charging - Upload only after a minimum amount of elapsed time ##### Concurrent hashing & hashing progress (mobile) Improvements have been made to the client-side hashing implementation, which now enables hashing to happen *concurrently*. This significantly increases throughput, and now the speed is mostly limited by how fast files can be read from internal storage. The hashing process has also been updated to only hash assets from the albums selected for backups, which reduces the number of downloads for iCloud users. <img width="400" src="https://github.com/user-attachments/assets/d20499ae-0764-44fb-8679-2c07318b09e3"/> ##### Download progress (mobile) The mobile app now has a built-in download progress indicator, which makes it easy to see the progress of files being downloaded onto the device. <p align="center"> <img width="300" alt="image" src="https://github.com/user-attachments/assets/2372ac4d-f7f5-48e6-9d75-1a0d29ceb7b7" /> <img width="300" alt="image" src="https://github.com/user-attachments/assets/03f63e7e-85cd-4ba3-ada5-9a6774913cae" /> <p/> ##### Notable fix: Web modals Previous to this release, the web application would often “freeze” or become unusable after using a modal (creating a shared link, creating an api key, confirming the deletion of assets, etc.). This issue has been fixed. ##### Notable fix: Mobile “freezes” This release fixes an issue that the mobile application could occasionally “freeze”, with the thumbnails would stop loading, and certain pages would become unusable until the application was forced closed. This has proved much more challenging to solve. We determined that the cause was due to concurrent access to SQLite from background/foreground processes, which could have put the app into this state. We have taken measures to address these situations and believe the application should be much more *stable*. If you are still running into these types of issues, please let us know! ##### Notable fix: Copy image on Safari The “copy image to clipboard” functionality has long worked on non-Safari browsers, but in this release, we were finally able to identify and implement a fix. Copying an image to the clipboard should now also work on Safari. #### 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 v1.143.0 --> #### What's Changed ##### 🚀 Features - chore: bump immich/ui by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22100](https://github.com/immich-app/immich/pull/22100) - feat: add configurable backup on charging only and delay settings for android by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22114](https://github.com/immich-app/immich/pull/22114) ##### 🌟 Enhancements - feat(web): toggle theme shortcut by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22139](https://github.com/immich-app/immich/pull/22139) - refactor: hashing service by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21997](https://github.com/immich-app/immich/pull/21997) - fix: download feedback by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22178](https://github.com/immich-app/immich/pull/22178) - feat: availability checks by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22185](https://github.com/immich-app/immich/pull/22185) - feat: show preparing/hashing status in backup page by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22222](https://github.com/immich-app/immich/pull/22222) ##### 🐛 Bug fixes - fix: close menu anchor on navigation by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22021](https://github.com/immich-app/immich/pull/22021) - fix: sidebar link hightlight by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22035](https://github.com/immich-app/immich/pull/22035) - fix(oauth): omit blank pkce from url when not supported by [@&#8203;uphillcheddar](https://github.com/uphillcheddar) in [#&#8203;21976](https://github.com/immich-app/immich/pull/21976) - fix(server): bulk edit rating by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21839](https://github.com/immich-app/immich/pull/21839) - fix: distance of segment label overlapsed scrubber label by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22043](https://github.com/immich-app/immich/pull/22043) - fix: navigate to time by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22078](https://github.com/immich-app/immich/pull/22078) - fix(web): issue with modal locking the page by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22079](https://github.com/immich-app/immich/pull/22079) - fix(mobile): prevent concurrent refresh and processing tasks by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;22111](https://github.com/immich-app/immich/pull/22111) - chore(deps): bump flutter to 3.35.3 by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;22054](https://github.com/immich-app/immich/pull/22054) - fix: poll counts from DB rather than using callbacks from library by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22117](https://github.com/immich-app/immich/pull/22117) - fix: beta migration check by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22092](https://github.com/immich-app/immich/pull/22092) - fix: ensure background worker is scheduled when the app is dismissed by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22032](https://github.com/immich-app/immich/pull/22032) - fix: display album image in selection mode by [@&#8203;vitoksmile](https://github.com/vitoksmile) in [#&#8203;22087](https://github.com/immich-app/immich/pull/22087) - fix: initial size of bottom sheet by [@&#8203;vitoksmile](https://github.com/vitoksmile) in [#&#8203;22085](https://github.com/immich-app/immich/pull/22085) - fix: Refresh photo after updating featured photo by [@&#8203;stewx](https://github.com/stewx) in [#&#8203;21971](https://github.com/immich-app/immich/pull/21971) - fix(mobile): load original image by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;22142](https://github.com/immich-app/immich/pull/22142) - fix: show delete on device when asset has a local match by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22143](https://github.com/immich-app/immich/pull/22143) - fix: do not migrate existing users by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22146](https://github.com/immich-app/immich/pull/22146) - fix(web): download panel by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22150](https://github.com/immich-app/immich/pull/22150) - fix(mobile): thumbnail shimmering effect by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;22158](https://github.com/immich-app/immich/pull/22158) - fix: asset viewer background isn't shown by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22161](https://github.com/immich-app/immich/pull/22161) - fix: show thumbnail instantly when jumping to top of the page by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22163](https://github.com/immich-app/immich/pull/22163) - fix(mobile): stack row blocking gestures and not showing up by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21854](https://github.com/immich-app/immich/pull/21854) - chore: refresh backup stats when entering backup page by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21977](https://github.com/immich-app/immich/pull/21977) - fix: display thumbnail while scrubbing paused by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22164](https://github.com/immich-app/immich/pull/22164) - fix(web): do not upscale small pictures by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22191](https://github.com/immich-app/immich/pull/22191) - fix: get scrubber in search view working by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;22175](https://github.com/immich-app/immich/pull/22175) - fix: sqlite parameters limit by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22119](https://github.com/immich-app/immich/pull/22119) - fix(mobile): smaller search page size by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22210](https://github.com/immich-app/immich/pull/22210) - fix: automatically remove leading/trailing whitespace from search que… by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22214](https://github.com/immich-app/immich/pull/22214) - fix(web): show danger/warning when taken dates overlap by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22213](https://github.com/immich-app/immich/pull/22213) - fix(web): copy to clipboard on safari by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22217](https://github.com/immich-app/immich/pull/22217) - fix(web): only copy images via canvas by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;22225](https://github.com/immich-app/immich/pull/22225) - fix: local share action not working on iPad by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22238](https://github.com/immich-app/immich/pull/22238) - fix: retain scroll position on scale update by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;22237](https://github.com/immich-app/immich/pull/22237) ##### 📚 Documentation - docs: add community immich-birthday and immich-stack projects by [@&#8203;sid3windr](https://github.com/sid3windr) in [#&#8203;21934](https://github.com/immich-app/immich/pull/21934) - chore(docs): add an updated Podman/Quadlets community guide by [@&#8203;linux-universe](https://github.com/linux-universe) in [#&#8203;20744](https://github.com/immich-app/immich/pull/20744) ##### 🌐 Translations - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;21842](https://github.com/immich-app/immich/pull/21842) #### New Contributors - [@&#8203;uphillcheddar](https://github.com/uphillcheddar) made their first contribution in [#&#8203;21976](https://github.com/immich-app/immich/pull/21976) - [@&#8203;sid3windr](https://github.com/sid3windr) made their first contribution in [#&#8203;21934](https://github.com/immich-app/immich/pull/21934) - [@&#8203;linux-universe](https://github.com/linux-universe) made their first contribution in [#&#8203;20744](https://github.com/immich-app/immich/pull/20744) - [@&#8203;vitoksmile](https://github.com/vitoksmile) made their first contribution in [#&#8203;22087](https://github.com/immich-app/immich/pull/22087) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.142.1...v1.143.0> ### [`v1.142.1`](https://github.com/immich-app/immich/releases/tag/v1.142.1) [Compare Source](https://github.com/immich-app/immich/compare/v1.142.0...v1.142.1) ### v1.142.1 *Hey guys, Alex here.* *Sorry about the rocky release of version `v1.142.0`. Instead of giving you guys a better experience with the timeline, a mistake in the migration flow code that I wrote put the app into an erroneous state that makes it seem like the new timeline isn't working at all, and the only way to fix that was to log out and log back in manually. For that, I personally apologize for the inconvenience and the frustration that I caused over the weekend. This patch release addresses those issues and some other bugs that were reported over the weekend. If you have problems, please don't hesitate to reach out to me or the team on Discord or GitHub* *Alex* *** In release `v1.142.0`, during the migration from the old timeline to the new one on the mobile app, the sync checkpoint isn't getting reset, leading to the data not being pulled from the server. During the development of the new timeline, while on the old timeline, the sync endpoint might have been triggered at some points. The missing sync information creates a perception of data loss and mismatched sync information for the mobile app. This release reset the sync checkpoints so that they can be pulled down correctly for everyone. > \[!TIP] > For the new timeline to pull the correct information, please consider updating your server to the latest version. We have seen reports that the timeline isn't working because it was connecting to an older version of the server This patch release also addresses the reliability of background sync on Android. We suggest that you don't swipe away to dismiss the app, but keep it in the background; this will prevent the background worker from being terminated by the OS. Further optimization of the background worker's operation when the app is dismissed will be implemented in the next few days, pending additional testing. #### What's Changed ##### 🐛 Bug fixes - fix: format point count numbers on map view by [@&#8203;stewx](https://github.com/stewx) in [#&#8203;21848](https://github.com/immich-app/immich/pull/21848) - chore: improve context button accessibility by [@&#8203;stewx](https://github.com/stewx) in [#&#8203;21876](https://github.com/immich-app/immich/pull/21876) - fix: z-index of top bar on show/hide people view by [@&#8203;stewx](https://github.com/stewx) in [#&#8203;21847](https://github.com/immich-app/immich/pull/21847) - fix: keep adequate space around page title by [@&#8203;stewx](https://github.com/stewx) in [#&#8203;21881](https://github.com/immich-app/immich/pull/21881) - chore: improve date text slide-in transition by [@&#8203;stewx](https://github.com/stewx) in [#&#8203;21879](https://github.com/immich-app/immich/pull/21879) - fix: context menu jank by [@&#8203;stewx](https://github.com/stewx) in [#&#8203;21844](https://github.com/immich-app/immich/pull/21844) - fix: do not show stack action if there is only one selection by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21868](https://github.com/immich-app/immich/pull/21868) - fix: show view in timeline from search page by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21873](https://github.com/immich-app/immich/pull/21873) - fix(mobile): double hero animation by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21927](https://github.com/immich-app/immich/pull/21927) - fix: complete does not destroy engine on close by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21943](https://github.com/immich-app/immich/pull/21943) - feat: disable snapping when a timeline has less than 12 months by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;21649](https://github.com/immich-app/immich/pull/21649) - fix: do not listen for store updates in isolates by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21947](https://github.com/immich-app/immich/pull/21947) - fix: check if preferencesStore is defined by [@&#8203;piscis](https://github.com/piscis) in [#&#8203;21958](https://github.com/immich-app/immich/pull/21958) - fix: reset sqlite on beta migration by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20735](https://github.com/immich-app/immich/pull/20735) - fix: move startInitialization to inside the doWork method by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21984](https://github.com/immich-app/immich/pull/21984) - chore: making order of background tasks better by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21928](https://github.com/immich-app/immich/pull/21928) - chore(mobile): minor changes to bottom sheet by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;22008](https://github.com/immich-app/immich/pull/22008) #### New Contributors - [@&#8203;stewx](https://github.com/stewx) made their first contribution in [#&#8203;21848](https://github.com/immich-app/immich/pull/21848) - [@&#8203;piscis](https://github.com/piscis) made their first contribution in [#&#8203;21958](https://github.com/immich-app/immich/pull/21958) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.142.0...v1.142.1> ### [`v1.142.0`](https://github.com/immich-app/immich/releases/tag/v1.142.0) [Compare Source](https://github.com/immich-app/immich/compare/v1.141.1...v1.142.0) ### v1.142.0 #### Highlights Welcome to release `v1.142.0` of Immich. Starting with this version, the beta timeline is now the default version for the app. When you first open the app after updating, it will check and run the on-device migration steps for those that are on the old timeline, after that you can close and relaunch the app to start with a better app experience. We want to express our sincere gratitude again for the users who have been using the new version to help us polish it, and for those who work closely with us to tackle weird bugs. As always, this version comes with many bug fixes for the server, web and the mobile app. Let’s dive into some of the highlights below. - Resume all paused jobs - Geolocation utility improvements - Read-only mode toggle on the mobile app has changed to a long-press behavior instead of a double-tap - Notable fix: Raspberry Pi 4 crashes when generating thumbnails - If you were affected by this bug and set the environmental variable `VIPS_NOVECTOR=1`, you should remove this variable when upgrading to this Immich release or above ##### Resume all paused jobs The job administration page now comes with a resume all button. This is especially helpful for users who are importing their libraries to Immich via [immich-go](https://github.com/simulot/immich-go), which pauses all jobs during upload, including background jobs not visible in the UI. If the process fails mid-way, the jobs stay paused until the admin either recreates the Redis container or manually resumes them. If you’ve been having problems with the trash not clearing or memories not generating, make sure to check this button. <img width="800" alt="image" src="https://github.com/user-attachments/assets/a55362b7-21bc-48d1-acbc-47a7fdf395db" /> ##### Geolocation utility improvements The geolocation utility has been converted to a timeline view, so you can easily scroll through your entire library while investigating <img width="800" alt="image" src="https://github.com/user-attachments/assets/e38c7b39-1b0d-4552-94b2-444579f2e137" /> You can now browse the timeline, and at the same time, fill in the missing coordinates for your assets. Thanks [@&#8203;Johannbr](https://github.com/Johannbr) for your continued work on this. #### 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> #### What's Changed ##### 🫥 Deprecated Changes - feat: add partner create endpoint by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21625](https://github.com/immich-app/immich/pull/21625) - chore: deprecate `replaceAsset` by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21791](https://github.com/immich-app/immich/pull/21791) ##### 🚀 Features - feat: workflow for automated translations merge by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;21639](https://github.com/immich-app/immich/pull/21639) - chore: make beta timeline the default by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21751](https://github.com/immich-app/immich/pull/21751) ##### 🌟 Enhancements - feat: add button to unpause all queues by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;21685](https://github.com/immich-app/immich/pull/21685) - feat(web): use timeline in geolocation manager by [@&#8203;Johannbr](https://github.com/Johannbr) in [#&#8203;21492](https://github.com/immich-app/immich/pull/21492) ##### 🐛 Bug fixes - fix(server): remove pcm from default accepted codecs by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21655](https://github.com/immich-app/immich/pull/21655) - fix(server): valid backups with `DB_URL` env variable config by [@&#8203;peterbuga](https://github.com/peterbuga) in [#&#8203;21669](https://github.com/immich-app/immich/pull/21669) - feat: sync AuthUserV1 by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21565](https://github.com/immich-app/immich/pull/21565) - fix: prevent isolate deadlock by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21692](https://github.com/immich-app/immich/pull/21692) - fix: use relative path in [start.sh](http://start.sh) by [@&#8203;dvdkon](https://github.com/dvdkon) in [#&#8203;20434](https://github.com/immich-app/immich/pull/20434) - fix: prefer Creation Date over Create Date by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21756](https://github.com/immich-app/immich/pull/21756) - fix(web): cancel uploads on logout by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21760](https://github.com/immich-app/immich/pull/21760) - fix(web): transparent background color by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21747](https://github.com/immich-app/immich/pull/21747) - fix(web): website frozen after modal closes by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21752](https://github.com/immich-app/immich/pull/21752) - fix(web): map popup accessibility by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21759](https://github.com/immich-app/immich/pull/21759) - fix(server): correct immich-cli symlink in Immich docker image by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;21318](https://github.com/immich-app/immich/pull/21318) - fix: welcome email password by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21732](https://github.com/immich-app/immich/pull/21732) - fix(mobile): Change read-only mode activation method to remove double click lag by [@&#8203;goalie2002](https://github.com/goalie2002) in [#&#8203;21743](https://github.com/immich-app/immich/pull/21743) - fix(web): memory viewer arrow navigation by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;19400](https://github.com/immich-app/immich/pull/19400) - chore(deps): update base image to trixie by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21786](https://github.com/immich-app/immich/pull/21786) - fix(web): asset refresh by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21788](https://github.com/immich-app/immich/pull/21788) - fix(web): map in album shared link by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21793](https://github.com/immich-app/immich/pull/21793) - fix(server): validate token permission by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21802](https://github.com/immich-app/immich/pull/21802) - fix: android background backups by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21795](https://github.com/immich-app/immich/pull/21795) - fix: concurrency issue by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21830](https://github.com/immich-app/immich/pull/21830) - fix: always use en locale for parsing timeline datetime by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21796](https://github.com/immich-app/immich/pull/21796) - fix(web): handle buckets before year 1000 by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21832](https://github.com/immich-app/immich/pull/21832) ##### 📚 Documentation - docs: be explicit about which container exposes metrics by [@&#8203;per-review](https://github.com/per-review) in [#&#8203;20424](https://github.com/immich-app/immich/pull/20424) - docs: add community immich drop uploader project by [@&#8203;papuass](https://github.com/papuass) in [#&#8203;21775](https://github.com/immich-app/immich/pull/21775) - fix(docs): fix the SQL query for finding assets with missing thumbnails by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;21770](https://github.com/immich-app/immich/pull/21770) - docs: improve and clarify XMP sidecar behavior by [@&#8203;trommegutten](https://github.com/trommegutten) in [#&#8203;20334](https://github.com/immich-app/immich/pull/20334) - docs: update tag details by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21815](https://github.com/immich-app/immich/pull/21815) ##### 🌐 Translations - chore: update README by [@&#8203;zvirja](https://github.com/zvirja) in [#&#8203;21718](https://github.com/immich-app/immich/pull/21718) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;21624](https://github.com/immich-app/immich/pull/21624) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;21814](https://github.com/immich-app/immich/pull/21814) #### New Contributors - [@&#8203;peterbuga](https://github.com/peterbuga) made their first contribution in [#&#8203;21669](https://github.com/immich-app/immich/pull/21669) - [@&#8203;per-review](https://github.com/per-review) made their first contribution in [#&#8203;20424](https://github.com/immich-app/immich/pull/20424) - [@&#8203;papuass](https://github.com/papuass) made their first contribution in [#&#8203;21775](https://github.com/immich-app/immich/pull/21775) - [@&#8203;zvirja](https://github.com/zvirja) made their first contribution in [#&#8203;21718](https://github.com/immich-app/immich/pull/21718) - [@&#8203;trommegutten](https://github.com/trommegutten) made their first contribution in [#&#8203;20334](https://github.com/immich-app/immich/pull/20334) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.141.1...v1.142.0> ### [`v1.141.1`](https://github.com/immich-app/immich/releases/tag/v1.141.1) [Compare Source](https://github.com/immich-app/immich/compare/v1.140.1...v1.141.1) ### v1.141.1 #### Highlight Welcome to the release `v1.141.1` of Immich, as hot as this summer gets, the beta timeline is ready to be taken out of the kitchen, now with more features and bug fixes. Let’s dive right in while it’s still hot - \[beta] Auto-add uploaded assets to albums - View similar photos - DigitalOcean 1-click deployment - Notable fix - thumbnail generation for 200MP HEIC images ##### \[beta] Auto-add uploaded assets to albums. This feature has made its way back to the beta timeline. You can enable this feature on the `Backup Options` page. The current selected albums for backup will be linked with the album of the same name on the server, or a new album will be created if those albums don’t exist. Assets uploaded will be placed in the respective linked album. <p align="center"> <img width="300" alt="image" src="https://github.com/user-attachments/assets/06aee5e9-c228-47af-8f66-1e42954e4964" /> </p> ##### View similar photos On the web, you can now look for similar photos or videos when viewing an asset by clicking on the `context menu > Find similar photos`. Powered by CLIP search to quickly identify photos with similar scenery and context <p align="center"> <img width="600" alt="image" src="https://github.com/user-attachments/assets/88e92f5d-28a3-44c6-8a35-7205ec901b1b" /> <img width="600" alt="image" src="https://github.com/user-attachments/assets/bd9ce189-652c-490b-8e3b-f07c981aaa1a" /> </p> ##### Digital Ocean 1-Click Deployment To help users who are interested in trying out the application without setting it up on their infrastructure, or who do not have the infrastructure available yet. We now have the option to deploy Immich directly on DigitalOcean. The default configuration is the smallest pod size that can run Immich comfortably. The new instance is set up with a default reverse proxy that handles TLS. For more information, you can read [here](https://marketplace.digitalocean.com/apps/immich). You can give it a try by clicking the button below <p align="center"> <a href="https://cloud.digitalocean.com/droplets/new?onboarding_origin=marketplace&appId=198842662&image=futo-immich&activation_redirect=%2Fdroplets%2Fnew%3FappId%3D198842662%26image%3Dfuto-immich"> <img width="252" alt="image" src="https://github.com/user-attachments/assets/096b2035-9a3f-4288-9302-13cbd1d720b9" /> </a> </p> #### 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 v1.141.1 --> #### What's Changed ##### 🚀 Features - feat: view similar photos by [@&#8203;normana10](https://github.com/normana10) in [#&#8203;21108](https://github.com/immich-app/immich/pull/21108) - feat: album info sync by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21103](https://github.com/immich-app/immich/pull/21103) ##### 🌟 Enhancements - fix(web): wait for image to load before playing memories. by [@&#8203;dagstuan](https://github.com/dagstuan) in [#&#8203;19757](https://github.com/immich-app/immich/pull/19757) - feat(mobile): copy file name by long-press by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;21469](https://github.com/immich-app/immich/pull/21469) - feat(mobile): add to albums from existing albums by [@&#8203;pedrosimao](https://github.com/pedrosimao) in [#&#8203;21554](https://github.com/immich-app/immich/pull/21554) - feat(mobile): scrubber haptics (beta timeline) by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;21351](https://github.com/immich-app/immich/pull/21351) ##### 🐛 Bug fixes - fix(mobile): readonly mode disable tabs when in landscape mode by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;21475](https://github.com/immich-app/immich/pull/21475) - fix(web): Show full date when hovering over photos date groups by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;21462](https://github.com/immich-app/immich/pull/21462) - fix(mobile): increase thumbnail resolution by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21502](https://github.com/immich-app/immich/pull/21502) - fix: show TabShellRoute when cold starting from deeplink by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;21376](https://github.com/immich-app/immich/pull/21376) - fix: filter null duplicate assets by [@&#8203;ItzDerock](https://github.com/ItzDerock) in [#&#8203;21507](https://github.com/immich-app/immich/pull/21507) - fix(mobile): decoding at higher resolution than necessary by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21503](https://github.com/immich-app/immich/pull/21503) - fix(mobile): ensure current asset is set in asset viewer by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21504](https://github.com/immich-app/immich/pull/21504) - fix: handle datetime outside the valid range supported by dart by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21526](https://github.com/immich-app/immich/pull/21526) - fix: set specific AssetUpload permission on checkBulkUpload endpoint by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;21470](https://github.com/immich-app/immich/pull/21470) - fix: iOS portrait photo saved as jpg extension by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21388](https://github.com/immich-app/immich/pull/21388) - fix: local sync task never runs on iOS by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21491](https://github.com/immich-app/immich/pull/21491) - fix: keyboard not dismissed in places page by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21583](https://github.com/immich-app/immich/pull/21583) - fix(mobile): pause image loading on inactive state by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21543](https://github.com/immich-app/immich/pull/21543) - fix(mobile): readonly mode fixes by [@&#8203;Sud-Puth](https://github.com/Sud-Puth) in [#&#8203;21545](https://github.com/immich-app/immich/pull/21545) - fix(mobile): Hide system UI when entering immersive mode in asset viewer by [@&#8203;goalie2002](https://github.com/goalie2002) in [#&#8203;21539](https://github.com/immich-app/immich/pull/21539) - fix(web): Make Manage location utility header responsive by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;21480](https://github.com/immich-app/immich/pull/21480) - fix(mobile): pinch + move scale by [@&#8203;waclaw66](https://github.com/waclaw66) in [#&#8203;21332](https://github.com/immich-app/immich/pull/21332) - fix: retain filter and sort options when pulling to refresh by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;21452](https://github.com/immich-app/immich/pull/21452) - fix: sidecar check job by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21312](https://github.com/immich-app/immich/pull/21312) - fix: use lock to synchronise foreground and background backup by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21522](https://github.com/immich-app/immich/pull/21522) - fix: asset upload metadata validation by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21594](https://github.com/immich-app/immich/pull/21594) - chore(deps): bump sharp to 0.34.3 by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21596](https://github.com/immich-app/immich/pull/21596) - fix(mobile): Correction of image creation date by using mtime instead… by [@&#8203;StarGest](https://github.com/StarGest) in [#&#8203;21508](https://github.com/immich-app/immich/pull/21508) - fix(mobile): location button map beta timeline by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;21590](https://github.com/immich-app/immich/pull/21590) - fix(server): consider asset creation date when EXIF is missing by [@&#8203;riccardoruspoli](https://github.com/riccardoruspoli) in [#&#8203;21586](https://github.com/immich-app/immich/pull/21586) - fix: memory not getting refreshed on new day by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21623](https://github.com/immich-app/immich/pull/21623) - chore: robust isolation tasks coordination by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21605](https://github.com/immich-app/immich/pull/21605) ##### 🌐 Translations - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;21130](https://github.com/immich-app/immich/pull/21130) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;21464](https://github.com/immich-app/immich/pull/21464) #### New Contributors - [@&#8203;ItzDerock](https://github.com/ItzDerock) made their first contribution in [#&#8203;21507](https://github.com/immich-app/immich/pull/21507) - [@&#8203;pedrosimao](https://github.com/pedrosimao) made their first contribution in [#&#8203;21554](https://github.com/immich-app/immich/pull/21554) - [@&#8203;goalie2002](https://github.com/goalie2002) made their first contribution in [#&#8203;21539](https://github.com/immich-app/immich/pull/21539) - [@&#8203;StarGest](https://github.com/StarGest) made their first contribution in [#&#8203;21508](https://github.com/immich-app/immich/pull/21508) - [@&#8203;riccardoruspoli](https://github.com/riccardoruspoli) made their first contribution in [#&#8203;21586](https://github.com/immich-app/immich/pull/21586) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.140.1...v1.141.1> ### [`v1.140.1`](https://github.com/immich-app/immich/releases/tag/v1.140.1) [Compare Source](https://github.com/immich-app/immich/compare/v1.140.0...v1.140.1) ### v1.140.1 #### What's Changed ##### 🐛 Bug fixes - fix(server): folder sort order by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;21383](https://github.com/immich-app/immich/pull/21383) - fix(server): refresh faces query by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21380](https://github.com/immich-app/immich/pull/21380) - fix(devcontainer): logging typo by [@&#8203;aaronliu0130](https://github.com/aaronliu0130) in [#&#8203;21415](https://github.com/immich-app/immich/pull/21415) - fix(mobile): memory lane query causes Photos page render a gray screen by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21422](https://github.com/immich-app/immich/pull/21422) - fix: default zoom level when location is not set by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;21428](https://github.com/immich-app/immich/pull/21428) - fix(web): Prevent changing asset location triggering keyboard shortcuts by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;21451](https://github.com/immich-app/immich/pull/21451) - fix: network criteria for upload LivePhotos by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21386](https://github.com/immich-app/immich/pull/21386) - fix: show "preparing" when sharing in beta timeline by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;21390](https://github.com/immich-app/immich/pull/21390) ##### 📚 Documentation - chore(docs): Avoid /data in external library examples by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;21357](https://github.com/immich-app/immich/pull/21357) #### New Contributors - [@&#8203;aaronliu0130](https://github.com/aaronliu0130) made their first contribution in [#&#8203;21415](https://github.com/immich-app/immich/pull/21415) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.140.0...v1.140.1> ### [`v1.140.0`](https://github.com/immich-app/immich/releases/tag/v1.140.0) [Compare Source](https://github.com/immich-app/immich/compare/v1.139.4...v1.140.0) ### v1.140.0 #### Highlights Welcome to the release `v1.140.0` of Immich, one more release, and one more day closer to 🐴 Stable-Day 🐴. This release continues the ramp-up effort to bring the beta timeline up to the same feature parity as the old one, while also addressing as many bugs as possible. Thanks to our active contributors, some cool features also made their way into this release. We encourage all Immich users to switch to the beta timeline and use it to help us identify and resolve issues. Let’s dive into the highlights of this release. - \[beta] Background sync - \[beta] Read-only mode - Location management utility ##### \[beta] Background sync The background sync feature has now been added to the beta timeline. New assets are now detected and pushed to an upload queue, which will be handled automatically by the OS. Some tasks, such as local and remote data sync, now also run in the background periodically. So that, as soon as you open the app, the newly taken assets are immediately available on the timeline. **For those who have been using the beta timeline, please toggle the upload button off then on again to enable the background workers.** ##### **\[beta] Read-only mode** For parents who have kids who want to look over photos but don’t want them to accidentally delete or perform any action on them, this feature is for you. By double-tapping on the profile photo in the app, you can only view assets in the main timeline, and all the action buttons will be hidden. Thanks, [@&#8203;Sud-Puth](https://github.com/Sud-Puth), for proposing and initiating work on this nifty feature! <img width="200" alt="image" src="https://github.com/user-attachments/assets/95c1dd1b-9dde-43a5-998d-3d974fe4e279" /> ##### Location management utility Thanks to [@&#8203;Johannbr](https://github.com/Johannbr) for putting in time and effort into this feature. You can now find and edit missing location data on a specific date. By going to `Utilities > Manage location` on the web, you will be presented with an interface to select the date to find the assets with missing GPS location and to update them in bulk <img width="800" alt="image" src="https://github.com/user-attachments/assets/add62194-c88b-4a8b-82ee-36586c49591d" /> <img width="800" alt="image" src="https://github.com/user-attachments/assets/8b49b418-26e8-4877-9084-80ef851a6960" /> #### 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> #### What's Changed ##### 🚀 Features - feat: beta background sync by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21243](https://github.com/immich-app/immich/pull/21243) - feat(web): geolocation utility by [@&#8203;Johannbr](https://github.com/Johannbr) in [#&#8203;20758](https://github.com/immich-app/immich/pull/20758) - feat(mobile): read only mode by [@&#8203;Sud-Puth](https://github.com/Sud-Puth) and [@&#8203;bwees](https://github.com/bwees) in [#&#8203;19368](https://github.com/immich-app/immich/pull/19368) ##### 🌟 Enhancements - feat: add support for custom headers to TS SDK by [@&#8203;LukeHagar](https://github.com/LukeHagar) in [#&#8203;21205](https://github.com/immich-app/immich/pull/21205) - feat: expose createdAt in getAssetInfo by [@&#8203;Wingysam](https://github.com/Wingysam) in [#&#8203;21184](https://github.com/immich-app/immich/pull/21184) - feat(web): Refresh album page after sharing by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;21283](https://github.com/immich-app/immich/pull/21283) - feat(web): Album picker shortcut info by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;21273](https://github.com/immich-app/immich/pull/21273) ##### 🐛 Bug fixes - fix: devcontainer after pnpm changes by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;21227](https://github.com/immich-app/immich/pull/21227) - fix(web): Album multi-select 'm' shortcut prevents typing m in title box by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;21249](https://github.com/immich-app/immich/pull/21249) - refactor: service worker by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21250](https://github.com/immich-app/immich/pull/21250) - fix(web): allow numeric input fields to be zero by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21258](https://github.com/immich-app/immich/pull/21258) - fix(web): Duplicate arrow shortcuts go to next/previous duplicate when viewing assets by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;21200](https://github.com/immich-app/immich/pull/21200) - fix(web): handle multiple downloads in safari by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21259](https://github.com/immich-app/immich/pull/21259) - fix: album start/end dates on shared links by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21268](https://github.com/immich-app/immich/pull/21268) - fix: prevent an offline asset from being used as a person feature photo by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21278](https://github.com/immich-app/immich/pull/21278) - fix(web): suppress auto-play errors by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21282](https://github.com/immich-app/immich/pull/21282) - fix(mobile): caching thumbnails to disk by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21275](https://github.com/immich-app/immich/pull/21275) - fix(mobile): skip animation for offscreen thumbnails by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21277](https://github.com/immich-app/immich/pull/21277) - fix: invalid storage quota with decimals by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21271](https://github.com/immich-app/immich/pull/21271) - fix(mobile): user storage quota not showing by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;21263](https://github.com/immich-app/immich/pull/21263) - fix(web): album multi-select filter doesn't include other selected albums by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;21322](https://github.com/immich-app/immich/pull/21322) - fix(mobile): capitalize month & day labels in beta timeline by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;21323](https://github.com/immich-app/immich/pull/21323) - fix: timeline scroll error handling by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21324](https://github.com/immich-app/immich/pull/21324) - fix(web): sign up double click by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21349](https://github.com/immich-app/immich/pull/21349) - fix: motion video extraction race condition by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21285](https://github.com/immich-app/immich/pull/21285) - fix(web): add primary text color to file upload toast by [@&#8203;Prajwalg19](https://github.com/Prajwalg19) in [#&#8203;21340](https://github.com/immich-app/immich/pull/21340) - fix(mobile): thumbnail requests not being cancelled by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21331](https://github.com/immich-app/immich/pull/21331) - fix(mobile): memory lane rebuild by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21350](https://github.com/immich-app/immich/pull/21350) - fix(mobile): fast animations when "disable animations" enabled by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;21309](https://github.com/immich-app/immich/pull/21309) - fix(web): middle click not working on videos by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;21304](https://github.com/immich-app/immich/pull/21304) - fix(mobile): allow gestures in asset viewer before image is loaded by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21354](https://github.com/immich-app/immich/pull/21354) - fix(web): Slideshow fade occurs when not in slideshow by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;21326](https://github.com/immich-app/immich/pull/21326) ##### 📚 Documentation - docs: update italian README: better wording, add some important sections, fixed links and alt texts by [@&#8203;gablilli](https://github.com/gablilli) in [#&#8203;21221](https://github.com/immich-app/immich/pull/21221) - fix: docs typo by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21269](https://github.com/immich-app/immich/pull/21269) - chore: faq commercial guidelines by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21320](https://github.com/immich-app/immich/pull/21320) ##### 🌐 Translations - fix(web): Translate confirmation modal header and action buttons by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;21330](https://github.com/immich-app/immich/pull/21330) #### New Contributors - [@&#8203;gablilli](https://github.com/gablilli) made their first contribution in [#&#8203;21221](https://github.com/immich-app/immich/pull/21221) - [@&#8203;LukeHagar](https://github.com/LukeHagar) made their first contribution in [#&#8203;21205](https://github.com/immich-app/immich/pull/21205) - [@&#8203;Prajwalg19](https://github.com/Prajwalg19) made their first contribution in [#&#8203;21340](https://github.com/immich-app/immich/pull/21340) - [@&#8203;Johannbr](https://github.com/Johannbr) made their first contribution in [#&#8203;20758](https://github.com/immich-app/immich/pull/20758) - [@&#8203;Sud-Puth](https://github.com/Sud-Puth) made their first contribution in [#&#8203;19368](https://github.com/immich-app/immich/pull/19368) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.139.4...v1.140.0> ### [`v1.139.4`](https://github.com/immich-app/immich/releases/tag/v1.139.4) [Compare Source](https://github.com/immich-app/immich/compare/v1.139.3...v1.139.4) ### v1.139.4 #### What's Changed ##### 🐛 Bug fixes - fix: cannot load thumbnail from unknown content length by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21192](https://github.com/immich-app/immich/pull/21192) - fix: border around dark theme button on onboarding page by [@&#8203;NicholasFlamy](https://github.com/NicholasFlamy) in [#&#8203;20846](https://github.com/immich-app/immich/pull/20846) - fix(web): handle edge cases in timeToSeconds function to prevent crashes by [@&#8203;baldarn](https://github.com/baldarn) in [#&#8203;21019](https://github.com/immich-app/immich/pull/21019) - fix: use composite cache key in user circle avatar by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21220](https://github.com/immich-app/immich/pull/21220) - fix: wait for watched files to finish being written ([#&#8203;17100](https://github.com/immich-app/immich/issues/17100)) by [@&#8203;TapuCosmo](https://github.com/TapuCosmo) in [#&#8203;21180](https://github.com/immich-app/immich/pull/21180) #### New Contributors - [@&#8203;baldarn](https://github.com/baldarn) made their first contribution in [#&#8203;21019](https://github.com/immich-app/immich/pull/21019) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.139.3...v1.139.4> ### [`v1.139.3`](https://github.com/immich-app/immich/releases/tag/v1.139.3) [Compare Source](https://github.com/immich-app/immich/compare/v1.139.2...v1.139.3) ### v1.139.3 #### What's Changed ##### 🐛 Bug fixes - fix(web): add to multiple albums translation doesn't have plural formatting by [@&#8203;DevServs](https://github.com/DevServs) in [#&#8203;21087](https://github.com/immich-app/immich/pull/21087) - fix: shared album asset count query by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21157](https://github.com/immich-app/immich/pull/21157) - fix: parse correct metadata to userDto for SQlite store implmentation by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21154](https://github.com/immich-app/immich/pull/21154) - fix: sync flow block oAuth login page navigation by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21187](https://github.com/immich-app/immich/pull/21187) - fix: local offset hours by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21147](https://github.com/immich-app/immich/pull/21147) - fix: prefer local video if available by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21119](https://github.com/immich-app/immich/pull/21119) ##### 📚 Documentation - docs: update oauth.md - Authentik link leads to Page Not Found error by [@&#8203;pojlFDlxCOvZ4Kg8y1l4](https://github.com/pojlFDlxCOvZ4Kg8y1l4) in [#&#8203;21186](https://github.com/immich-app/immich/pull/21186) #### New Contributors - [@&#8203;DevServs](https://github.com/DevServs) made their first contribution in [#&#8203;21087](https://github.com/immich-app/immich/pull/21087) - [@&#8203;pojlFDlxCOvZ4Kg8y1l4](https://github.com/pojlFDlxCOvZ4Kg8y1l4) made their first contribution in [#&#8203;21186](https://github.com/immich-app/immich/pull/21186) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.139.2...v1.139.3> ### [`v1.139.2`](https://github.com/immich-app/immich/releases/tag/v1.139.2) [Compare Source](https://github.com/immich-app/immich/compare/v1.138.1...v1.139.2) ### v1.139.2 *`v1.139.0` and `v1.139.1` have made the ultimate sacrifice for switching from `npm` to `pnpm` in our release pipeline* *** Welcome to release `v1.139.2`. This version continues to bring improvements to the beta timeline, from fixing bugs to significantly improving the image rendering pipeline, especially on Android. We appreciate users who have helped us test out the beta timeline! We encourage you all to switch to it to help us catch more bugs as the stable release is nigh. Let’s dive into the highlights of this release. #### Highlights - \[beta] New image rendering pipeline - \[beta] Show remainder assets detail - Option to skip in the duplicate resolver tools - Add to multiple albums action - \[beta] Fixed the bug that upload progress doesn’t resume upon app restart (really fix it this time) ##### \[beta] New image rendering pipeline Thanks to our one and only wizard [@&#8203;mertalev](https://github.com/mertalev) 🧙, the mobile app now uses our own custom image loading and rendering pipeline, featuring multithreading and a series of other optimizations. In particular, this significantly improves displaying of local images on Android. Not only does this improve thumbnail loading speed, but local thumbnails are noticeably higher quality by avoiding compression. The experience of scrolling the timeline should now be on par with the local gallery app. Additionally, remote assets now benefit from request cancellation to avoid downloading thumbnails that are no longer relevant, further improving responsiveness when quickly scrolling the timeline. ##### \[beta] Show assets pending backup You can now view which assets are in the remaining list of backups. This helps track down problematic assets that cannot be uploaded for some reason. \*cough, iCloud assets, cough\* <p align="center"> <img width="300" alt="image" src="https://github.com/user-attachments/assets/77747baa-eb4f-4947-8dbf-9d1e48a8a547" /> <img width="300" alt="image" src="https://github.com/user-attachments/assets/4c5860a6-5ae1-46b0-9b96-90de8a874686" /> </p> ##### Option to skip an entry in the duplicate resolution utility You can now navigate back and forth to get to other entries in the duplicate list. <p align="center"> <img width="500" alt="image" src="https://github.com/user-attachments/assets/6e2a4b87-75c9-4850-a46e-1ef908b2d09f" /> </p> ##### Add to multiple albums action On the web, you can now add assets to multiple albums at once from the album selection modal. <p align="center"> <img width="500" alt="image" src="https://github.com/user-attachments/assets/71ba8834-f633-4657-856b-a1ff61f2f7dc" /> </p> #### 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 v1.139.2 --> #### What's Changed ##### 🌟 Enhancements - feat(web): Skip duplicates by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;20880](https://github.com/immich-app/immich/pull/20880) - feat: get metadata about the current api key by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;21027](https://github.com/immich-app/immich/pull/21027) - feat(web): Add to Multiple Albums by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;20072](https://github.com/immich-app/immich/pull/20072) - chore(web): make search result loading behaviour more consistent by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;20741](https://github.com/immich-app/immich/pull/20741) - feat(mobile): platform thumbnail api by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;20910](https://github.com/immich-app/immich/pull/20910) - feat(mobile): platform image providers by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;20927](https://github.com/immich-app/immich/pull/20927) - feat: show remainder assets info by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21114](https://github.com/immich-app/immich/pull/21114) - feat(mobile): optimized thumbnail widget by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;21073](https://github.com/immich-app/immich/pull/21073) - feat: add a counter to the duplicate utility by [@&#8203;normana10](https://github.com/normana10) in [#&#8203;21109](https://github.com/immich-app/immich/pull/21109) ##### 🐛 Bug fixes - fix(mobile): show most recent image in album as thumbnail by [@&#8203;aaronjamt](https://github.com/aaronjamt) in [#&#8203;21037](https://github.com/immich-app/immich/pull/21037) - fix: skip albums selected or excluded from backups from deletions by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;21116](https://github.com/immich-app/immich/pull/21116) - fix: thumbnail rendering on backup asset detail tile by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;21120](https://github.com/immich-app/immich/pull/21120) ##### 📚 Documentation - chore: update docs to use pnpm by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;21113](https://github.com/immich-app/immich/pull/21113) ##### 🌐 Translations - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;20449](https://github.com/immich-app/immich/pull/20449) #### New Contributors - [@&#8203;aaronjamt](https://github.com/aaronjamt) made their first contribution in [#&#8203;21037](https://github.com/immich-app/immich/pull/21037) - [@&#8203;normana10](https://github.com/normana10) made their first contribution in [#&#8203;21046](https://github.com/immich-app/immich/pull/21046) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.138.1...v1.139.2> ### [`v1.138.1`](https://github.com/immich-app/immich/releases/tag/v1.138.1) [Compare Source](https://github.com/immich-app/immich/compare/v1.138.0...v1.138.1) ### v1.138.1 #### What's Changed ##### 🐛 Bug fixes - fix: oauth auto-login infinite loop by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;20904](https://github.com/immich-app/immich/pull/20904) - fix(mobile): always show cast button by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20935](https://github.com/immich-app/immich/pull/20935) - fix(mobile): don't show view in timeline button when opening cast dialog by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20934](https://github.com/immich-app/immich/pull/20934) - fix: backup resume more reliable on app start up by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20907](https://github.com/immich-app/immich/pull/20907) - fix: pinch in finished as zoomed in by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20936](https://github.com/immich-app/immich/pull/20936) - fix: locked photos shown in beta timeline favorite page by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20937](https://github.com/immich-app/immich/pull/20937) - refactor: bottom sheet action button by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20964](https://github.com/immich-app/immich/pull/20964) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.138.0...v1.138.1> ### [`v1.138.0`](https://github.com/immich-app/immich/releases/tag/v1.138.0) [Compare Source](https://github.com/immich-app/immich/compare/v1.137.3...v1.138.0) ### v1.138.0 > \[!IMPORTANT] > > For users that are using the **beta timeline**, please update your server to `v1.138.0` so that the sync mechanism can work correctly. `v1.138.0` of the mobile app doesn’t sync the data correctly if your server is `v1.137.2` or below. #### Highlights Welcome to the release `v1.138.0` of Immich, this release adds many bugfixes and brings the beta timeline closer to feature parity; thank you all for helping with testing and giving feedback. Please let us know if the release fixes the issues you are facing. Let’s dive into some of the highlights below - Reset PIN code with password - Reset the OAuth ID - \[beta] swipe to delete album - \[beta] improvement in the upload and sync process - \[beta] map view with SQLite #### Reset PIN code with password In order to reset a forgotten PIN code, the admin user used to have to click the “Reset PIN code” button for the user. Now, users can reset their own PIN code by supplying their current password. Note: when password login is disabled, this option is unavailable. Reset via password <img width="400" height="622" alt="image" src="https://github.com/user-attachments/assets/c274499d-38b1-4030-8918-a8ada9707824" /> <img width="800" height="753" alt="image" src="https://github.com/user-attachments/assets/66b9afb5-d738-4aff-abf2-01abd4b85962" /> Reset via admin account <img width="800" height="321" alt="image" src="https://github.com/user-attachments/assets/6d1bb049-1620-459e-8b63-8735ec45d707" /> <img width="800" height="358" alt="image" src="https://github.com/user-attachments/assets/900236c7-7f0c-4d52-82a1-a937e87d6bf6" /> #### Reset OAuth ID Immich stores some configuration in the database to keep track of which OAuth accounts are linked to which Immich users. When migrating to a new authentication system or provider, this configuration becomes invalid and can prevent the user from logging in with the new system. A button and accompanying reminder now exists in the OAuth settings to clear or reset this configuration for all users. <img width="800" height="498" alt="image" src="https://github.com/user-attachments/assets/e6fbdf1e-a81d-437e-9064-11fef4196ca7" /> <img width="800" height="507" alt="image" src="https://github.com/user-attachments/assets/bbc5300a-9f82-4431-98e5-df1b2df2f219" /> <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### 🚨 Breaking Changes - fix: album asset sync must sync new assets in a shared album by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;20655](https://github.com/immich-app/immich/pull/20655) ##### 🚀 Features - feat(mobile): create shared link for albums by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20652](https://github.com/immich-app/immich/pull/20652) - feat(mobile): remove from album in asset viewer bar by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20672](https://github.com/immich-app/immich/pull/20672) - feat(mobile): album shared user editing by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20671](https://github.com/immich-app/immich/pull/20671) - feat: use sqlite for logging by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20414](https://github.com/immich-app/immich/pull/20414) - feat: batch change date and time relatively by [@&#8203;mkuehne707](https://github.com/mkuehne707) in [#&#8203;17717](https://github.com/immich-app/immich/pull/17717) - feat(web): reset pin code by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20766](https://github.com/immich-app/immich/pull/20766) - feat: reset oauth ids by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20798](https://github.com/immich-app/immich/pull/20798) - feat: edit image in beta timeline by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20709](https://github.com/immich-app/immich/pull/20709) - feat: swipe to delete album by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20765](https://github.com/immich-app/immich/pull/20765) ##### 🌟 Enhancements - chore: tweak photo sphere fov and zoom speed constants by [@&#8203;kNoAPP](https://github.com/kNoAPP) in [#&#8203;20595](https://github.com/immich-app/immich/pull/20595) - feat: add server.versionCheck permission by [@&#8203;mib1185](https://github.com/mib1185) in [#&#8203;20555](https://github.com/immich-app/immich/pull/20555) - refactor(mobile): sqlite-based map view by [@&#8203;mertalev](https://github.com/mertalev) and [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;20665](https://github.com/immich-app/immich/pull/20665) - chore(web): remove arbitrary search result limit by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;20719](https://github.com/immich-app/immich/pull/20719) - feat(web): don't scroll to visible assets by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;20729](https://github.com/immich-app/immich/pull/20729) - fix: change all download icons to `mdiDownload` for clarity and consistency by [@&#8203;NicholasFlamy](https://github.com/NicholasFlamy) in [#&#8203;20821](https://github.com/immich-app/immich/pull/20821) - feat: add i18n formatting to `make translation` in mobile makefile by [@&#8203;NicholasFlamy](https://github.com/NicholasFlamy) in [#&#8203;20807](https://github.com/immich-app/immich/pull/20807) - feat: format date and time in /admin/users/ -> Profile section by [@&#8203;miroslawlis](https://github.com/miroslawlis) in [#&#8203;20811](https://github.com/immich-app/immich/pull/20811) ##### 🐛 Bug fixes - fix(mobile): use right translation function for pluralized ICU message format by [@&#8203;zigarn](https://github.com/zigarn) in [#&#8203;20404](https://github.com/immich-app/immich/pull/20404) - fix: add assets to album by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20626](https://github.com/immich-app/immich/pull/20626) - fix: hide navigation bar in search page during multi-selection by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20616](https://github.com/immich-app/immich/pull/20616) - fix: adjust search bar padding and visibility based on input state by [@&#8203;wojtaszek171](https://github.com/wojtaszek171) in [#&#8203;20598](https://github.com/immich-app/immich/pull/20598) - fix(mobile): fetch serverConfig before building shared link by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20638](https://github.com/immich-app/immich/pull/20638) - fix: exif rating rounding by [@&#8203;cford256](https://github.com/cford256) in [#&#8203;20457](https://github.com/immich-app/immich/pull/20457) - fix: improvements to sync and upload when resuming app by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;20524](https://github.com/immich-app/immich/pull/20524) - fix(mobile): cleanly handle logout when no host is set by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20521](https://github.com/immich-app/immich/pull/20521) - fix: not clearing local data when logging out while sync is running by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20646](https://github.com/immich-app/immich/pull/20646) - fix: adjust margin and gap for trailing elements in control app bar by [@&#8203;wojtaszek171](https://github.com/wojtaszek171) in [#&#8203;20645](https://github.com/immich-app/immich/pull/20645) - fix(mobile): use storageIndicator setting for beta timeline by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20639](https://github.com/immich-app/immich/pull/20639) - fix(mobile): disable memory lane when memories are disabled by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20642](https://github.com/immich-app/immich/pull/20642) - fix: expand sheet when album search is focused by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20651](https://github.com/immich-app/immich/pull/20651) - fix: exclude assets that haven't been hashed yet from uploads by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20684](https://github.com/immich-app/immich/pull/20684) - fix(mobile): use cached thumbnail in full size image provider by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;20637](https://github.com/immich-app/immich/pull/20637) - feat(mobile): use custom headers when connecting in widget by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20666](https://github.com/immich-app/immich/pull/20666) - fix: empty custom header prevent logging in by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20693](https://github.com/immich-app/immich/pull/20693) - fix: delete local asset show twice by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20700](https://github.com/immich-app/immich/pull/20700) - fix(mobile): filter people that have less than 3 faces by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20705](https://github.com/immich-app/immich/pull/20705) - fix: shared link custom URL photo access authentication by [@&#8203;gaurav-yadav](https://github.com/gaurav-yadav) in [#&#8203;20534](https://github.com/immich-app/immich/pull/20534) - fix: custom-url ssr by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20704](https://github.com/immich-app/immich/pull/20704) - fix(mobile): show video controls when in locked view by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20707](https://github.com/immich-app/immich/pull/20707) - fix: server version not fetched after auto login by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20713](https://github.com/immich-app/immich/pull/20713) - fix: video thumbnail generation for short videos by [@&#8203;patrickgoering](https://github.com/patrickgoering) in [#&#8203;20629](https://github.com/immich-app/immich/pull/20629) - fix: disk info is cleared when profile picture is uploaded by [@&#8203;Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#&#8203;20411](https://github.com/immich-app/immich/pull/20411) - fix(web): use correct sliding window offset for search results by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;20726](https://github.com/immich-app/immich/pull/20726) - fix(web): prevent thumbhashes from covering search bar by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;20720](https://github.com/immich-app/immich/pull/20720) - fix(web): limit max height of search results by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;20727](https://github.com/immich-app/immich/pull/20727) - fix(mobile): person birthday viewing/editing by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20731](https://github.com/immich-app/immich/pull/20731) - fix(web): shared-link autocomplete by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20761](https://github.com/immich-app/immich/pull/20761) - fix(web): fix layout loop with single row grids in explore page by [@&#8203;gabrielsoldani](https://github.com/gabrielsoldani) in [#&#8203;20833](https://github.com/immich-app/immich/pull/20833) - fix: age info cut off by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20872](https://github.com/immich-app/immich/pull/20872) - fix(mobile): newest/oldest album sort by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20743](https://github.com/immich-app/immich/pull/20743) - fix: asset\_viewer page viewing experience by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20889](https://github.com/immich-app/immich/pull/20889) ##### 📚 Documentation - docs: update TrueNAS docs by [@&#8203;Xiticks](https://github.com/Xiticks) in [#&#8203;19990](https://github.com/immich-app/immich/pull/19990) - docs: remove warning about the removed repair page by [@&#8203;aamirazad](https://github.com/aamirazad) in [#&#8203;20746](https://github.com/immich-app/immich/pull/20746) - feat(docs): add `make dev-docs` by [@&#8203;NicholasFlamy](https://github.com/NicholasFlamy) in [#&#8203;20572](https://github.com/immich-app/immich/pull/20572) - docs: include openapi.json by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20760](https://github.com/immich-app/immich/pull/20760) - feat: more cursed knowledge by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20794](https://github.com/immich-app/immich/pull/20794) - docs: vectorchord migration instructions, deprecation log on startup by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;20867](https://github.com/immich-app/immich/pull/20867) ##### 🌐 Translations - fix(mobile): enable person age pluralization by [@&#8203;waclaw66](https://github.com/waclaw66) in [#&#8203;20881](https://github.com/immich-app/immich/pull/20881) #### New Contributors - [@&#8203;kNoAPP](https://github.com/kNoAPP) made their first contribution in [#&#8203;20595](https://github.com/immich-app/immich/pull/20595) - [@&#8203;wojtaszek171](https://github.com/wojtaszek171) made their first contribution in [#&#8203;20598](https://github.com/immich-app/immich/pull/20598) - [@&#8203;cford256](https://github.com/cford256) made their first contribution in [#&#8203;20457](https://github.com/immich-app/immich/pull/20457) - [@&#8203;mib1185](https://github.com/mib1185) made their first contribution in [#&#8203;20555](https://github.com/immich-app/immich/pull/20555) - [@&#8203;gaurav-yadav](https://github.com/gaurav-yadav) made their first contribution in [#&#8203;20534](https://github.com/immich-app/immich/pull/20534) - [@&#8203;patrickgoering](https://github.com/patrickgoering) made their first contribution in [#&#8203;20629](https://github.com/immich-app/immich/pull/20629) - [@&#8203;Xiticks](https://github.com/Xiticks) made their first contribution in [#&#8203;19990](https://github.com/immich-app/immich/pull/19990) - [@&#8203;ufizo](https://github.com/ufizo) made their first contribution in [#&#8203;20538](https://github.com/immich-app/immich/pull/20538) - [@&#8203;mkuehne707](https://github.com/mkuehne707) made their first contribution in [#&#8203;17717](https://github.com/immich-app/immich/pull/17717) - [@&#8203;gabrielsoldani](https://github.com/gabrielsoldani) made their first contribution in [#&#8203;20833](https://github.com/immich-app/immich/pull/20833) - [@&#8203;miroslawlis](https://github.com/miroslawlis) made their first contribution in [#&#8203;20811](https://github.com/immich-app/immich/pull/20811) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.137.3...v1.138.0> ### [`v1.137.3`](https://github.com/immich-app/immich/releases/tag/v1.137.3) [Compare Source](https://github.com/immich-app/immich/compare/v1.137.1...v1.137.3) #### v1.137.3 - Fixes a media location migration issue for people who have `IMMICH_MEDIA_LOCATION` set. (e.g., Unraid) <!-- Release notes generated using configuration in .github/release.yml at v1.137.3 --> #### What's Changed ##### 🐛 Bug fixes - fix: guard IS\_FAVORITE column with SDK check by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20511](https://github.com/immich-app/immich/pull/20511) - fix: migration if media location is set by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;20532](https://github.com/immich-app/immich/pull/20532) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.137.2...v1.137.3> ### [`v1.137.1`](https://github.com/immich-app/immich/releases/tag/v1.137.1) [Compare Source](https://github.com/immich-app/immich/compare/v1.137.0...v1.137.1) #### v1.137.1 - Fixes an issue with the `/usr/src/app/upload` => `/data` migration if you don't have any assets in the default library <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### 🐛 Bug fixes - fix: automatic media location migration without internal assets by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;20489](https://github.com/immich-app/immich/pull/20489) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.137.0...v1.137.1> ### [`v1.137.0`](https://github.com/immich-app/immich/releases/tag/v1.137.0) [Compare Source](https://github.com/immich-app/immich/compare/v1.136.0...v1.137.0) ### v1.137.0 - *knock, knock* - *Who's there?* - *Breaking* - *Breaking who?* - *Breaking changes woohoo, with a stable-release-is-around-the-corner and coming to a server near you (soon™)* > \[!CAUTION] > > # Breaking Changes > > If your current, running version of Immich is `v1.132.0` or newer, there is **NO ACTION** required. If you are updating from version below `v1.132.0` continue reading. > > ## Remove TypeORM ([#&#8203;20366](https://github.com/immich-app/immich/issues/20366)) > > This update requires applications to have started up at least once on `1.132.0+`. See <https://immich.app/errors#typeorm-upgrade> for more details. #### Highlights Welcome to the release `v1.137.0` of Immich. This version adds many bug fixes for the beta timeline, more feature parity with the old timeline, alongside some nifty enhancements to the web and the server as well. As always, new translations have been merged in, and the documentation has been updated at <https://immich.app>. Now, let’s dive in! - The default `docker-compose.yml` template has changed - Beta timeline - Shared link custom URL - Find large files utility - API key permission improvements ### `docker-compose.yml` template change (optional) The default compose file now uses `/data` instead of `/usr/src/app/upload`. This is a completely optional change and **NOT** a breaking change. Prior versions of Immich will continue to work without any user intervention. For more information, see [#&#8203;20367](https://github.com/immich-app/immich/issues/20367). Prior to this change, uploaded media was located at `/usr/src/app/upload/upload` in the container (notice the double “upload” folders), which often led to confusion. It will now be located at `/data/upload`, and we hope that makes things easier. #### Beta timeline Thank you to everyone who tried out the beta timeline in the last release! We have gathered a lot of great feedback, and are actively working on incorporating it. We’ve fixed a bunch of bugs and added back a bunch of previous features. Here’s a quick list/overview of beta timeline changes this release: - Fix the invalid timeline grouping issue - Fix the trash action translation keys - Fix the beta timeline switch missing in landscape mode - Fix a timeline migration bug on Android - Fix the text overflow issue on the action buttons - Fix deep links when the beta timeline is enabled - Fix search places not working correctly - Fix missing hero animation between tabs - Fix the backup remainder backup count issue - Fix the share to app upload - Fix the error navigating back from the backup page - Fix the backup indicator - Fix the back gesture in multi-select mode - Fix user profile images - Fix the issue downloading live photo - Fix the issue with sync for users with external libraries - Fix the issue with storage filling up for users with iCloud photos … and more #### Shared link custom URL ([#&#8203;19999](https://github.com/immich-app/immich/issues/19999)) Immich shared links by default are long and hard to guess. This is by design and is a security mechanism to prevent unwanted access. However, the long links can be a bit awkward to use because they are difficult to read. For cases where security is less important, we have added the option to specify a *custom URL*. <p align="center"> <img width="500" alt="image" src="https://github.com/user-attachments/assets/06d5dc89-1bb7-462c-a384-f62c3fb0e838" /> <p/> Shared links with a custom URL are now also available at `/s/<slug>` (in addition to `/share/<long-random-string>`. Naturally, these links don’t share the same security benefits of the long-random-string ones, so please use them accordingly. #### Find large files utility (web-only) This release adds a new, convenient utility to find large files on your instance. You can access it by navigating to the “Utility” page on the web, and clicking “Review large files”. The page shows the largest 250 original files for your user. <p align="center"> <img width="500" alt="image" src="https://github.com/user-attachments/assets/171520d5-d03b-45f5-9b51-9bb86ae9fa98" /> <img width="800" alt="image" src="https://github.com/user-attachments/assets/6254ef6c-b57f-4d14-9f74-d03d4da56bd9" /> <p/> #### Improved API key permissions and documentation Following up from the last release, we have added fine-grained permissions to more API endpoints, which are now also included in the auto-generated documentation, which can be read [here](https://immich.app/docs/api). > \[!CAUTION] > > Related to these changes, a few API permissions have been *renamed*. See [#&#8203;20250](https://github.com/immich-app/immich/issues/20250) for more details. On the web, the New API Key form now includes the newly added permissions, as well as a search bar for quicker access. <p align="center"> <img width="800" alt="image" src="https://github.com/user-attachments/assets/783a8188-e112-4af7-94b0-3b53fd815712" /> <p/> <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### 🚨 Breaking Changes - feat!: more permissions by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20250](https://github.com/immich-app/immich/pull/20250) - feat!: remove typeorm by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20366](https://github.com/immich-app/immich/pull/20366) ##### 🚀 Features - feat: automatically detect media location changes by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20256](https://github.com/immich-app/immich/pull/20256) - feat: find large files utility by [@&#8203;niwla23](https://github.com/niwla23) in [#&#8203;18040](https://github.com/immich-app/immich/pull/18040) - feat: change default media location to /data by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20367](https://github.com/immich-app/immich/pull/20367) - feat: better endpoint descriptions by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20439](https://github.com/immich-app/immich/pull/20439) ##### 🌟 Enhancements - feat: don't wait for network on app startup by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;20232](https://github.com/immich-app/immich/pull/20232) - feat: add to album on new beta timeline by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20119](https://github.com/immich-app/immich/pull/20119) - feat(web): api key permission search by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20248](https://github.com/immich-app/immich/pull/20248) - chore: delete action button by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20261](https://github.com/immich-app/immich/pull/20261) - feat: scroll to top & view in timeline by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20274](https://github.com/immich-app/immich/pull/20274) - feat(web): auto fit bounds for map modal. by [@&#8203;dagstuan](https://github.com/dagstuan) in [#&#8203;20345](https://github.com/immich-app/immich/pull/20345) - feat: shared links custom URL by [@&#8203;Jed-Giblin](https://github.com/Jed-Giblin) in [#&#8203;19999](https://github.com/immich-app/immich/pull/19999) - feat: support config via systemd credentials by [@&#8203;amarshall](https://github.com/amarshall) in [#&#8203;20406](https://github.com/immich-app/immich/pull/20406) - feat: 3-2-1 backup onboarding card by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20374](https://github.com/immich-app/immich/pull/20374) - feat: people page/sheet/detail by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20309](https://github.com/immich-app/immich/pull/20309) - fix(web): Search chip key value heights don't match by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;20312](https://github.com/immich-app/immich/pull/20312) - feat: network requirement option for upload by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20302](https://github.com/immich-app/immich/pull/20302) - feat: drift edit time and date action by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20377](https://github.com/immich-app/immich/pull/20377) - feat: drift description editor by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20383](https://github.com/immich-app/immich/pull/20383) ##### 🐛 Bug fixes - fix: override SSL options inside isolates by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20142](https://github.com/immich-app/immich/pull/20142) - fix: fallback auto grouping to day grouping by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20156](https://github.com/immich-app/immich/pull/20156) - fix: update trash action i18n keys by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20164](https://github.com/immich-app/immich/pull/20164) - chore: remove build flavor Android by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20161](https://github.com/immich-app/immich/pull/20161) - fix: send correct includeArchived parameter to API when showing markers in map by [@&#8203;pelluch](https://github.com/pelluch) in [#&#8203;20117](https://github.com/immich-app/immich/pull/20117) - fix(web): multi-select in ascending asset order by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;19461](https://github.com/immich-app/immich/pull/19461) - fix(mobile): hide video thumbnail when video is ready by [@&#8203;johnstef99](https://github.com/johnstef99) in [#&#8203;19328](https://github.com/immich-app/immich/pull/19328) - fix: geodata\_places pkey migration failing for certain upgrade paths by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;20177](https://github.com/immich-app/immich/pull/20177) - fix: add beta toggle in landscape mode by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20187](https://github.com/immich-app/immich/pull/20187) - fix: add missing `await`s when changing client certificate by [@&#8203;jfly](https://github.com/jfly) in [#&#8203;20189](https://github.com/immich-app/immich/pull/20189) - fix: android backup album migration without recents by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;20220](https://github.com/immich-app/immich/pull/20220) - fix: optional number inputs by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;20218](https://github.com/immich-app/immich/pull/20218) - fix: character width calculation by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20201](https://github.com/immich-app/immich/pull/20201) - fix: word wrapping on action buttons by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20231](https://github.com/immich-app/immich/pull/20231) - fix: lookup the primary key constraint name before dropping it by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;20221](https://github.com/immich-app/immich/pull/20221) - fix(mobile): deep links when using the beta timeline by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20111](https://github.com/immich-app/immich/pull/20111) - fix(mobile): beta search page improvements by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20247](https://github.com/immich-app/immich/pull/20247) - fix(mobile): places search not working in beta version by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;20284](https://github.com/immich-app/immich/pull/20284) - fix: no hero animation after tab change by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20285](https://github.com/immich-app/immich/pull/20285) - fix: remainder backup count by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20270](https://github.com/immich-app/immich/pull/20270) - fix: share to app upload by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;20271](https://github.com/immich-app/immich/pull/20271) - fix: error on navigating back from backup selection page by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20299](https://github.com/immich-app/immich/pull/20299) - fix(web): Album picker recent albums don't match sidebar by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;20313](https://github.com/immich-app/immich/pull/20313) - fix: change translation key for archive action button by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20336](https://github.com/immich-app/immich/pull/20336) - fix: backup indicator in beta app bar by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20354](https://github.com/immich-app/immich/pull/20354) - fix: handle back gesture in multi selection mode by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20356](https://github.com/immich-app/immich/pull/20356) - fix: handle cleanup of new backups alongside old backups by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;20402](https://github.com/immich-app/immich/pull/20402) - fix: android widget periodic updates by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20389](https://github.com/immich-app/immich/pull/20389) - fix: show missing local assets only in timeline with partner sharing by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20298](https://github.com/immich-app/immich/pull/20298) - fix: sync is\_favorite from native by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20412](https://github.com/immich-app/immich/pull/20412) - fix(web): timeline date group width by [@&#8203;ben-basten](https://github.com/ben-basten) in [#&#8203;19964](https://github.com/immich-app/immich/pull/19964) - fix: exclude assets from excluded albumbs on main timeline by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20425](https://github.com/immich-app/immich/pull/20425) - fix: user profile images not working in beta timeline by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;20203](https://github.com/immich-app/immich/pull/20203) - fix(web): timeline time bucket issue by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20438](https://github.com/immich-app/immich/pull/20438) - fix: json encoding failure during live photo download by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20444](https://github.com/immich-app/immich/pull/20444) - fix(mobile): add partial index based on library ID to remote assets by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20214](https://github.com/immich-app/immich/pull/20214) - fix: clear local file cache before upload by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20448](https://github.com/immich-app/immich/pull/20448) - fix(download): handle completed downloads and refresh albums by [@&#8203;PeterOmbodi](https://github.com/PeterOmbodi) in [#&#8203;20241](https://github.com/immich-app/immich/pull/20241) - fix: incorrect next/previous action after folder view refresh by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20447](https://github.com/immich-app/immich/pull/20447) - fix: modal race conditions by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;20460](https://github.com/immich-app/immich/pull/20460) ##### 📚 Documentation - docs: more make commands and add mobile checks to pr-checklist by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;20211](https://github.com/immich-app/immich/pull/20211) - chore: add missing 'make pigeon' instruction by [@&#8203;jfly](https://github.com/jfly) in [#&#8203;20202](https://github.com/immich-app/immich/pull/20202) - fix(docs): update SQL queries with schema changes by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;20297](https://github.com/immich-app/immich/pull/20297) - feat(docs): reorganize DB queries, add tags by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;20303](https://github.com/immich-app/immich/pull/20303) - docs: add immich\_ml\_balancer to community projects by [@&#8203;apetersson](https://github.com/apetersson) in [#&#8203;20399](https://github.com/immich-app/immich/pull/20399) - docs: Add config example for Authelia by [@&#8203;Starbix](https://github.com/Starbix) in [#&#8203;20223](https://github.com/immich-app/immich/pull/20223) ##### 🌐 Translations - fix(mobile): distinguish backup settings title from 'backup\_controller\_page\_backup' translation entry by [@&#8203;zigarn](https://github.com/zigarn) in [#&#8203;20237](https://github.com/immich-app/immich/pull/20237) - fix(mobile): remove unused translation and pluralize existing one for map photos count by [@&#8203;zigarn](https://github.com/zigarn) in [#&#8203;20282](https://github.com/immich-app/immich/pull/20282) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;20105](https://github.com/immich-app/immich/pull/20105) #### New Contributors - [@&#8203;pelluch](https://github.com/pelluch) made their first contribution in [#&#8203;20117](https://github.com/immich-app/immich/pull/20117) - [@&#8203;jfly](https://github.com/jfly) made their first contribution in [#&#8203;20189](https://github.com/immich-app/immich/pull/20189) - [@&#8203;zigarn](https://github.com/zigarn) made their first contribution in [#&#8203;20237](https://github.com/immich-app/immich/pull/20237) - [@&#8203;beposec](https://github.com/beposec) made their first contribution in [#&#8203;20283](https://github.com/immich-app/immich/pull/20283) - [@&#8203;Jed-Giblin](https://github.com/Jed-Giblin) made their first contribution in [#&#8203;19999](https://github.com/immich-app/immich/pull/19999) - [@&#8203;niwla23](https://github.com/niwla23) made their first contribution in [#&#8203;18040](https://github.com/immich-app/immich/pull/18040) - [@&#8203;apetersson](https://github.com/apetersson) made their first contribution in [#&#8203;20399](https://github.com/immich-app/immich/pull/20399) - [@&#8203;amarshall](https://github.com/amarshall) made their first contribution in [#&#8203;20406](https://github.com/immich-app/immich/pull/20406) - [@&#8203;Starbix](https://github.com/Starbix) made their first contribution in [#&#8203;20223](https://github.com/immich-app/immich/pull/20223) - [@&#8203;PeterOmbodi](https://github.com/PeterOmbodi) made their first contribution in [#&#8203;20241](https://github.com/immich-app/immich/pull/20241) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.136.0...v1.137.0> ### [`v1.136.0`](https://github.com/immich-app/immich/releases/tag/v1.136.0): - 69420 stars release [Compare Source](https://github.com/immich-app/immich/compare/v1.135.3...v1.136.0) ### v1.136.0 - 69420 stars release > \[!CAUTION] > > # BREAKING CHANGES > > ## IMMICH\_MEDIA\_LOCATION ([#&#8203;19995](https://github.com/immich-app/immich/issues/19995)) > > Note: This is a **different** variable than `UPLOAD_LOCATION`, which requires no change. > > Note: if you **DO NOT** have `IMMICH_MEDIA_LOCATION` in your `.env` file, or if it is set to a path that starts with a `/` (absolute path), **THIS BREAKING CHANGE DOES NOT APPLY TO YOU.** Users of the all-in-one image (e.g., the unraid app) for instance are not affected. > > <hr> > > If you have a custom `IMMICH_MEDIA_LOCATION` environment variable set to a **relative path**, you will have to do the following process: > > 1. Stop Immich (`docker compose stop`): > 2. Update Immich (`docker compose pull`) > 3. Update the environment variable to an absolute path, for example: > > ```diff > -IMMICH_MEDIA_LOCATION=./my-library > +IMMICH_MEDIA_LOCATION=/usr/src/app/my-library > > ``` > > 4. Start Immich (`docker compose up -d --force-recreate`) > 5. After the server successfully starts up, connect to it (`docker exec ``*-it*`` immich_server /bin/sh`) and run `immich-admin change-media-location`. When prompted, enter the appropriate values. For example: > > ``` > docker exec -it immich_server /bin/sh > > $ immich-admin change-media-location > ... > ? Enter the previous value of IMMICH_MEDIA_LOCATION: ./my-library > ? Enter the new value of IMMICH_MEDIA_LOCATION: /usr/src/app/my-library > > Previous value: ./my-library > Current value: /usr/src/app/my-library > > Changing database paths from "my-library/*" to "/usr/src/app/my-library/*" > > ? Do you want to proceed? [Y/n] y > > Matching database file paths were updated successfully! 🎉 > > You may now set IMMICH_MEDIA_LOCATION=/usr/src/app/my-library and restart! > > ``` > > ### Background/Motivation > > Relative paths have implied ambiguity, as they depend on the current working directory to resolve correctly, leading to issues like ([#&#8203;4465](https://github.com/immich-app/immich/issues/4465)). This change removes this ambiguity and sets up the project to transition away from files living at `/usr/src/app/upload` entirely. Currently, the `upload` folder lives at `/usr/src/app/upload/upload`, which is *very* confusing… *for everyone*. This change opens to door for a future migration to something like `IMMICH_DATA=/data`, which a more sensible setup. > > ## API Key changes ([#&#8203;20113](https://github.com/immich-app/immich/issues/20113)) > > Note: This change may affect the use of third-party applications, such as ImmichGo, ImmichKios, or ImmichFrame. > > This release includes a change to how API Keys work, specifically when used with routes that don’t require a specific permission. Previously, a scoped API Key could access these routes, but they will now throw a forbidden error. Routes without a declared scope now implicitly require the “all” permission. ### Highlights Welcome to release `v1.136.0`. This midsummer release is the culmination of the team's labor of love for the Immich community, featuring the introduction of a new timeline and sync mechanism in beta mode, Android widgets, and one of the last breaking changes we want to make before reaching the stable release milestone. Let’s dive right into it. - Beta mode for the new timeline, sync, and upload mechanism - Android widgets - iOS widget improvements - Deep links #### Beta timeline, sync, and upload mechanism > \[!NOTE] > This is only supported when both the server and the mobile app are updated to `v1.136.0` This is a series of work that has been happening for months under the hood, from the changes in the database query engine, server’s queries, and support logic, to integrating a whole new database on the mobile app, and rewriting almost all aspects of the mobile app, you can now try the new timeline with data sync mechanism, and upload rework by go to the `App Settings > Toggle the Beta timeline button`. After toggling, you will be directed to a screen where data migration is executed automatically. You can then proceed to the new experience. <p align="center"> <img width="500" alt="image" src="https://github.com/user-attachments/assets/ede61e01-974d-4351-b074-b3dd461f71e6" /> </p> You can distinguish the beta timeline from the old one by the beta symbol next to the Immich logo in the app bar. <p align="center"> <img width="500" alt="image" src="https://github.com/user-attachments/assets/90ac6296-1315-4881-b2b1-dd4fbc7baf53" /> </p> ##### Why? Over the past year, the major complaints we've received from users have primarily centered around the mobile app. The app simply doesn't feel premium or responsive—it's often janky and takes too long to become usable when first opened, especially when you have a large number of albums. Users can't even view their local albums unless they've selected them as backup targets. Our technical debt in the data structure has created some truly frustrating behaviors, like forcing users to re-upload everything (only to have it rejected by the server) when they switch phones and end up with a different device ID. Or local photos and videos don’t show up until they are all hashed, which could take a while. We've realized we can't honestly call the application stable or confidently recommend it to everyone until we resolve these fundamental problems. We genuinely want this app to be excellent. We want the user experience to be seamless and delightful—we want you to feel genuinely happy when you open Immich to browse through your precious memories. ##### What’s new? ##### Data sync - The data sync is now running in a background thread, separate from the UI thread. This means that during data synchronization, the app will remain smooth to browse. - The data sync speed should be improved drastically. The data is being streamed to the mobile app instead of being sent there in a single large chunk. This will help users with a massive library. - The calculation of which data needs to be retrieved from the server is now performed on the server, rather than being calculated by the mobile app previously. This means lower CPU usage on the mobile app and quicker incremental sync. - The mobile app will now retrieve data from the server and maintain similar database tables within the app. This restructuring enables better offline operation and supports more complex usage behaviors. ##### Timeline/Display experience - The new timeline has been rewritten from the ground up to enhance scrolling and dragging behavior, making it easier for you to navigate the timeline. - The detail viewer is now more interactive, allowing you to scroll between photos or videos when the bottom detail sheet is opened. - The album views and other collection views are more lively, featuring a parallax effect to make your album/collection feel alive with *mesmerizing* animation. - You can now view all albums on the device, regardless of which album you have selected as the target for backing up. You can view them in the \`Library > On this device\` section. For users who want to select individual assets to back up to the server, they can perform that operation from here. ##### Upload - The upload mechanism has been rewritten from the ground up. - Upload is now handled by the OS, allowing for a better background upload operation. Instead of handling the uploading ourselves, we are now placing the photos and videos in a queue, which will run continuously when the Immich app is opened in the foreground and for a few minutes after it is put into the background. Then the OS will take over and start pulling tasks from the queue, handling the upload process by itself. - Starting the upload progress is now invoked from a toggle button <p align="center"> <img width="400" alt="image" src="https://github.com/user-attachments/assets/270216ff-4698-412b-a9c6-37b795612e44" /> </p> - Uploads are now running **in parallel** . The new upload detail page displays which assets are being uploaded and whether they are experiencing issues or stuck. You can tap on each item to see exactly which asset is causing the problem. <p align="center"> <img width="400" alt="image" src="https://github.com/user-attachments/assets/8e319945-8b59-4bee-b41c-3172bef0b4fd" /> </p> <p align="center"> <img width="400" alt="image" src="https://github.com/user-attachments/assets/bdfa4f7d-dabf-49fe-9ad4-661fdabc192c" /> </p> - On Android, there is no longer a virtual `Recents` album that includes all assets. Instead, there is a button to select all albums for backup. - In the backup album selection screen, you can now search for the album you want to back up. ##### Expectations of the beta version of the mentioned mechanisms - The app should be very smooth to browse around during the initial login and subsequent app openings. - Collections (favorite, archived, locked folder, etc.) and album views should make you feel nice, cozy, and delighted. - Background queuing of newly taken photos is not yet implemented. We will start working on this next. - Some views are not yet ported over to the new implementation, such as, but not limited to - People view - Map view - Some mechanisms are still missing from the previous implementation, such as, but not limited to - Add to album from multi-selection - Album sync when uploading - There are still some buggy behaviors/animations we will be ironing out in the coming days. ##### How can you help us? - Use the beta timeline and the new upload rework. - Report any bugs and weirdness you experience on GitHub’s issue tracker `[beta] <your-title-here>` as the title - Reach out and provide direct feedback on [Discord](https://discord.com/invite/immich) - Feedback from iCloud users is greatly appreciated #### Android Widgets <p align="center"> <img width="400" alt="image" src="https://github.com/user-attachments/assets/86a12419-2ce8-4791-ba8c-a56911ccc659" /> </p> This is a follow-up to one of our most requested features: Home screen widgets! In `v1.135.0` We introduced Immich widgets on iOS, which included a memory widget and a random widget. With `v1.136.0`, we bring these widgets to Android! Many of the improvements to iOS widgets listed below have also been incorporated into the Android version. #### iOS Widget Improvements iOS widgets have been improved with feedback from the community: - iOS widgets now support servers that use insecure HTTP connections - iOS widgets now support servers that use WebP as their preview thumbnail format - Tapping on the widget now takes you directly to the image in the app - Widgets now render properly when used on a tinted home screen - iOS widgets now cache the latest image for use if network access is unavailable during update. You should see fewer “Unable to connect to your Immich instance” errors on your home screen! - You can now choose to show images from your Favorites in the Random Widget - Improved error descriptions #### Deep Links You can now deep link into the Immich app. Supported URLs include: - `immich://asset?id=<asset id>` - `immich://album?id=<album id>` - `immich://memory?id=<memory id>` Some `my.immich.app` URLs will also now open inside the mobile app: - `https://my.immich.app/photos/<asset id>` - `https://my.immich.app/albums/<album id>` Navigating to any of these URLs (via the browser, Apple Shortcuts, NFC, or other automation frameworks) will open the corresponding resource inside the mobile app. #### In other news We missed capturing the moment when the project reached `69_420` stars, 😔 <p align="center"> <img src="https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExamxub2V4MTRzaHc0dXV5b3JiemEza2I0eWViN2h5bHluc2RjdWxoMCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/WrNfErHio7ZAc/giphy.gif" width="500" > </p> *** #### 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 main --> #### What's Changed ##### 🚨 Breaking Changes - feat!: absolute file paths by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;19995](https://github.com/immich-app/immich/pull/19995) - fix: default route permission by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20113](https://github.com/immich-app/immich/pull/20113) ##### 🚀 Features - feat(server): person delete by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;19511](https://github.com/immich-app/immich/pull/19511) - feat: nightly tasks by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;19879](https://github.com/immich-app/immich/pull/19879) - feat: add license page to app bar dialog by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;19971](https://github.com/immich-app/immich/pull/19971) - feat(mobile): android widgets by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;19310](https://github.com/immich-app/immich/pull/19310) - feat(mobile): beta sync stats page by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;19950](https://github.com/immich-app/immich/pull/19950) ##### 🌟 Enhancements - fix(web): consistent merge people icons by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;19473](https://github.com/immich-app/immich/pull/19473) - feat(mobile): deep links by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;19232](https://github.com/immich-app/immich/pull/19232) - feat(mobile): ios widget deeplink to asset in app by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;19510](https://github.com/immich-app/immich/pull/19510) - feat(server): check additional exif date tags by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;19216](https://github.com/immich-app/immich/pull/19216) - feat: use request host as default SSR domain by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;19485](https://github.com/immich-app/immich/pull/19485) - feat: oauth role claim by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;19758](https://github.com/immich-app/immich/pull/19758) - chore: Use a contrasted color for text avatar by [@&#8203;ferraridamiano](https://github.com/ferraridamiano) in [#&#8203;19756](https://github.com/immich-app/immich/pull/19756) - feat(web): update icons by [@&#8203;Hamster45105](https://github.com/Hamster45105) in [#&#8203;19831](https://github.com/immich-app/immich/pull/19831) - feat(mobile): cache latest ios widget entry for fallback by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;19824](https://github.com/immich-app/immich/pull/19824) - feat: adds option to search only for untagged assets by [@&#8203;SkwalExe](https://github.com/SkwalExe) in [#&#8203;19730](https://github.com/immich-app/immich/pull/19730) - feat(web): better coordinate parsing by [@&#8203;Hamster45105](https://github.com/Hamster45105) in [#&#8203;19832](https://github.com/immich-app/immich/pull/19832) - feat(widgets): iOS widget improvements by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;19893](https://github.com/immich-app/immich/pull/19893) - feat(mobile): new upload by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18726](https://github.com/immich-app/immich/pull/18726) - feat: play live photos on hover by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;19962](https://github.com/immich-app/immich/pull/19962) - feat(web): Remove from Stack by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;19703](https://github.com/immich-app/immich/pull/19703) ##### 🐛 Bug fixes - fix(web): map cluster by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;19433](https://github.com/immich-app/immich/pull/19433) - fix: storage template onboarding save by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;19405](https://github.com/immich-app/immich/pull/19405) - fix(web): map broken after redirect from details by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;19424](https://github.com/immich-app/immich/pull/19424) - fix(server): filter parameters by database and role by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;19392](https://github.com/immich-app/immich/pull/19392) - fix(web): toggle favorite by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;19453](https://github.com/immich-app/immich/pull/19453) - fix(web): timeline timezone by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;19418](https://github.com/immich-app/immich/pull/19418) - fix(web): oauth quota display by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;19417](https://github.com/immich-app/immich/pull/19417) - fix(server): include hidden assets in missing metadata extraction query by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;19471](https://github.com/immich-app/immich/pull/19471) - fix: iOS widget webp support by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;19469](https://github.com/immich-app/immich/pull/19469) - fix: return 404 for invalid shared link pages by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;19493](https://github.com/immich-app/immich/pull/19493) - fix(web): load day group in asset viewer by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;19523](https://github.com/immich-app/immich/pull/19523) - feat(deployment): add shm\_size for PG by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;19472](https://github.com/immich-app/immich/pull/19472) - fix: enable photo manager custom filter by default by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;19520](https://github.com/immich-app/immich/pull/19520) - fix(web): absolute path match in external library by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;19551](https://github.com/immich-app/immich/pull/19551) - fix(web): modal race condition by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;19625](https://github.com/immich-app/immich/pull/19625) - fix(server): prevent duplicate geodata temp table by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18580](https://github.com/immich-app/immich/pull/18580) - fix(web): viewing asset lock by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;19499](https://github.com/immich-app/immich/pull/19499) - fix: add quiet zone to QR code by [@&#8203;matthieu-db](https://github.com/matthieu-db) in [#&#8203;19771](https://github.com/immich-app/immich/pull/19771) - fix(server): clear activity when asset is removed from album by [@&#8203;dahool](https://github.com/dahool) in [#&#8203;19019](https://github.com/immich-app/immich/pull/19019) - fix: allow insecure connections in iOS WidgetExtension by [@&#8203;made2k](https://github.com/made2k) in [#&#8203;19863](https://github.com/immich-app/immich/pull/19863) - fix: startup log level by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;19885](https://github.com/immich-app/immich/pull/19885) - fix(web): allow renaming person without merging by [@&#8203;lukashass](https://github.com/lukashass) in [#&#8203;19923](https://github.com/immich-app/immich/pull/19923) - fix(web): adjust button size in person side panel by [@&#8203;lukashass](https://github.com/lukashass) in [#&#8203;19924](https://github.com/immich-app/immich/pull/19924) - fix: use IMMICH\_HOST env var in ML healthcheck by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;19844](https://github.com/immich-app/immich/pull/19844) - fix(web): prevent flashing white background in dark mode on page load/reload by [@&#8203;evan314159](https://github.com/evan314159) in [#&#8203;19934](https://github.com/immich-app/immich/pull/19934) - fix: send filename when viewing the original file by [@&#8203;MeguminSama](https://github.com/MeguminSama) in [#&#8203;20005](https://github.com/immich-app/immich/pull/20005) - fix: ML recognition distance UI form validation by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;20107](https://github.com/immich-app/immich/pull/20107) - fix: unset prewarn param by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;20109](https://github.com/immich-app/immich/pull/20109) ##### 📚 Documentation - fix(docs): portainer absolute paths by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;19459](https://github.com/immich-app/immich/pull/19459) - fix(docs): add DB\_USERNAME when needed by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;19578](https://github.com/immich-app/immich/pull/19578) - chore(docs): add instruction for trusting self-signed certificates with Immich and an OAuth server by [@&#8203;seifer44](https://github.com/seifer44) in [#&#8203;18624](https://github.com/immich-app/immich/pull/18624) - docs: document `DB_STORAGE_TYPE` environment variable by [@&#8203;ramonsmits](https://github.com/ramonsmits) in [#&#8203;19609](https://github.com/immich-app/immich/pull/19609) - docs: fix typo of webp listed under jpeg by [@&#8203;OffsetMonkey538](https://github.com/OffsetMonkey538) in [#&#8203;19743](https://github.com/immich-app/immich/pull/19743) - fix(docs): library and folders minor adjustments by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;19642](https://github.com/immich-app/immich/pull/19642) - fix: path in external library docs by [@&#8203;DominikVogel](https://github.com/DominikVogel) in [#&#8203;19901](https://github.com/immich-app/immich/pull/19901) - fix(docs): Nightly Tasks Settings by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;19907](https://github.com/immich-app/immich/pull/19907) - chore: also redirect docs/ with trailing slash by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;19965](https://github.com/immich-app/immich/pull/19965) ##### 🌐 Translations - feat(mobile): enable Croatian (hr) translations by [@&#8203;fmis13](https://github.com/fmis13) in [#&#8203;19428](https://github.com/immich-app/immich/pull/19428) - chore: adjust setting subtitle to less clumsy expression by [@&#8203;lcs-crr](https://github.com/lcs-crr) in [#&#8203;19970](https://github.com/immich-app/immich/pull/19970) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;19228](https://github.com/immich-app/immich/pull/19228) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;20076](https://github.com/immich-app/immich/pull/20076) - fix: more inclusive language by [@&#8203;maybeanerd](https://github.com/maybeanerd) in [#&#8203;20092](https://github.com/immich-app/immich/pull/20092) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;20082](https://github.com/immich-app/immich/pull/20082) #### New Contributors - [@&#8203;fmis13](https://github.com/fmis13) made their first contribution in [#&#8203;19428](https://github.com/immich-app/immich/pull/19428) - [@&#8203;seifer44](https://github.com/seifer44) made their first contribution in [#&#8203;18624](https://github.com/immich-app/immich/pull/18624) - [@&#8203;ramonsmits](https://github.com/ramonsmits) made their first contribution in [#&#8203;19609](https://github.com/immich-app/immich/pull/19609) - [@&#8203;OffsetMonkey538](https://github.com/OffsetMonkey538) made their first contribution in [#&#8203;19743](https://github.com/immich-app/immich/pull/19743) - [@&#8203;matthieu-db](https://github.com/matthieu-db) made their first contribution in [#&#8203;19771](https://github.com/immich-app/immich/pull/19771) - [@&#8203;Hamster45105](https://github.com/Hamster45105) made their first contribution in [#&#8203;19831](https://github.com/immich-app/immich/pull/19831) - [@&#8203;SkwalExe](https://github.com/SkwalExe) made their first contribution in [#&#8203;19730](https://github.com/immich-app/immich/pull/19730) - [@&#8203;made2k](https://github.com/made2k) made their first contribution in [#&#8203;19863](https://github.com/immich-app/immich/pull/19863) - [@&#8203;DominikVogel](https://github.com/DominikVogel) made their first contribution in [#&#8203;19901](https://github.com/immich-app/immich/pull/19901) - [@&#8203;evan314159](https://github.com/evan314159) made their first contribution in [#&#8203;19934](https://github.com/immich-app/immich/pull/19934) - [@&#8203;lcs-crr](https://github.com/lcs-crr) made their first contribution in [#&#8203;19970](https://github.com/immich-app/immich/pull/19970) - [@&#8203;MeguminSama](https://github.com/MeguminSama) made their first contribution in [#&#8203;20005](https://github.com/immich-app/immich/pull/20005) - [@&#8203;maybeanerd](https://github.com/maybeanerd) made their first contribution in [#&#8203;20092](https://github.com/immich-app/immich/pull/20092) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.135.3...v1.136.0> ### [`v1.135.3`](https://github.com/immich-app/immich/releases/tag/v1.135.3) [Compare Source](https://github.com/immich-app/immich/compare/v1.135.2...v1.135.3) ### v1.135.3 - Fixed an issue where the database migration fails on some instances with a different default database name #### What's Changed ##### 🐛 Bug fixes - fix(server): don't hardcode database name in migration by [@&#8203;dotlambda](https://github.com/dotlambda) in [#&#8203;19376](https://github.com/immich-app/immich/pull/19376) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.135.2...v1.135.3> ### [`v1.135.2`](https://github.com/immich-app/immich/releases/tag/v1.135.2) [Compare Source](https://github.com/immich-app/immich/compare/v1.135.1...v1.135.2) ### v1.135.2 This release addresses the following issues. - Fixed an issue where the database migration was not running correctly on some systems - Fixed an issue where the timezone causes an issue showing the web timeline in some instances, the counter resets again! <p align="center"> <img src="https://github.com/user-attachments/assets/5f274acc-8d1c-49e3-b25c-1fdfca793d5a" width="300" /> <p/> - Reverted the behavior of sorting people, it is now based on asset count as before #### What's Changed ##### 🌟 Enhancements * feat: better contrast for checkmark indicator by @&#8203;jrasm91 in https://github.com/immich-app/immich/pull/19312 ##### 🐛 Bug fixes * fix: container padding by @&#8203;jrasm91 in https://github.com/immich-app/immich/pull/19316 * fix: people ordering by asset count by @&#8203;zackpollard in https://github.com/immich-app/immich/pull/19366 * fix: bump vchord default to 0.4.3 by @&#8203;mertalev in https://github.com/immich-app/immich/pull/19365 * fix(server): migration failing on pg15+ by @&#8203;mertalev in https://github.com/immich-app/immich/pull/19363 * fix: time bucket grouping by @&#8203;jrasm91 in https://github.com/immich-app/immich/pull/19329 * fix: use icons instead of toggles for admin user features view by @&#8203;bwees in https://github.com/immich-app/immich/pull/19369 **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.135.1...v1.135.2> ### [`v1.135.1`](https://github.com/immich-app/immich/releases/tag/v1.135.1) [Compare Source](https://github.com/immich-app/immich/compare/v1.135.0...v1.135.1) ### v1.135.1 #### Highlights This release addresses the following issues. - Fixed a bug where the navigation button disappears in detail view if opened from an album - Fixed a bug where the local network permission prompt doesn't show up on iOS. *If for some reason, you still cannot access the instance after enabling the permission, restarting the phone will fix it* - Fixed an issue where warning messages were shown after updating the VectorChord extension - Fixed an issue where named people are not showing up on top of the people list - Fixed an issue where the web timeline does not show on some older browsers - iOS Widget now supports iOS 17 and above (previously supported only 18.5) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### 🐛 Bug fixes - fix: album share modal navigation by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;19245](https://github.com/immich-app/immich/pull/19245) - fix: panning interrupted while moving around the map by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;19276](https://github.com/immich-app/immich/pull/19276) - fix: album list CSS margins by [@&#8203;PaulSonOfLars](https://github.com/PaulSonOfLars) in [#&#8203;19262](https://github.com/immich-app/immich/pull/19262) - fix(server): drop vector indices before updating extension by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;19283](https://github.com/immich-app/immich/pull/19283) - fix(server): unset prewarm dim parameter by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;19271](https://github.com/immich-app/immich/pull/19271) - fix: album asset viewer by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;19252](https://github.com/immich-app/immich/pull/19252) - fix(web): exit slideshow when exiting fullscreen. by [@&#8203;dagstuan](https://github.com/dagstuan) in [#&#8203;19247](https://github.com/immich-app/immich/pull/19247) - fix: local network permission by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;19285](https://github.com/immich-app/immich/pull/19285) - fix(web): Stack assets in asset-viewer cut off on the left by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;19253](https://github.com/immich-app/immich/pull/19253) - fix: .find() iterator api combat by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;19293](https://github.com/immich-app/immich/pull/19293) - fix: people ordering incorrect by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;19298](https://github.com/immich-app/immich/pull/19298) - fix: iOS 17.0 target version for widget by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;19308](https://github.com/immich-app/immich/pull/19308) ##### 📚 Documentation - fix(docs): REINDEX vchord on upgrade by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;19282](https://github.com/immich-app/immich/pull/19282) #### New Contributors - [@&#8203;PaulSonOfLars](https://github.com/PaulSonOfLars) made their first contribution in [#&#8203;19262](https://github.com/immich-app/immich/pull/19262) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.135.0...v1.135.1> ### [`v1.135.0`](https://github.com/immich-app/immich/releases/tag/v1.135.0) [Compare Source](https://github.com/immich-app/immich/compare/v1.134.0...v1.135.0) ### v1.135.0 #### Highlights Welcome to the release `v1.135.0` of Immich. Another three-week gap, another \~200 PRs merged, another big release, let’s dive right in to what’s new. - iOS home screen widgets - Granular API key access control creation - Google Cast support on the mobile app - Opt-in Google Cast on the web - New user onboarding - Album description on the mobile app - Drag-and-drop to the locked folder on the web - Support for Vchord 0.4.2 - Shortcut to navigate the timeline - Multiple admins support - Devcontainer - Notable fix: Double swiping issue on iOS when using the gallery viewer ##### iOS Home Screen Widgets | Memory Widget | Random Widget | | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | <img src="https://github.com/user-attachments/assets/f57cd999-f4df-44fe-bc0c-f6a522ddfe11" width="300"/> | <img src="https://github.com/user-attachments/assets/8feb1eeb-9435-45e7-ba55-8b931979d2cb" width="300"/> | Immich now supports home screen widgets on iOS! You can now add widgets to your home screen that: - Display a random image from your library - Display a random image from an album - Show images from memory lane We support all widget sizes (S, M, L, and XL on iPad). These widgets update approximately every 20 minutes and pull directly from your Immich server. Android support is coming in the near future, so keep an eye out! > \[!TIP] > Your server must be on `v1.135.0` for album filtering to work. ##### Granular API key access control creation You can now select additional permissions when creating an API key to use in any third-party libraries or software that integrate with Immich. This mechanism will give you better control over what the other applications or libraries can do with your Immich’s instance. <p align="center"> <img src="https://github.com/user-attachments/assets/e1dc89a9-6818-4137-9baf-3b8da6e98a86" width="500"/> </p> ##### Google Cast support on the mobile app <p align="center"> <img src="https://github.com/user-attachments/assets/988e615a-03e1-44fc-997e-1e4d9ae1a990" width="300"/> </p> Immich now supports casting photos from the mobile app to Google Cast-enabled devices! This is a follow-up to the casting feature present on the web. We support photos and videos, similar to the web feature. This feature is not controlled by the new “Opt-in Google Cast on the web” setting since it does not require third-party resources from Google. > \[!TIP] > Your server must be accessible through the server URL from the cast receiver. There is no limitation on public accessibility or an HTTPS connection requirement, unlike on the web. In addition, **only assets that are uploaded to the server may be cast.** ##### Opt-in Google Cast on the web We received a few reports from users who were concerned about the privacy implications of Google Cast on the web. Immich needs to fetch a third-party script from Google to check if casting is supported in the browser and to communicate with the cast library in Chrome. This causes a network request to Google each time Immich is loaded. We have made Google Cast opt-in now to remove this requirement. If you use Google Cast on the web, you may enable Google Cast for your user by going to `Account Settings > Features > Settings > Cast` or by using [this link](https://my.immich.app/user-settings?isOpen=feature+cast). <p align="center"> <img src="https://github.com/user-attachments/assets/bd751256-9366-4d7a-9050-c3d6bd6d5a63" width="600"/> </p> **If you have previously used Google Cast on the web and would like to continue using it, you must also enable it.** ##### New user onboarding ![image](https://github.com/user-attachments/assets/1fd55979-76a0-4a63-ab5b-b42c02b5715c) To provide a better user experience for discovering and enabling various features, settings, and preferences, all new users are now greeted with an onboarding flow on the web when they first log in. They can select their language, theme, and personal privacy settings (such as Google Cast opt-in). Any users present before updating to `v1.135.0` will not experience the onboarding flow. ##### Album description on the mobile app The album’s description is now displayed and editable in the mobile app. The album’s header also gets some styles to make it more presentable. <p align="center"> <img src="https://github.com/user-attachments/assets/ea103840-d5f9-4bc4-9436-357894bf460e" width="400"/> </p> ##### Support for Vchord 0.4.2 Right after we rolled out the VectorChord vector database extension, the library dropped a new version [0.4.2](https://github.com/tensorchord/VectorChord/releases/tag/0.4.0) with some significant improvements (classic timing!). We've updated our server to support it and made it the default in the `docker-compose.yml` file. You don't have to upgrade, though - sticking with your current version (0.3.0) is perfectly fine. But if you want to move to the newer one, it is an option. ##### Keyboard Navigation in Timeline The timeline now supports shortcuts to make navigating between days, months, and years easier. - Use `d` or `shift + d` to jump to an earlier or later **day**. - Use `m` or `shift + m` to jump to the earlier or later **month**. - Use `y` or `shift + y` to jump to the earlier or later **year**. - Use `g` to go directly to a specific date ![image](https://github.com/user-attachments/assets/123d9a9b-c827-46fa-8e92-988225eeba49) ##### Multiple admins support You can now grant other users administrative permission by navigating to `Administration > Users > View Users > Edit User` and toggling the Admin option <img width="471" alt="image" src="https://github.com/user-attachments/assets/3b9f965b-573f-48f7-9ad0-6aacc01bb251" /> ##### Dev Containers There is an alternative way to set up a development environment using dev containers. For more information, refer to the [documentation](https://immich.app/docs/developer/devcontainers). Contributing has never been easier: Get started right away with a single click on this button to launch an entire development environment in GitHub’s Codespaces in the cloud. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/immich-app/immich/) Along with the highlights, there are many other improvements and bug fixes. Make sure to check out the full changes below. #### 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 main --> #### What's Changed ##### 🚀 Features - feat(web): granular api access controls by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18179](https://github.com/immich-app/immich/pull/18179) - feat(server): apk links API endpoint for Obtainium Android mobile-server version sync by [@&#8203;NicholasFlamy](https://github.com/NicholasFlamy) in [#&#8203;18700](https://github.com/immich-app/immich/pull/18700) - feat: delta sync by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;18428](https://github.com/immich-app/immich/pull/18428) - feat(web): improved user onboarding by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;18782](https://github.com/immich-app/immich/pull/18782) - feat(mobile): add album description functionality by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;18886](https://github.com/immich-app/immich/pull/18886) - feat(web): add a user setting for default album sort order. by [@&#8203;dagstuan](https://github.com/dagstuan) in [#&#8203;18950](https://github.com/immich-app/immich/pull/18950) - feat(mobile): hash assets in isolate by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;18924](https://github.com/immich-app/immich/pull/18924) - feat(server): add /search/statistics resource by [@&#8203;jpg0](https://github.com/jpg0) in [#&#8203;18885](https://github.com/immich-app/immich/pull/18885) - feat(mobile): add cast support by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;18341](https://github.com/immich-app/immich/pull/18341) - feat(server): Add album filter to search by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;18985](https://github.com/immich-app/immich/pull/18985) - feat(web): manage admin users by [@&#8203;nosajthenitram](https://github.com/nosajthenitram) in [#&#8203;15380](https://github.com/immich-app/immich/pull/15380) ##### 🌟 Enhancements - feat: keyboard navigation to timeline by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;17798](https://github.com/immich-app/immich/pull/17798) - chore: vchord 0.4.1 by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18588](https://github.com/immich-app/immich/pull/18588) - feat(web): tag shortcut by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18711](https://github.com/immich-app/immich/pull/18711) - feat(server): log failed healthchecks to server container stderr in verbose mode by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;18709](https://github.com/immich-app/immich/pull/18709) - feat(web): make google cast opt in by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;18514](https://github.com/immich-app/immich/pull/18514) - feat: start oauth with `autoLaunch=1` by [@&#8203;Yetangitu](https://github.com/Yetangitu) in [#&#8203;18763](https://github.com/immich-app/immich/pull/18763) - feat: add --json-output option to upload command by [@&#8203;ferdinandyb](https://github.com/ferdinandyb) in [#&#8203;18845](https://github.com/immich-app/immich/pull/18845) - feat: upload assets to locked folder by [@&#8203;arnolicious](https://github.com/arnolicious) in [#&#8203;18806](https://github.com/immich-app/immich/pull/18806) - feat(web): improve slideshow quality of life by [@&#8203;dagstuan](https://github.com/dagstuan) in [#&#8203;18778](https://github.com/immich-app/immich/pull/18778) - feat(mobile): Improve language setting UI by [@&#8203;dvbthien](https://github.com/dvbthien) in [#&#8203;18854](https://github.com/immich-app/immich/pull/18854) - feat(mobile): add bulk download functionality by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;18878](https://github.com/immich-app/immich/pull/18878) - feat(web): undo delete by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;18729](https://github.com/immich-app/immich/pull/18729) - feat(web): display number of likes in asset viewer by [@&#8203;robinbrisa](https://github.com/robinbrisa) in [#&#8203;18911](https://github.com/immich-app/immich/pull/18911) - feat(web): Change the primary asset of a stack by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;18913](https://github.com/immich-app/immich/pull/18913) - feat(web): Focus on combo box input when opening add tag modal by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;18923](https://github.com/immich-app/immich/pull/18923) - feat(mobile): Capitalize first letter when add / edit name by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;19005](https://github.com/immich-app/immich/pull/19005) - feat(mobile): update maplibre to support PMTiles in the mobile app by [@&#8203;savely-krasovsky](https://github.com/savely-krasovsky) in [#&#8203;19016](https://github.com/immich-app/immich/pull/19016) - refactor(web): tree data structure for folder and tag views by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18980](https://github.com/immich-app/immich/pull/18980) - feat(mobile): enabled DCM by [@&#8203;atollk](https://github.com/atollk) in [#&#8203;17957](https://github.com/immich-app/immich/pull/17957) - feat(server): add memories statistics resource by [@&#8203;jpg0](https://github.com/jpg0) in [#&#8203;19035](https://github.com/immich-app/immich/pull/19035) - feat(mobile): Add Scrollbar for vertical scrolling on the actions button multi-select by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;18940](https://github.com/immich-app/immich/pull/18940) - feat: pass filename in body on asset upload by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;19138](https://github.com/immich-app/immich/pull/19138) - feat: duplicate delete groups api by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;19142](https://github.com/immich-app/immich/pull/19142) - feat: service worker cache static app resources, and all entry points by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;18043](https://github.com/immich-app/immich/pull/18043) - feat: improve mobile screen reader accessibility by [@&#8203;atollk](https://github.com/atollk) in [#&#8203;17876](https://github.com/immich-app/immich/pull/17876) - feat: devcontainers by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;18007](https://github.com/immich-app/immich/pull/18007) - fix(web): OAuth quota size by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18526](https://github.com/immich-app/immich/pull/18526) - feat(server): lru cache for query embeddings by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;19181](https://github.com/immich-app/immich/pull/19181) - fix: partner asset and exif sync backfill by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;19224](https://github.com/immich-app/immich/pull/19224) - feat(web): wasm justified layout by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;19150](https://github.com/immich-app/immich/pull/19150) ##### 🐛 Bug fixes - fix(mobile): local albums translation by [@&#8203;waclaw66](https://github.com/waclaw66) in [#&#8203;18637](https://github.com/immich-app/immich/pull/18637) - fix(web): hide map button when disable by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18743](https://github.com/immich-app/immich/pull/18743) - fix: pinch zoom in mobile app by [@&#8203;toamz](https://github.com/toamz) in [#&#8203;18744](https://github.com/immich-app/immich/pull/18744) - fix(mobile): double swipe by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;18749](https://github.com/immich-app/immich/pull/18749) - fix(mobile): android status bar overlays icon in map by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;18780](https://github.com/immich-app/immich/pull/18780) - fix(web): datetime in storage template example by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;18784](https://github.com/immich-app/immich/pull/18784) - fix: oauth by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;18725](https://github.com/immich-app/immich/pull/18725) - fix(mobile): center loading spinner in people page by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;18781](https://github.com/immich-app/immich/pull/18781) - fix(mobile): group settings not respected without restart by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;18823](https://github.com/immich-app/immich/pull/18823) - fix(server): cannot share album to owner by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18802](https://github.com/immich-app/immich/pull/18802) - fix(mobile): Set the currentAsset to the asset clicked when opening an asset from folders by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;18825](https://github.com/immich-app/immich/pull/18825) - fix(mobile): notification, dialog that don't translate properly by [@&#8203;dvbthien](https://github.com/dvbthien) in [#&#8203;18827](https://github.com/immich-app/immich/pull/18827) - fix(web): Improve zoom behavior in photo-viewer. by [@&#8203;dagstuan](https://github.com/dagstuan) in [#&#8203;18803](https://github.com/immich-app/immich/pull/18803) - fix(server): tighten asset visibility by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18699](https://github.com/immich-app/immich/pull/18699) - fix(mobile): Showing videos of partner in search page quick links by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;18855](https://github.com/immich-app/immich/pull/18855) - fix(mobile): photo\_manager ignore filters by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;18742](https://github.com/immich-app/immich/pull/18742) - fix(mobile): reset current asset if we try to go on a activity list page by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;18895](https://github.com/immich-app/immich/pull/18895) - fix(mobile): t function localization by [@&#8203;waclaw66](https://github.com/waclaw66) in [#&#8203;18768](https://github.com/immich-app/immich/pull/18768) - fix(web): asset-viewer error when selecting a stacked asset by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;18881](https://github.com/immich-app/immich/pull/18881) - fix(web): persisted store by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18385](https://github.com/immich-app/immich/pull/18385) - chore(server): cleanup unused query parameters in time bucket by [@&#8203;jinxuan-owyong](https://github.com/jinxuan-owyong) in [#&#8203;18893](https://github.com/immich-app/immich/pull/18893) - fix(web): add tag button not using translation by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;18910](https://github.com/immich-app/immich/pull/18910) - fix(mobile): prevent upload intent replacement in splash screen and reset upload button when minimize app by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;18914](https://github.com/immich-app/immich/pull/18914) - fix: thumbnail fade in by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;18935](https://github.com/immich-app/immich/pull/18935) - fix: regression: sort day by fileCreatedAt again by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;18732](https://github.com/immich-app/immich/pull/18732) - fix(web): Update add to album notification to better announce errors by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;18955](https://github.com/immich-app/immich/pull/18955) - fix(web): improve asset name readability in dark mode by [@&#8203;jinxuan-owyong](https://github.com/jinxuan-owyong) in [#&#8203;19012](https://github.com/immich-app/immich/pull/19012) - fix(mobile): share asset back button exit application by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;18919](https://github.com/immich-app/immich/pull/18919) - fix(mobile): people collection page layout broken in landscape by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;19004](https://github.com/immich-app/immich/pull/19004) - fix(mobile): After editing people name, back button close the app by [@&#8203;JobiJoba](https://github.com/JobiJoba) in [#&#8203;18992](https://github.com/immich-app/immich/pull/18992) - fix(web): handling historical timezones in web client by [@&#8203;dahool](https://github.com/dahool) in [#&#8203;18905](https://github.com/immich-app/immich/pull/18905) - fix(mobile): fix nested MaterialApp by [@&#8203;dvbthien](https://github.com/dvbthien) in [#&#8203;18998](https://github.com/immich-app/immich/pull/18998) - chore: catch migration error by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;19096](https://github.com/immich-app/immich/pull/19096) - fix: count album comments and likes correctly by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;19114](https://github.com/immich-app/immich/pull/19114) - fix: don't show comments or likes for trashed assets by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;19113](https://github.com/immich-app/immich/pull/19113) - fix: album comment count including trashed assets by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;19117](https://github.com/immich-app/immich/pull/19117) - fix(server): add basic auth support by [@&#8203;elliotbrandwein](https://github.com/elliotbrandwein) in [#&#8203;16740](https://github.com/immich-app/immich/pull/16740) - chore: callback quotes by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;19126](https://github.com/immich-app/immich/pull/19126) - fix(web): properly update activityManager when browsing assets by [@&#8203;robinbrisa](https://github.com/robinbrisa) in [#&#8203;18909](https://github.com/immich-app/immich/pull/18909) - fix: cli upload deletes files that failed uploading by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;19140](https://github.com/immich-app/immich/pull/19140) - fix: skip locked photos during duplicate scan. by [@&#8203;endthestart](https://github.com/endthestart) in [#&#8203;19105](https://github.com/immich-app/immich/pull/19105) - fix(web): small issues with the memory viewer. by [@&#8203;dagstuan](https://github.com/dagstuan) in [#&#8203;19184](https://github.com/immich-app/immich/pull/19184) - fix(mobile): add translate extension by [@&#8203;dvbthien](https://github.com/dvbthien) in [#&#8203;18942](https://github.com/immich-app/immich/pull/18942) - fix: disable map fly animation when switching between assets by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;19223](https://github.com/immich-app/immich/pull/19223) - fix(web): Asset viewer stack thumbnails overflow on top of asset by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;19088](https://github.com/immich-app/immich/pull/19088) - fix(web): MemoryStore does not initialize on direct navigation by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;18947](https://github.com/immich-app/immich/pull/18947) - fix(mobile): correct share option for local asset by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;19233](https://github.com/immich-app/immich/pull/19233) ##### 📚 Documentation - fix: cursed knowledge date index by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;18801](https://github.com/immich-app/immich/pull/18801) - chore: document backup ordering by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;18807](https://github.com/immich-app/immich/pull/18807) - chore: more cursed knowledge by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;18932](https://github.com/immich-app/immich/pull/18932) - docs: update instructions for external libraries by [@&#8203;WhyNotHugo](https://github.com/WhyNotHugo) in [#&#8203;19080](https://github.com/immich-app/immich/pull/19080) - chore(docs): add rename note to synology.md by [@&#8203;YishGene](https://github.com/YishGene) in [#&#8203;17425](https://github.com/immich-app/immich/pull/17425) - docs: update the picture showing administration link by [@&#8203;jump](https://github.com/jump) in [#&#8203;19203](https://github.com/immich-app/immich/pull/19203) - chore: update truenas repo link by [@&#8203;khmyznikov](https://github.com/khmyznikov) in [#&#8203;19195](https://github.com/immich-app/immich/pull/19195) ##### 🌐 Translations - fix: Update locked folder text and improve translations by [@&#8203;dvbthien](https://github.com/dvbthien) in [#&#8203;18622](https://github.com/immich-app/immich/pull/18622) - fix: update en.json by [@&#8203;aviv926](https://github.com/aviv926) in [#&#8203;18835](https://github.com/immich-app/immich/pull/18835) - fix: translation in the tag people window by [@&#8203;nextmwa](https://github.com/nextmwa) in [#&#8203;18777](https://github.com/immich-app/immich/pull/18777) - feat(mobile): Add new language to mobile by [@&#8203;dvbthien](https://github.com/dvbthien) in [#&#8203;18891](https://github.com/immich-app/immich/pull/18891) - fix(web): add tag button tooltip not using translation by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;18921](https://github.com/immich-app/immich/pull/18921) - fix(web): Remove tag buttons in search and modal missing tooltip translations by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in [#&#8203;19087](https://github.com/immich-app/immich/pull/19087) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;18530](https://github.com/immich-app/immich/pull/18530) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;19127](https://github.com/immich-app/immich/pull/19127) #### New Contributors - [@&#8203;Yetangitu](https://github.com/Yetangitu) made their first contribution in [#&#8203;18763](https://github.com/immich-app/immich/pull/18763) - [@&#8203;ferdinandyb](https://github.com/ferdinandyb) made their first contribution in [#&#8203;18845](https://github.com/immich-app/immich/pull/18845) - [@&#8203;JobiJoba](https://github.com/JobiJoba) made their first contribution in [#&#8203;18825](https://github.com/immich-app/immich/pull/18825) - [@&#8203;dagstuan](https://github.com/dagstuan) made their first contribution in [#&#8203;18803](https://github.com/immich-app/immich/pull/18803) - [@&#8203;nextmwa](https://github.com/nextmwa) made their first contribution in [#&#8203;18777](https://github.com/immich-app/immich/pull/18777) - [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) made their first contribution in [#&#8203;18881](https://github.com/immich-app/immich/pull/18881) - [@&#8203;robinbrisa](https://github.com/robinbrisa) made their first contribution in [#&#8203;18911](https://github.com/immich-app/immich/pull/18911) - [@&#8203;jpg0](https://github.com/jpg0) made their first contribution in [#&#8203;18885](https://github.com/immich-app/immich/pull/18885) - [@&#8203;WhyNotHugo](https://github.com/WhyNotHugo) made their first contribution in [#&#8203;19080](https://github.com/immich-app/immich/pull/19080) - [@&#8203;nosajthenitram](https://github.com/nosajthenitram) made their first contribution in [#&#8203;15380](https://github.com/immich-app/immich/pull/15380) - [@&#8203;elliotbrandwein](https://github.com/elliotbrandwein) made their first contribution in [#&#8203;16740](https://github.com/immich-app/immich/pull/16740) - [@&#8203;YishGene](https://github.com/YishGene) made their first contribution in [#&#8203;17425](https://github.com/immich-app/immich/pull/17425) - [@&#8203;endthestart](https://github.com/endthestart) made their first contribution in [#&#8203;19105](https://github.com/immich-app/immich/pull/19105) - [@&#8203;jump](https://github.com/jump) made their first contribution in [#&#8203;19203](https://github.com/immich-app/immich/pull/19203) - [@&#8203;khmyznikov](https://github.com/khmyznikov) made their first contribution in [#&#8203;19195](https://github.com/immich-app/immich/pull/19195) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.134.0...v1.135.0> ### [`v1.134.0`](https://github.com/immich-app/immich/releases/tag/v1.134.0) [Compare Source](https://github.com/immich-app/immich/compare/v1.133.1...v1.134.0) ### v1.134.0 Welcome to release `v1.134.0` of Immich. This release focuses on bug fixes and enhancements from the previous release. Please find some of the highlights below: - Adds a new API endpoint to check the application version status - Adds a mechanism to handle startup reindexing after a failed model change - Improves pinch-to-zoom action on the mobile app - Replaces the administration user edit button with the action button to go straight to the user's detail page - Fixes a bug where generated memories include locked assets - Fixes a bug where the search filter panel anchors to the top of the page instead of the viewport - Fixes a bug where `ctrl/cmd + click` doesn't open the photo on a new page - Fixes various minor issues related to styling and z-index #### Support Immich <p align="center"> <img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbjY2eWc5Y2F0ZW56MmR4aWE0dDhzZXlidXRmYWZyajl1bWZidXZpcyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/87CKDqErVfMqY/giphy.gif" width="450" title="SUPPORT THE PROJECT!"> </p> <!-- Release notes generated using configuration in .github/release.yml at v1.134.0 --> #### What's Changed ##### 🌟 Enhancements - fix(web): enhance face tagging confirmation and fix [#&#8203;18605](https://github.com/immich-app/immich/issues/18605) by [@&#8203;dvbthien](https://github.com/dvbthien) in [#&#8203;18610](https://github.com/immich-app/immich/pull/18610) - feat: version check endpoint by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;18572](https://github.com/immich-app/immich/pull/18572) ##### 🐛 Bug fixes - feat: clean up memory with locked assets by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18532](https://github.com/immich-app/immich/pull/18532) - fix: more z-index issue by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18598](https://github.com/immich-app/immich/pull/18598) - fix(mobile): pinch to zoom + move acceleration by [@&#8203;toamz](https://github.com/toamz) in [#&#8203;18569](https://github.com/immich-app/immich/pull/18569) - fix(web): center memory lane buttons by [@&#8203;lukashass](https://github.com/lukashass) in [#&#8203;18613](https://github.com/immich-app/immich/pull/18613) - fix(web): modal anchor by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18621](https://github.com/immich-app/immich/pull/18621) - fix: meta+click on thumbnail by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18648](https://github.com/immich-app/immich/pull/18648) - fix: use single bulkTagAssets call instead of loop by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;18672](https://github.com/immich-app/immich/pull/18672) - fix(server): reverse isTrash field by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18665](https://github.com/immich-app/immich/pull/18665) - fix(web): move support & feedback button to user modal by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;18651](https://github.com/immich-app/immich/pull/18651) - fix(server): handle period in database name by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18590](https://github.com/immich-app/immich/pull/18590) - fix(web): handle nullable assets duration by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18679](https://github.com/immich-app/immich/pull/18679) - fix: replace edit user button with view button for user details screen by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;18683](https://github.com/immich-app/immich/pull/18683) - fix(web): update after permanently delete by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18684](https://github.com/immich-app/immich/pull/18684) - fix(server): handle startup reindexing after failed model change by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18688](https://github.com/immich-app/immich/pull/18688) ##### 🌐 Translations - feat(mobile): add Estonian by [@&#8203;IndrekHaav](https://github.com/IndrekHaav) in [#&#8203;18666](https://github.com/immich-app/immich/pull/18666) #### New Contributors - [@&#8203;toamz](https://github.com/toamz) made their first contribution in [#&#8203;18569](https://github.com/immich-app/immich/pull/18569) - [@&#8203;arnonm](https://github.com/arnonm) made their first contribution in [#&#8203;18285](https://github.com/immich-app/immich/pull/18285) - [@&#8203;IndrekHaav](https://github.com/IndrekHaav) made their first contribution in [#&#8203;18666](https://github.com/immich-app/immich/pull/18666) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.133.1...v1.134.0> ### [`v1.133.1`](https://github.com/immich-app/immich/releases/tag/v1.133.1) [Compare Source](https://github.com/immich-app/immich/compare/v1.133.0...v1.133.1) ### v1.133.1 #### Highlights - Lower disk usage during VectorChord migration - Adds move to locked album button to more views on the web - Fixes a bug where the missing button for the duplicate detection job is not working - Fixes a bug where a hard link does not navigate to the asset location on the timeline - Fixes a bug where styling information is missing in some cases - Fixes a bug where locked assets show up in local album view if it is presented on the phone - Fixes some translation issues <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### 🌟 Enhancements - feat: lower disk usage during migration by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18440](https://github.com/immich-app/immich/pull/18440) - fix: mobile user agent set to immich\_platform\_version by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;18478](https://github.com/immich-app/immich/pull/18478) - feat(web): add to locked folder in album and search by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18488](https://github.com/immich-app/immich/pull/18488) ##### 🐛 Bug fixes - fix(server): missing button for duplicate detection not working by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18433](https://github.com/immich-app/immich/pull/18433) - fix(web): pin code input by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18456](https://github.com/immich-app/immich/pull/18456) - fix(web): Locked folder by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;18438](https://github.com/immich-app/immich/pull/18438) - fix: translations from background service by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;18473](https://github.com/immich-app/immich/pull/18473) - fix: more z-index issue by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18493](https://github.com/immich-app/immich/pull/18493) - fix(web): multi-select by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18485](https://github.com/immich-app/immich/pull/18485) - fix: translation vibes by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;18490](https://github.com/immich-app/immich/pull/18490) - fix(mobile): chinese translation by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18491](https://github.com/immich-app/immich/pull/18491) - fix: hard link navigation by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18489](https://github.com/immich-app/immich/pull/18489) - fix(mobile): don't show locked asset in local album view by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18536](https://github.com/immich-app/immich/pull/18536) - fix: tailwind issues by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;18528](https://github.com/immich-app/immich/pull/18528) ##### 📚 Documentation - fix(docs): more vchord details by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;18435](https://github.com/immich-app/immich/pull/18435) - fix(docs): mention `DB_VECTOR_EXTENSION` env in pgvector->vchord migration guide by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18508](https://github.com/immich-app/immich/pull/18508) ##### 🌐 Translations - fix: typo in english translation by [@&#8203;cgkantidis](https://github.com/cgkantidis) in [#&#8203;18434](https://github.com/immich-app/immich/pull/18434) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;18391](https://github.com/immich-app/immich/pull/18391) #### New Contributors - [@&#8203;cgkantidis](https://github.com/cgkantidis) made their first contribution in [#&#8203;18434](https://github.com/immich-app/immich/pull/18434) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.133.0>... ### [`v1.133.0`](https://github.com/immich-app/immich/releases/tag/v1.133.0) [Compare Source](https://github.com/immich-app/immich/compare/v1.132.3...v1.133.0) ### v1.133.0 - The Hot Summer Release > \[!CAUTION] > > # BREAKING CHANGES > > 1. ## Mobile app version > > Please make sure to have the mobile app and the server on the same version for this release. Older versions of the mobile app will not work correctly with version `v1.133.0` of the server. At the time of this release, the updated version of the mobile app should be available on the app stores. > > 2. ## Upgrading the server from a very old release > > As of 1.133.0, Immich only supports upgrading directly from 1.107.2 or later. If you’re trying to upgrade a version of Immich below this, please upgrade to 1.107.2 first and ensure Immich starts up successfully before continuing to the latest release. > > 3. ## New database vector extension > > We are migrating off the deprecated pgvecto.rs database extension to its successor [VectorChord](https://github.com/tensorchord/VectorChord), which comes with performance improvements in almost all aspects. This change is a major milestone we want to perform prior to the stable release. > > Before making any other changes, please [back up your database](https://immich.app/docs/administration/backup-and-restore). While every effort has been made to make this migration as smooth as possible, there’s always a chance that something can go wrong. > > After making a backup, please modify your `docker-compose.yml` file with the following information. ```diff [...] database: container_name: immich_postgres - image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@&#8203;sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52 + image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' + # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs + # DB_STORAGE_TYPE: 'HDD' volumes: ### Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file - ${DB_DATA_LOCATION}:/var/lib/postgresql/data - healthcheck: - test: >- - pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; - Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align - --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; - echo "checksum failure count is $$Chksum"; - [ "$$Chksum" = '0' ] || exit 1 - interval: 5m - start_interval: 30s - start_period: 5m - command: >- - postgres - -c shared_preload_libraries=vectors.so - -c 'search_path="$$user", public, vectors' - -c logging_collector=on - -c max_wal_size=2GB - -c shared_buffers=512MB - -c wal_compression=on restart: always [...] ``` If you deviated from the defaults of pg14 or pgvectors0.2.0, you must adjust the pg major version and pgvecto.rs version. If you are still using the default `docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0` image, you can just follow the changes above. For example, if the previous image is `docker.io/tensorchord/pgvecto-rs:pg16-v0.3.0`, the new image should be `ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0` instead of the image specified in the diff. After making these changes, you can start Immich as normal. Immich will make some changes to the DB during startup, which can take seconds to minutes to finish, depending on hardware and library size. In particular, it’s normal for the server logs to be seemingly stuck at `Reindexing clip_index` and `Reindexing face_index`for some time if you have over 100k assets in Immich and/or Immich is on a relatively weak server. If you see these logs and there are no errors, just give it time. > \[!IMPORTANT] > Note: after switching to VectorChord, you should not downgrade Immich below 1.133.0. Please don’t hesitate to contact us here on GitHub or [Discord](https://discord.immich.app/) if you encounter migration issues. #### VectorChord FAQ ##### I have a separate PostgreSQL instance shared with multiple services. How can I switch to VectorChord? Please see <https://immich.app/docs/administration/postgres-standalone#migrating-to-vectorchord> for migration instructions. The migration path will be different depending on whether you’re currently using pgvecto.rs or pgvector, as well as whether Immich has superuser DB permissions. ##### What will happen if I upgrade Immich to 1.133.0 without changing the DB image? Immich will auto-detect the vector extension available in the DB and continue to work without manual intervention. However, we will drop support for pgvecto.rs in a later release, so please switch at your convenience. ##### I’m using a different deployment method than Docker Compose. How should I migrate? If you’re using Immich through turnkey deployment methods such as TrueNAS apps, the respective maintainers will either perform the migration transparently or inform you of what to do if not. ##### Why are so many lines removed from the `docker-compose.yml` file? Does this mean the health check is removed? These lines are now incorporated into the image itself along with some additional tuning. ##### What does this change mean for my existing DB backups? The new DB image includes pgvector and pgvecto.rs in addition to VectorChord, so you can use this image to restore from existing backups that used either of these extensions. However, backups made after switching to VectorChord require an image containing VectorChord to restore successfully. ##### Do I still need pgvecto.rs installed after migrating to VectorChord? pgvecto.rs only needs to be available during the migration, or if you need to restore from a backup that used pgvecto.rs. For a leaner DB and a smaller image, you can optionally switch to an image variant that doesn’t have pgvecto.rs installed after you’ve performed the migration and started Immich: `ghcr.io/immich-app/postgres:14-vectorchord0.3.0`, changing the PostgreSQL version as appropriate. ##### Why does it matter whether my database is on an SSD or an HDD? These storage mediums have different performance characteristics. As a result, the optimal settings for an SSD are not the same as those for an HDD. Either configuration is compatible with SSD and HDD, but using the right configuration will make Immich snappier. As a general tip, we recommend users store the database on an SSD whenever possible. ##### Can I use the new database image as a general PostgreSQL image outside of Immich? It’s a standard PostgreSQL container image that additionally contains the VectorChord, pgvector, and (optionally) pgvecto.rs extensions. If you were using the previous pgvecto.rs image for other purposes, you can similarly do so with this image. ##### If pgvecto.rs and pgvector still work, why should I switch to VectorChord? VectorChord is faster, more stable, uses less RAM, and (with the settings Immich uses) offers higher-quality results than pgvector and pgvecto.rs. This translates to better search and facial recognition experiences. In addition, pgvecto.rs support will be dropped in the future, so changing it sooner will avoid disruption. *** #### Highlights Welcome to the release `v1.133.0` of Immich, which is the hottest release yet for this summer, with more than 200 commits since the last version. This version brings you a new database extension, an even more optimized and faster timeline, more unified components on the web, some cool new features that have been requested for a long time, and many bug fixes and improvements. Let’s dive in! - VectorChord database extension - In-app notification - Show map in albums view (web only) - Locked folder - Google Cast Support (web only) - User detail page - RTL text support on the web - Performance improvement in web timeline - Notable fix: thumbnail caching issue on the mobile app - Notable fix: For users who use OAuth, you can now configure `TOKEN_ENDPOINT_AUTH_METHOD` to either `client_sect_post` or `client_secret_basic` after entering the `CLIENT_SECRET` - Sneak peek ##### In-app notification Introducing an in-app, or internal, notification system. Previously, there was no way to notify you on the client if a database backup failed. Now, the failed backup will show up under a new notification section on the web. This mechanism paves the way for other helpful notifications, such as when a new album is shared with you or when new assets are added to a shared album, directly in the app. <p align="center"> <img width="250" src="https://github.com/user-attachments/assets/fba2adee-f14b-43ef-b61e-359f7196fc12" /> <img width="250" src="https://github.com/user-attachments/assets/d98b7aca-5890-42cf-bbc7-72f6eb8080ad" /> </p> ##### Show map in albums view On the web, you can now click this button to see the map view that shows the location of all the photos and videos in an album. <p align="center"> <img width="350" src="https://github.com/user-attachments/assets/814c217c-58d7-44d0-abfe-06f063cdb0a2" /> <img width="800" src="https://github.com/user-attachments/assets/04c623d4-fb86-4b8b-9d9f-b1921caccccb" /> </p> ##### Locked folder Have you ever taken embarrassing selfies that you don’t want anyone to see, and worry that you could accidentally reveal them while showcasing your superb Immich library? **Locked folder** view got you covered, with a personal PIN code, and an option to use biometric verification on the mobile app. You can access the page from the sidebar on the web or in the `Library` page on the app <p align="center"> <img width="350" src="https://github.com/user-attachments/assets/d0012b99-a77f-4d8f-a7b3-fb1d1728dfe0" /> </p> <https://github.com/user-attachments/assets/f0d33556-54db-44fa-88cb-10399cd2df2d> <p align="center"> <img width="550" src="https://github.com/user-attachments/assets/087a836c-0280-4391-bab5-69ecf2dbd2fe" /> ) </p> You can select any assets and add them to the locked folder. They will only be shown in the locked folder view. ##### Google Cast Support We now have casting support! Immich now supports casting to Google Cast enabled devices like the Google Chromecast. This feature is currently only available on the web, with mobile app support coming in the near future. You can use images, videos and slideshows with casting. <p align="center"> <img width="400" alt="image" src="https://github.com/user-attachments/assets/2e7f10c1-ba38-482b-a46f-4dcecc0df13e" /> <img width="1163" alt="image" src="https://github.com/user-attachments/assets/db1e45ec-8395-4982-8600-8248a0e51cdc" /> </p> > \[!NOTE] > > Your Immich instance must be accessed through a public HTTPS endpoint in order for the casting device to successfully load media. Accessing the instance and casting from a private HTTPS endpoint (or an HTTP endpoint) will result in the cast receiver failing to load any media. ##### User detail page From the user management page of the admin view, you can now get a more in-depth view of individual users for their information, usage statistics, and which features they have enabled, etc, by clicking on the email from the user’s table <p align="center"> <img width="500" alt="image" src="https://github.com/user-attachments/assets/4b951ee3-0322-4a20-8176-73e70d25453b" /> <img width="800" alt="image" src="https://github.com/user-attachments/assets/d936c01f-d4fd-45ee-9435-ee08837a6003" /> </p> ##### RTL text support on the web The web styling has been changed to accommodate RTL languages <img width="800" alt="image" src="https://github.com/user-attachments/assets/39fd9ded-f557-4538-b5f3-9ef79f593862" /> ##### Performance improvement in web timeline Last time, we discussed thinking that the timeline performance has reached its prime and that adding more gains would be difficult. In this release, we managed to squeeze that gain like a ripe orange. The timeline will automatically cancel the requests to the server when you scroll very fast, displaying the thumbnails instantaneously when the scrolling stops. Previously, the web needed to finish the requests for the thumbnails being scrolled by, even if they are not displayed on the viewport. This change significantly reduces the load time. An additional optimization has been made to reduce the data packet for each thumbnail to about 30% of its original size. This optimization contributes to a greater loading speed on the timeline. We hope you enjoy these impressive improvements. ##### Sneak Peak Besides the cool features and enhancements that made their way into the application, along with many bug fixes, our highest priority at the moment is moving toward the stable release. A big chunk of time and dedication from the team is now spent on improving the mobile app synchronization system, basically rewriting the flow and designing the data model from the ground up. At the same time, we’re working to properly allocate CPU-intensive tasks to background threads to avoid app stuttering and jerkiness when the data sync between the server and the mobile app happens. Below is the chart result comparing the local album sync between the current version and the reworked version. **Current version** ![image](https://github.com/user-attachments/assets/e105606e-dc31-494e-b28f-2ee6bbbb309c) **Improved version** ![image](https://github.com/user-attachments/assets/d92aa2ca-2b35-4380-bee2-2257664472bf) We are working hard to get it into the application in the coming months and are very excited about this new improvement. Cheers! The Immich Team #### 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 purchase our merchandise at <https://immich.store> <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### 🚨 Breaking Changes - refactor: user avatar color by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;17753](https://github.com/immich-app/immich/pull/17753) - chore: remove old memory lane implementation by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;18000](https://github.com/immich-app/immich/pull/18000) - feat: vectorchord by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18042](https://github.com/immich-app/immich/pull/18042) ##### 🚀 Features - feat: rtl by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;17860](https://github.com/immich-app/immich/pull/17860) - feat: notifications by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;17701](https://github.com/immich-app/immich/pull/17701) - feat(web): Map in albums & shared albums by [@&#8203;davidpcrd](https://github.com/davidpcrd) in [#&#8203;17906](https://github.com/immich-app/immich/pull/17906) - feat(server): visibility column by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;17939](https://github.com/immich-app/immich/pull/17939) - feat: user pin-code by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18138](https://github.com/immich-app/immich/pull/18138) - feat(web): user detail page by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;18230](https://github.com/immich-app/immich/pull/18230) - feat: locked/private view by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18268](https://github.com/immich-app/immich/pull/18268) - feat: add session creation endpoint by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;18295](https://github.com/immich-app/immich/pull/18295) - feat(web): continue after login by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;18302](https://github.com/immich-app/immich/pull/18302) - feat: bulk change description by [@&#8203;koostamas](https://github.com/koostamas) in [#&#8203;18288](https://github.com/immich-app/immich/pull/18288) - feat: locked view mobile by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18316](https://github.com/immich-app/immich/pull/18316) - feat(web): add support for casting by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;18231](https://github.com/immich-app/immich/pull/18231) ##### 🌟 Enhancements - feat: api response compression by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;17878](https://github.com/immich-app/immich/pull/17878) - feat(mobile): Capitalize month names in asset grid by [@&#8203;atollk](https://github.com/atollk) in [#&#8203;17898](https://github.com/immich-app/immich/pull/17898) - feat: preload and cancel images with a service worker by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;16893](https://github.com/immich-app/immich/pull/16893) - feat(mobile): save grid size on gesture resize by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;17891](https://github.com/immich-app/immich/pull/17891) - feat(web): move duplicates controls above preview of duplicate images by [@&#8203;LukeTowers](https://github.com/LukeTowers) in [#&#8203;17837](https://github.com/immich-app/immich/pull/17837) - feat(server): JXL previews from DNG 1.7+ by [@&#8203;eligao](https://github.com/eligao) in [#&#8203;17861](https://github.com/immich-app/immich/pull/17861) - feat(web): responsive date group header height by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;17944](https://github.com/immich-app/immich/pull/17944) - feat: configure token endpoint auth method by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;17968](https://github.com/immich-app/immich/pull/17968) - feat: Add DB\_SSL\_MODE environment variable for Postgres sslmode by [@&#8203;typokign](https://github.com/typokign) in [#&#8203;18025](https://github.com/immich-app/immich/pull/18025) - feat(web): stat card tweaks by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;18189](https://github.com/immich-app/immich/pull/18189) - feat(web): clear person birthdate by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;18330](https://github.com/immich-app/immich/pull/18330) - fix(web): format dates with the locale preference by [@&#8203;Sese-Schneider](https://github.com/Sese-Schneider) in [#&#8203;18259](https://github.com/immich-app/immich/pull/18259) - feat(web): lighter timeline buckets by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;17719](https://github.com/immich-app/immich/pull/17719) - feat(server): sort images in duplicate groups by date by [@&#8203;GeoffreyFrogeye](https://github.com/GeoffreyFrogeye) in [#&#8203;18347](https://github.com/immich-app/immich/pull/18347) - feat(server): lighter buckets by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;17831](https://github.com/immich-app/immich/pull/17831) ##### 🐛 Bug fixes - fix(web): Make date-time formatting follow locale by [@&#8203;atollk](https://github.com/atollk) in [#&#8203;17899](https://github.com/immich-app/immich/pull/17899) - fix(mobile): Share page URL by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;17834](https://github.com/immich-app/immich/pull/17834) - fix(server): handle orientation of imported face regions by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;18021](https://github.com/immich-app/immich/pull/18021) - fix: update assets when `duplicateId` is provided as `null` by [@&#8203;TitanNano](https://github.com/TitanNano) in [#&#8203;18071](https://github.com/immich-app/immich/pull/18071) - fix(mobile): empty translation placeholders by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;18063](https://github.com/immich-app/immich/pull/18063) - fix(server): more robust person thumbnail generation by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;17974](https://github.com/immich-app/immich/pull/17974) - fix(mobile): Remote video playback and asset download on Android with mTLS by [@&#8203;rovo89](https://github.com/rovo89) in [#&#8203;16403](https://github.com/immich-app/immich/pull/16403) - fix: z-index war in the asset viewer by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;18091](https://github.com/immich-app/immich/pull/18091) - fix: properly work with languages with multiple scripts by [@&#8203;LPkkjHD](https://github.com/LPkkjHD) in [#&#8203;18167](https://github.com/immich-app/immich/pull/18167) - fix(web): user restore by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;18188](https://github.com/immich-app/immich/pull/18188) - fix(server): vacuum after deleting people by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18299](https://github.com/immich-app/immich/pull/18299) - refactor(server): "on this day" memory creation by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;18333](https://github.com/immich-app/immich/pull/18333) - fix(web): Make QR code colors solid by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;18340](https://github.com/immich-app/immich/pull/18340) - fix: delay settings apply for slideshow popup by [@&#8203;dj0024javia](https://github.com/dj0024javia) in [#&#8203;18028](https://github.com/immich-app/immich/pull/18028) - fix(mobile): reduce stutter/jank on search pages by [@&#8203;Saschl](https://github.com/Saschl) in [#&#8203;18363](https://github.com/immich-app/immich/pull/18363) - fix(mobile): stale thumbnail cache by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18351](https://github.com/immich-app/immich/pull/18351) - fix(server): select main stream according to bitrate by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in [#&#8203;18375](https://github.com/immich-app/immich/pull/18375) - fix(mobile): do not continue on remote stream parse error by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;18344](https://github.com/immich-app/immich/pull/18344) ##### 📚 Documentation - fix: documentation - synology install docker link by [@&#8203;peterdenham](https://github.com/peterdenham) in [#&#8203;18084](https://github.com/immich-app/immich/pull/18084) - fix(docs): update nginx reverse proxy by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;18104](https://github.com/immich-app/immich/pull/18104) - fix(docs): remove old patch versions from version switcher by [@&#8203;NicholasFlamy](https://github.com/NicholasFlamy) in [#&#8203;18130](https://github.com/immich-app/immich/pull/18130) - chore: update truenas install guide by [@&#8203;DjP-iX](https://github.com/DjP-iX) in [#&#8203;18142](https://github.com/immich-app/immich/pull/18142) - docs: face lift, botox x3 by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;18184](https://github.com/immich-app/immich/pull/18184) - fix(docs): Update old jellyfin docs links by [@&#8203;tetrois](https://github.com/tetrois) in [#&#8203;18311](https://github.com/immich-app/immich/pull/18311) - chore: update docker-compose to add storage type configuration by [@&#8203;zackpollard](https://github.com/zackpollard) in [#&#8203;18415](https://github.com/immich-app/immich/pull/18415) - fix(docs): vchord migration by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;18418](https://github.com/immich-app/immich/pull/18418) - chore: remove duplicate finder from community projects by [@&#8203;bo0tzz](https://github.com/bo0tzz) in [#&#8203;18424](https://github.com/immich-app/immich/pull/18424) - chore: update milestones by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;18426](https://github.com/immich-app/immich/pull/18426) ##### 🌐 Translations - chore(mobile): translate toast messages by [@&#8203;ben-basten](https://github.com/ben-basten) in [#&#8203;17964](https://github.com/immich-app/immich/pull/17964) - fix: add missing translations to face editor by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;17993](https://github.com/immich-app/immich/pull/17993) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;17817](https://github.com/immich-app/immich/pull/17817) - chore: add language requests from weblate by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;18050](https://github.com/immich-app/immich/pull/18050) - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;18083](https://github.com/immich-app/immich/pull/18083) #### New Contributors - [@&#8203;LukeTowers](https://github.com/LukeTowers) made their first contribution in [#&#8203;17837](https://github.com/immich-app/immich/pull/17837) - [@&#8203;davidpcrd](https://github.com/davidpcrd) made their first contribution in [#&#8203;17906](https://github.com/immich-app/immich/pull/17906) - [@&#8203;peterdenham](https://github.com/peterdenham) made their first contribution in [#&#8203;18084](https://github.com/immich-app/immich/pull/18084) - [@&#8203;TitanNano](https://github.com/TitanNano) made their first contribution in [#&#8203;18071](https://github.com/immich-app/immich/pull/18071) - [@&#8203;typokign](https://github.com/typokign) made their first contribution in [#&#8203;18025](https://github.com/immich-app/immich/pull/18025) - [@&#8203;dahool](https://github.com/dahool) made their first contribution in [#&#8203;18127](https://github.com/immich-app/immich/pull/18127) - [@&#8203;LPkkjHD](https://github.com/LPkkjHD) made their first contribution in [#&#8203;18167](https://github.com/immich-app/immich/pull/18167) - [@&#8203;tetrois](https://github.com/tetrois) made their first contribution in [#&#8203;18311](https://github.com/immich-app/immich/pull/18311) - [@&#8203;koostamas](https://github.com/koostamas) made their first contribution in [#&#8203;18288](https://github.com/immich-app/immich/pull/18288) - [@&#8203;dj0024javia](https://github.com/dj0024javia) made their first contribution in [#&#8203;18028](https://github.com/immich-app/immich/pull/18028) - [@&#8203;TomK32](https://github.com/TomK32) made their first contribution in [#&#8203;17309](https://github.com/immich-app/immich/pull/17309) **Full Changelog**: <https://github.com/immich-app/immich/compare/v1.132.3>... </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **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 [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuNiIsInVwZGF0ZWRJblZlciI6IjQxLjExNi42IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbWFnZSJdfQ==-->
renovate-bot added the
image
label 2025-10-01 23:02:23 +00:00
renovate-bot added 1 commit 2025-10-01 23:02:25 +00:00
Update ghcr.io/immich-app/immich-server Docker tag to v2
All checks were successful
lint-test-helm / helm-lint (pull_request) Successful in 8s
b9e2a23b8d
All checks were successful
lint-test-helm / helm-lint (pull_request) Successful in 8s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/ghcr.io-immich-app-immich-server-2.x:renovate/ghcr.io-immich-app-immich-server-2.x
git checkout renovate/ghcr.io-immich-app-immich-server-2.x
Sign in to join this conversation.
No description provided.