Update Immich to v1.137.3 #145

Merged
peter merged 2 commits from renovate/immich into master 2025-08-02 08:23:40 +02:00
Collaborator

This PR contains the following updates:

Package Update Change
ghcr.io/immich-app/immich-machine-learning minor v1.131.2 -> v1.137.3
ghcr.io/immich-app/immich-server minor v1.136.0 -> v1.137.3

Release Notes

immich-app/immich (ghcr.io/immich-app/immich-machine-learning)

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...

v1.132.3

Compare Source

v1.132.3

Bug fixes

  • Opt-in delete sync is now available on Android!
    We found an alternative method to achieve this. The feature is now available on Android. We are excited to hear about your experience with the feature. Please read this note about the feature
  • Fixes an issue where the mobile app cannot log in with an instance using Authelia for OAuth.

[!IMPORTANT]
Please update your Authelia config with the following property

token_endpoint_auth_method: "client_secret_post"
  • Fixes an issue where navigating to the Library page could trigger a location permission request
  • Fixes an issue where the mobile app might rehash some of the assets

What's Changed

🐛 Bug fixes
📚 Documentation

New Contributors

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

v1.132.1

Compare Source

v1.132.1

Hotfixes

  • Reverting the opt-in delete synchronization in this release 😢. There is an issue with getting the Google PlayStore to approve the app with the new permission needed for this feature. We are exploring alternative routes to preserve this feature and will push out another update as soon as possible
  • Fixes an issue where the server does not start on ARM devices

What's Changed

🐛 Bug fixes

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

v1.132.0

Compare Source

v1.132.0

Highlights

[!NOTE]
We are now using Valkey's image for the Redis service in the default docker-compose.yml template. This is not a required change. If you wish to use it, you can download the docker-compose.yml file at the bottom of the release notes and replace the redis image with the new one.

Welcome to version v1.132.0 of Immich.

This release marks an exciting milestone, inching one step closer to the stable release. The server no longer relies on TypeORM (database object-relational mapping); from this point forward, we utilize our own schema and migration management tool, integrated with Kysely. Related, the mobile app will also begin to use a new database, SQLite. Over the next few releases, we plan to roll out a new, efficient sync implementation using SQLite, which should improve startup time and reduce jankiness, especially when working with large media collections.

In addition to the two milestones mentioned above, this release also features new enhancements, bug fixes, and other notable additions. Please see the highlights below.

  • Opt-in web-mobile delete action synchronization on Android
  • Improve web responsive design on mobile devices
  • Migrate mobile app translations to Weblate
  • Improve mobile app map performance
Opt-in web-mobile delete synchronization (Android only)

This update includes a new, optional feature currently in an experimental phase. It aims to synchronize deletion actions between the Immich web interface and your connected Android device.

If you choose to enable this feature (Settings > Advanced > Sync remote deletion), trashing, deleting, or restoring a photo or video through the Immich web interface will result in the corresponding action being taken on the file on your Android phone. This functionality is intended to prevent the need to perform the same trash action separately on both Immich and your phone.

When this feature is active, the sequence of events is as follows:

  1. Your photos get backed up from your phone to Immich.
  2. Later, you use the Immich website to trash some of those photos.
  3. The next time you open the Immich app on your phone, the app will find those photos you trashed on the website and move them to your phone's trash folder for you.
  4. If you choose to restore the asset from Immich’s trash, it will also be moved out of your phone’s trash folder.

Note: The location of the phone's trash folder varies by device. For example, Samsung devices often use the Gallery app's trash, while Google Pixel devices may use the Files app's trash.)

Improve web responsive design on mobile devices.

This release makes significant improvements to the browsing experience of the web app on mobile devices. The sidebar is now collapsible, leaving more space to view the timeline. We’ve also changed the size of the images in the timeline on mobile, with the hope of making more images visible at once.

Just as we thought we had squeezed every ounce of performance out of the timeline scrolling, a wizard in the contributor team pushed it even further. The need for speed is real! We hope you enjoy it.
Mobile app translations have been migrated to Weblate.

The i18n on the mobile app, previously managed with Localizely, has now been migrated to Weblate. Anyone can help with translation without needing to obtain an invitation from us.

Along with those changes, we have made many more improvements to the quality of the server, web, and mobile app. We hope you enjoy those as well.

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
🔒 Security
🚀 Features
🌟 Enhancements
🐛 Bug fixes
📚 Documentation
🌐 Translations

New Contributors

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

v1.131.3

Compare Source

v1.131.3

Hotfixes

  • Fixes an issue where the mobile app shows incorrect memories.
  • Fixes an issue where the web timeline doesn't load when there is a blank locale.
  • Fixes an issue where the full-size image doesn't migrate correctly.
  • Fixes an issue where the select-all button doesn't reflect the correct selection state.

What's Changed

🐛 Bug fixes

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.131.2...v1.131.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 becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates 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-machine-learning](https://github.com/immich-app/immich) | minor | `v1.131.2` -> `v1.137.3` | | [ghcr.io/immich-app/immich-server](https://github.com/immich-app/immich) | minor | `v1.136.0` -> `v1.137.3` | --- ### Release Notes <details> <summary>immich-app/immich (ghcr.io/immich-app/immich-machine-learning)</summary> ### [`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 https://github.com/immich-app/immich/pull/20511 - fix: migration if media location is set by [@&#8203;danieldietzler](https://github.com/danieldietzler) in 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 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 https://github.com/immich-app/immich/pull/19995 - fix: default route permission by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/20113 ##### 🚀 Features - feat(server): person delete by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/19511 - feat: nightly tasks by [@&#8203;jrasm91](https://github.com/jrasm91) in 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 https://github.com/immich-app/immich/pull/19971 - feat(mobile): android widgets by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/19310 - feat(mobile): beta sync stats page by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/19950 ##### 🌟 Enhancements - fix(web): consistent merge people icons by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/19473 - feat(mobile): deep links by [@&#8203;bwees](https://github.com/bwees) in 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 https://github.com/immich-app/immich/pull/19510 - feat(server): check additional exif date tags by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/19216 - feat: use request host as default SSR domain by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/19485 - feat: oauth role claim by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/19758 - chore: Use a contrasted color for text avatar by [@&#8203;ferraridamiano](https://github.com/ferraridamiano) in https://github.com/immich-app/immich/pull/19756 - feat(web): update icons by [@&#8203;Hamster45105](https://github.com/Hamster45105) in 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 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 https://github.com/immich-app/immich/pull/19730 - feat(web): better coordinate parsing by [@&#8203;Hamster45105](https://github.com/Hamster45105) in https://github.com/immich-app/immich/pull/19832 - feat(widgets): iOS widget improvements by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/19893 - feat(mobile): new upload by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18726 - feat: play live photos on hover by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/19962 - feat(web): Remove from Stack by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in https://github.com/immich-app/immich/pull/19703 ##### 🐛 Bug fixes - fix(web): map cluster by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/19433 - fix: storage template onboarding save by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/19405 - fix(web): map broken after redirect from details by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in https://github.com/immich-app/immich/pull/19424 - fix(server): filter parameters by database and role by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/19392 - fix(web): toggle favorite by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/19453 - fix(web): timeline timezone by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/19418 - fix(web): oauth quota display by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in 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 https://github.com/immich-app/immich/pull/19471 - fix: iOS widget webp support by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/19469 - fix: return 404 for invalid shared link pages by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/19493 - fix(web): load day group in asset viewer by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/19523 - feat(deployment): add shm\_size for PG by [@&#8203;mmomjian](https://github.com/mmomjian) in 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 https://github.com/immich-app/immich/pull/19520 - fix(web): absolute path match in external library by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/19551 - fix(web): modal race condition by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/19625 - fix(server): prevent duplicate geodata temp table by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/18580 - fix(web): viewing asset lock by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in 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 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 https://github.com/immich-app/immich/pull/19019 - fix: allow insecure connections in iOS WidgetExtension by [@&#8203;made2k](https://github.com/made2k) in https://github.com/immich-app/immich/pull/19863 - fix: startup log level by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/19885 - fix(web): allow renaming person without merging by [@&#8203;lukashass](https://github.com/lukashass) in 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 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 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 https://github.com/immich-app/immich/pull/19934 - fix: send filename when viewing the original file by [@&#8203;MeguminSama](https://github.com/MeguminSama) in https://github.com/immich-app/immich/pull/20005 - fix: ML recognition distance UI form validation by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/20107 - fix: unset prewarn param by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/20109 ##### 📚 Documentation - fix(docs): portainer absolute paths by [@&#8203;mmomjian](https://github.com/mmomjian) in https://github.com/immich-app/immich/pull/19459 - fix(docs): add DB\_USERNAME when needed by [@&#8203;mmomjian](https://github.com/mmomjian) in 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 https://github.com/immich-app/immich/pull/18624 - docs: document `DB_STORAGE_TYPE` environment variable by [@&#8203;ramonsmits](https://github.com/ramonsmits) in https://github.com/immich-app/immich/pull/19609 - docs: fix typo of webp listed under jpeg by [@&#8203;OffsetMonkey538](https://github.com/OffsetMonkey538) in https://github.com/immich-app/immich/pull/19743 - fix(docs): library and folders minor adjustments by [@&#8203;skatsubo](https://github.com/skatsubo) in https://github.com/immich-app/immich/pull/19642 - fix: path in external library docs by [@&#8203;DominikVogel](https://github.com/DominikVogel) in https://github.com/immich-app/immich/pull/19901 - fix(docs): Nightly Tasks Settings by [@&#8203;skatsubo](https://github.com/skatsubo) in https://github.com/immich-app/immich/pull/19907 - chore: also redirect docs/ with trailing slash by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/19965 ##### 🌐 Translations - feat(mobile): enable Croatian (hr) translations by [@&#8203;fmis13](https://github.com/fmis13) in 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 https://github.com/immich-app/immich/pull/19970 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/19228 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/20076 - fix: more inclusive language by [@&#8203;maybeanerd](https://github.com/maybeanerd) in https://github.com/immich-app/immich/pull/20092 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/20082 #### New Contributors - [@&#8203;fmis13](https://github.com/fmis13) made their first contribution in https://github.com/immich-app/immich/pull/19428 - [@&#8203;seifer44](https://github.com/seifer44) made their first contribution in https://github.com/immich-app/immich/pull/18624 - [@&#8203;ramonsmits](https://github.com/ramonsmits) made their first contribution in https://github.com/immich-app/immich/pull/19609 - [@&#8203;OffsetMonkey538](https://github.com/OffsetMonkey538) made their first contribution in https://github.com/immich-app/immich/pull/19743 - [@&#8203;matthieu-db](https://github.com/matthieu-db) made their first contribution in https://github.com/immich-app/immich/pull/19771 - [@&#8203;Hamster45105](https://github.com/Hamster45105) made their first contribution in https://github.com/immich-app/immich/pull/19831 - [@&#8203;SkwalExe](https://github.com/SkwalExe) made their first contribution in https://github.com/immich-app/immich/pull/19730 - [@&#8203;made2k](https://github.com/made2k) made their first contribution in https://github.com/immich-app/immich/pull/19863 - [@&#8203;DominikVogel](https://github.com/DominikVogel) made their first contribution in https://github.com/immich-app/immich/pull/19901 - [@&#8203;evan314159](https://github.com/evan314159) made their first contribution in https://github.com/immich-app/immich/pull/19934 - [@&#8203;lcs-crr](https://github.com/lcs-crr) made their first contribution in https://github.com/immich-app/immich/pull/19970 - [@&#8203;MeguminSama](https://github.com/MeguminSama) made their first contribution in https://github.com/immich-app/immich/pull/20005 - [@&#8203;maybeanerd](https://github.com/maybeanerd) made their first contribution in 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 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 https://github.com/immich-app/immich/pull/19245 - fix: panning interrupted while moving around the map by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/19276 - fix: album list CSS margins by [@&#8203;PaulSonOfLars](https://github.com/PaulSonOfLars) in https://github.com/immich-app/immich/pull/19262 - fix(server): drop vector indices before updating extension by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/19283 - fix(server): unset prewarm dim parameter by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/19271 - fix: album asset viewer by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/19252 - fix(web): exit slideshow when exiting fullscreen. by [@&#8203;dagstuan](https://github.com/dagstuan) in https://github.com/immich-app/immich/pull/19247 - fix: local network permission by [@&#8203;alextran1502](https://github.com/alextran1502) in 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 https://github.com/immich-app/immich/pull/19253 - fix: .find() iterator api combat by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/19293 - fix: people ordering incorrect by [@&#8203;zackpollard](https://github.com/zackpollard) in https://github.com/immich-app/immich/pull/19298 - fix: iOS 17.0 target version for widget by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/19308 ##### 📚 Documentation - fix(docs): REINDEX vchord on upgrade by [@&#8203;mmomjian](https://github.com/mmomjian) in https://github.com/immich-app/immich/pull/19282 #### New Contributors - [@&#8203;PaulSonOfLars](https://github.com/PaulSonOfLars) made their first contribution in 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 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 https://github.com/immich-app/immich/pull/18700 - feat: delta sync by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/18428 - feat(web): improved user onboarding by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/18782 - feat(mobile): add album description functionality by [@&#8203;JobiJoba](https://github.com/JobiJoba) in 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 https://github.com/immich-app/immich/pull/18950 - feat(mobile): hash assets in isolate by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/18924 - feat(server): add /search/statistics resource by [@&#8203;jpg0](https://github.com/jpg0) in https://github.com/immich-app/immich/pull/18885 - feat(mobile): add cast support by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/18341 - feat(server): Add album filter to search by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in https://github.com/immich-app/immich/pull/18985 - feat(web): manage admin users by [@&#8203;nosajthenitram](https://github.com/nosajthenitram) in https://github.com/immich-app/immich/pull/15380 ##### 🌟 Enhancements - feat: keyboard navigation to timeline by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/17798 - chore: vchord 0.4.1 by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/18588 - feat(web): tag shortcut by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in 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 https://github.com/immich-app/immich/pull/18709 - feat(web): make google cast opt in by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/18514 - feat: start oauth with `autoLaunch=1` by [@&#8203;Yetangitu](https://github.com/Yetangitu) in https://github.com/immich-app/immich/pull/18763 - feat: add --json-output option to upload command by [@&#8203;ferdinandyb](https://github.com/ferdinandyb) in https://github.com/immich-app/immich/pull/18845 - feat: upload assets to locked folder by [@&#8203;arnolicious](https://github.com/arnolicious) in https://github.com/immich-app/immich/pull/18806 - feat(web): improve slideshow quality of life by [@&#8203;dagstuan](https://github.com/dagstuan) in https://github.com/immich-app/immich/pull/18778 - feat(mobile): Improve language setting UI by [@&#8203;dvbthien](https://github.com/dvbthien) in https://github.com/immich-app/immich/pull/18854 - feat(mobile): add bulk download functionality by [@&#8203;JobiJoba](https://github.com/JobiJoba) in https://github.com/immich-app/immich/pull/18878 - feat(web): undo delete by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in 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 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 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 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 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 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 https://github.com/immich-app/immich/pull/18980 - feat(mobile): enabled DCM by [@&#8203;atollk](https://github.com/atollk) in https://github.com/immich-app/immich/pull/17957 - feat(server): add memories statistics resource by [@&#8203;jpg0](https://github.com/jpg0) in 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 https://github.com/immich-app/immich/pull/18940 - feat: pass filename in body on asset upload by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/19138 - feat: duplicate delete groups api by [@&#8203;jrasm91](https://github.com/jrasm91) in 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 https://github.com/immich-app/immich/pull/18043 - feat: improve mobile screen reader accessibility by [@&#8203;atollk](https://github.com/atollk) in https://github.com/immich-app/immich/pull/17876 - feat: devcontainers by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/18007 - fix(web): OAuth quota size by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/18526 - feat(server): lru cache for query embeddings by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/19181 - fix: partner asset and exif sync backfill by [@&#8203;zackpollard](https://github.com/zackpollard) in https://github.com/immich-app/immich/pull/19224 - feat(web): wasm justified layout by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/19150 ##### 🐛 Bug fixes - fix(mobile): local albums translation by [@&#8203;waclaw66](https://github.com/waclaw66) in https://github.com/immich-app/immich/pull/18637 - fix(web): hide map button when disable by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/18743 - fix: pinch zoom in mobile app by [@&#8203;toamz](https://github.com/toamz) in https://github.com/immich-app/immich/pull/18744 - fix(mobile): double swipe by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in 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 https://github.com/immich-app/immich/pull/18780 - fix(web): datetime in storage template example by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in https://github.com/immich-app/immich/pull/18784 - fix: oauth by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/18725 - fix(mobile): center loading spinner in people page by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in 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 https://github.com/immich-app/immich/pull/18823 - fix(server): cannot share album to owner by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in 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 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 https://github.com/immich-app/immich/pull/18827 - fix(web): Improve zoom behavior in photo-viewer. by [@&#8203;dagstuan](https://github.com/dagstuan) in https://github.com/immich-app/immich/pull/18803 - fix(server): tighten asset visibility by [@&#8203;mertalev](https://github.com/mertalev) in 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 https://github.com/immich-app/immich/pull/18855 - fix(mobile): photo\_manager ignore filters by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in 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 https://github.com/immich-app/immich/pull/18895 - fix(mobile): t function localization by [@&#8203;waclaw66](https://github.com/waclaw66) in 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 https://github.com/immich-app/immich/pull/18881 - fix(web): persisted store by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in 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 https://github.com/immich-app/immich/pull/18893 - fix(web): add tag button not using translation by [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) in 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 https://github.com/immich-app/immich/pull/18914 - fix: thumbnail fade in by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/18935 - fix: regression: sort day by fileCreatedAt again by [@&#8203;midzelis](https://github.com/midzelis) in 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 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 https://github.com/immich-app/immich/pull/19012 - fix(mobile): share asset back button exit application by [@&#8203;JobiJoba](https://github.com/JobiJoba) in 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 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 https://github.com/immich-app/immich/pull/18992 - fix(web): handling historical timezones in web client by [@&#8203;dahool](https://github.com/dahool) in https://github.com/immich-app/immich/pull/18905 - fix(mobile): fix nested MaterialApp by [@&#8203;dvbthien](https://github.com/dvbthien) in https://github.com/immich-app/immich/pull/18998 - chore: catch migration error by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/19096 - fix: count album comments and likes correctly by [@&#8203;zackpollard](https://github.com/zackpollard) in 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 https://github.com/immich-app/immich/pull/19113 - fix: album comment count including trashed assets by [@&#8203;zackpollard](https://github.com/zackpollard) in https://github.com/immich-app/immich/pull/19117 - fix(server): add basic auth support by [@&#8203;elliotbrandwein](https://github.com/elliotbrandwein) in https://github.com/immich-app/immich/pull/16740 - chore: callback quotes by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/19126 - fix(web): properly update activityManager when browsing assets by [@&#8203;robinbrisa](https://github.com/robinbrisa) in https://github.com/immich-app/immich/pull/18909 - fix: cli upload deletes files that failed uploading by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/19140 - fix: skip locked photos during duplicate scan. by [@&#8203;endthestart](https://github.com/endthestart) in https://github.com/immich-app/immich/pull/19105 - fix(web): small issues with the memory viewer. by [@&#8203;dagstuan](https://github.com/dagstuan) in https://github.com/immich-app/immich/pull/19184 - fix(mobile): add translate extension by [@&#8203;dvbthien](https://github.com/dvbthien) in 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 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 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 https://github.com/immich-app/immich/pull/18947 - fix(mobile): correct share option for local asset by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/19233 ##### 📚 Documentation - fix: cursed knowledge date index by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/18801 - chore: document backup ordering by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/18807 - chore: more cursed knowledge by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/18932 - docs: update instructions for external libraries by [@&#8203;WhyNotHugo](https://github.com/WhyNotHugo) in https://github.com/immich-app/immich/pull/19080 - chore(docs): add rename note to synology.md by [@&#8203;YishGene](https://github.com/YishGene) in https://github.com/immich-app/immich/pull/17425 - docs: update the picture showing administration link by [@&#8203;jump](https://github.com/jump) in https://github.com/immich-app/immich/pull/19203 - chore: update truenas repo link by [@&#8203;khmyznikov](https://github.com/khmyznikov) in 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 https://github.com/immich-app/immich/pull/18622 - fix: update en.json by [@&#8203;aviv926](https://github.com/aviv926) in https://github.com/immich-app/immich/pull/18835 - fix: translation in the tag people window by [@&#8203;nextmwa](https://github.com/nextmwa) in https://github.com/immich-app/immich/pull/18777 - feat(mobile): Add new language to mobile by [@&#8203;dvbthien](https://github.com/dvbthien) in 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 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 https://github.com/immich-app/immich/pull/19087 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/18530 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/19127 #### New Contributors - [@&#8203;Yetangitu](https://github.com/Yetangitu) made their first contribution in https://github.com/immich-app/immich/pull/18763 - [@&#8203;ferdinandyb](https://github.com/ferdinandyb) made their first contribution in https://github.com/immich-app/immich/pull/18845 - [@&#8203;JobiJoba](https://github.com/JobiJoba) made their first contribution in https://github.com/immich-app/immich/pull/18825 - [@&#8203;dagstuan](https://github.com/dagstuan) made their first contribution in https://github.com/immich-app/immich/pull/18803 - [@&#8203;nextmwa](https://github.com/nextmwa) made their first contribution in https://github.com/immich-app/immich/pull/18777 - [@&#8203;xCJPECKOVERx](https://github.com/xCJPECKOVERx) made their first contribution in https://github.com/immich-app/immich/pull/18881 - [@&#8203;robinbrisa](https://github.com/robinbrisa) made their first contribution in https://github.com/immich-app/immich/pull/18911 - [@&#8203;jpg0](https://github.com/jpg0) made their first contribution in https://github.com/immich-app/immich/pull/18885 - [@&#8203;WhyNotHugo](https://github.com/WhyNotHugo) made their first contribution in https://github.com/immich-app/immich/pull/19080 - [@&#8203;nosajthenitram](https://github.com/nosajthenitram) made their first contribution in https://github.com/immich-app/immich/pull/15380 - [@&#8203;elliotbrandwein](https://github.com/elliotbrandwein) made their first contribution in https://github.com/immich-app/immich/pull/16740 - [@&#8203;YishGene](https://github.com/YishGene) made their first contribution in https://github.com/immich-app/immich/pull/17425 - [@&#8203;endthestart](https://github.com/endthestart) made their first contribution in https://github.com/immich-app/immich/pull/19105 - [@&#8203;jump](https://github.com/jump) made their first contribution in https://github.com/immich-app/immich/pull/19203 - [@&#8203;khmyznikov](https://github.com/khmyznikov) made their first contribution in 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 https://github.com/immich-app/immich/pull/18610 - feat: version check endpoint by [@&#8203;danieldietzler](https://github.com/danieldietzler) in 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 https://github.com/immich-app/immich/pull/18532 - fix: more z-index issue by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18598 - fix(mobile): pinch to zoom + move acceleration by [@&#8203;toamz](https://github.com/toamz) in https://github.com/immich-app/immich/pull/18569 - fix(web): center memory lane buttons by [@&#8203;lukashass](https://github.com/lukashass) in https://github.com/immich-app/immich/pull/18613 - fix(web): modal anchor by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18621 - fix: meta+click on thumbnail by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18648 - fix: use single bulkTagAssets call instead of loop by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/18672 - fix(server): reverse isTrash field by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in 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 https://github.com/immich-app/immich/pull/18651 - fix(server): handle period in database name by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/18590 - fix(web): handle nullable assets duration by [@&#8203;alextran1502](https://github.com/alextran1502) in 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 https://github.com/immich-app/immich/pull/18683 - fix(web): update after permanently delete by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in 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 https://github.com/immich-app/immich/pull/18688 ##### 🌐 Translations - feat(mobile): add Estonian by [@&#8203;IndrekHaav](https://github.com/IndrekHaav) in https://github.com/immich-app/immich/pull/18666 #### New Contributors - [@&#8203;toamz](https://github.com/toamz) made their first contribution in https://github.com/immich-app/immich/pull/18569 - [@&#8203;arnonm](https://github.com/arnonm) made their first contribution in https://github.com/immich-app/immich/pull/18285 - [@&#8203;IndrekHaav](https://github.com/IndrekHaav) made their first contribution in 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 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 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 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 https://github.com/immich-app/immich/pull/18433 - fix(web): pin code input by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/18456 - fix(web): Locked folder by [@&#8203;mmomjian](https://github.com/mmomjian) in https://github.com/immich-app/immich/pull/18438 - fix: translations from background service by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/18473 - fix: more z-index issue by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18493 - fix(web): multi-select by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/18485 - fix: translation vibes by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/18490 - fix(mobile): chinese translation by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18491 - fix: hard link navigation by [@&#8203;alextran1502](https://github.com/alextran1502) in 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 https://github.com/immich-app/immich/pull/18536 - fix: tailwind issues by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/18528 ##### 📚 Documentation - fix(docs): more vchord details by [@&#8203;mmomjian](https://github.com/mmomjian) in 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 https://github.com/immich-app/immich/pull/18508 ##### 🌐 Translations - fix: typo in english translation by [@&#8203;cgkantidis](https://github.com/cgkantidis) in https://github.com/immich-app/immich/pull/18434 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/18391 #### New Contributors - [@&#8203;cgkantidis](https://github.com/cgkantidis) made their first contribution in 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 https://github.com/immich-app/immich/pull/17753 - chore: remove old memory lane implementation by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/18000 - feat: vectorchord by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/18042 ##### 🚀 Features - feat: rtl by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/17860 - feat: notifications by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/17701 - feat(web): Map in albums & shared albums by [@&#8203;davidpcrd](https://github.com/davidpcrd) in https://github.com/immich-app/immich/pull/17906 - feat(server): visibility column by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17939 - feat: user pin-code by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18138 - feat(web): user detail page by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/18230 - feat: locked/private view by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18268 - feat: add session creation endpoint by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/18295 - feat(web): continue after login by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/18302 - feat: bulk change description by [@&#8203;koostamas](https://github.com/koostamas) in https://github.com/immich-app/immich/pull/18288 - feat: locked view mobile by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18316 - feat(web): add support for casting by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/18231 ##### 🌟 Enhancements - feat: api response compression by [@&#8203;zackpollard](https://github.com/zackpollard) in https://github.com/immich-app/immich/pull/17878 - feat(mobile): Capitalize month names in asset grid by [@&#8203;atollk](https://github.com/atollk) in 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 https://github.com/immich-app/immich/pull/16893 - feat(mobile): save grid size on gesture resize by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in 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 https://github.com/immich-app/immich/pull/17837 - feat(server): JXL previews from DNG 1.7+ by [@&#8203;eligao](https://github.com/eligao) in https://github.com/immich-app/immich/pull/17861 - feat(web): responsive date group header height by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/17944 - feat: configure token endpoint auth method by [@&#8203;jrasm91](https://github.com/jrasm91) in 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 https://github.com/immich-app/immich/pull/18025 - feat(web): stat card tweaks by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/18189 - feat(web): clear person birthdate by [@&#8203;jrasm91](https://github.com/jrasm91) in 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 https://github.com/immich-app/immich/pull/18259 - feat(web): lighter timeline buckets by [@&#8203;midzelis](https://github.com/midzelis) in 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 https://github.com/immich-app/immich/pull/18347 - feat(server): lighter buckets by [@&#8203;midzelis](https://github.com/midzelis) in 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 https://github.com/immich-app/immich/pull/17899 - fix(mobile): Share page URL by [@&#8203;mmomjian](https://github.com/mmomjian) in https://github.com/immich-app/immich/pull/17834 - fix(server): handle orientation of imported face regions by [@&#8203;skatsubo](https://github.com/skatsubo) in 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 https://github.com/immich-app/immich/pull/18071 - fix(mobile): empty translation placeholders by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/18063 - fix(server): more robust person thumbnail generation by [@&#8203;mertalev](https://github.com/mertalev) in 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 https://github.com/immich-app/immich/pull/16403 - fix: z-index war in the asset viewer by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/18091 - fix: properly work with languages with multiple scripts by [@&#8203;LPkkjHD](https://github.com/LPkkjHD) in https://github.com/immich-app/immich/pull/18167 - fix(web): user restore by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/18188 - fix(server): vacuum after deleting people by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/18299 - refactor(server): "on this day" memory creation by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/18333 - fix(web): Make QR code colors solid by [@&#8203;Snowknight26](https://github.com/Snowknight26) in https://github.com/immich-app/immich/pull/18340 - fix: delay settings apply for slideshow popup by [@&#8203;dj0024javia](https://github.com/dj0024javia) in https://github.com/immich-app/immich/pull/18028 - fix(mobile): reduce stutter/jank on search pages by [@&#8203;Saschl](https://github.com/Saschl) in https://github.com/immich-app/immich/pull/18363 - fix(mobile): stale thumbnail cache by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18351 - fix(server): select main stream according to bitrate by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in 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 https://github.com/immich-app/immich/pull/18344 ##### 📚 Documentation - fix: documentation - synology install docker link by [@&#8203;peterdenham](https://github.com/peterdenham) in https://github.com/immich-app/immich/pull/18084 - fix(docs): update nginx reverse proxy by [@&#8203;mmomjian](https://github.com/mmomjian) in 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 https://github.com/immich-app/immich/pull/18130 - chore: update truenas install guide by [@&#8203;DjP-iX](https://github.com/DjP-iX) in https://github.com/immich-app/immich/pull/18142 - docs: face lift, botox x3 by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/18184 - fix(docs): Update old jellyfin docs links by [@&#8203;tetrois](https://github.com/tetrois) in 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 https://github.com/immich-app/immich/pull/18415 - fix(docs): vchord migration by [@&#8203;mmomjian](https://github.com/mmomjian) in https://github.com/immich-app/immich/pull/18418 - chore: remove duplicate finder from community projects by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/18424 - chore: update milestones by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/18426 ##### 🌐 Translations - chore(mobile): translate toast messages by [@&#8203;ben-basten](https://github.com/ben-basten) in https://github.com/immich-app/immich/pull/17964 - fix: add missing translations to face editor by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/17993 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/17817 - chore: add language requests from weblate by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/18050 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/18083 #### New Contributors - [@&#8203;LukeTowers](https://github.com/LukeTowers) made their first contribution in https://github.com/immich-app/immich/pull/17837 - [@&#8203;davidpcrd](https://github.com/davidpcrd) made their first contribution in https://github.com/immich-app/immich/pull/17906 - [@&#8203;peterdenham](https://github.com/peterdenham) made their first contribution in https://github.com/immich-app/immich/pull/18084 - [@&#8203;TitanNano](https://github.com/TitanNano) made their first contribution in https://github.com/immich-app/immich/pull/18071 - [@&#8203;typokign](https://github.com/typokign) made their first contribution in https://github.com/immich-app/immich/pull/18025 - [@&#8203;dahool](https://github.com/dahool) made their first contribution in https://github.com/immich-app/immich/pull/18127 - [@&#8203;LPkkjHD](https://github.com/LPkkjHD) made their first contribution in https://github.com/immich-app/immich/pull/18167 - [@&#8203;tetrois](https://github.com/tetrois) made their first contribution in https://github.com/immich-app/immich/pull/18311 - [@&#8203;koostamas](https://github.com/koostamas) made their first contribution in https://github.com/immich-app/immich/pull/18288 - [@&#8203;dj0024javia](https://github.com/dj0024javia) made their first contribution in https://github.com/immich-app/immich/pull/18028 - [@&#8203;TomK32](https://github.com/TomK32) made their first contribution in https://github.com/immich-app/immich/pull/17309 **Full Changelog**: https://github.com/immich-app/immich/compare/v1.132.3... ### [`v1.132.3`](https://github.com/immich-app/immich/releases/tag/v1.132.3) [Compare Source](https://github.com/immich-app/immich/compare/v1.132.1...v1.132.3) ### v1.132.3 #### Bug fixes - Opt-in delete sync is now available on Android! We found an alternative method to achieve this. The feature is now available on Android. We are excited to hear about your experience with the feature. Please read this [note](https://github.com/immich-app/immich/releases/tag/v1.132.0) about the feature - Fixes an issue where the mobile app cannot log in with an instance using Authelia for OAuth. > \[!IMPORTANT] > Please update your Authelia config with the following property > > ``` > token_endpoint_auth_method: "client_secret_post" > ``` - Fixes an issue where navigating to the Library page could trigger a location permission request - Fixes an issue where the mobile app might rehash some of the assets <!-- Release notes generated using configuration in .github/release.yml at v1.132.3 --> #### What's Changed ##### 🐛 Bug fixes - fix(mobile): auto trash using MANAGE\_MEDIA by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/17828 - fix(mobile): mobile migration logic by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17865 - fix(mobile): revert get location on app start by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in https://github.com/immich-app/immich/pull/17882 - fix: Authelia OAuth code verifier value contains invalid characters by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17886 ##### 📚 Documentation - fix(docs): incorrect date sorting by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/17858 - docs: update MapTiler name by [@&#8203;MartinMikita](https://github.com/MartinMikita) in https://github.com/immich-app/immich/pull/17863 #### New Contributors - [@&#8203;MartinMikita](https://github.com/MartinMikita) made their first contribution in https://github.com/immich-app/immich/pull/17863 **Full Changelog**: https://github.com/immich-app/immich/compare/v1.132.1...v1.132.3 ### [`v1.132.1`](https://github.com/immich-app/immich/releases/tag/v1.132.1) [Compare Source](https://github.com/immich-app/immich/compare/v1.132.0...v1.132.1) ### v1.132.1 #### Hotfixes - Reverting the opt-in delete synchronization in this release 😢. There is an issue with getting the Google PlayStore to approve the app with the new permission needed for this feature. We are exploring alternative routes to preserve this feature and will push out another update as soon as possible - Fixes an issue where the server does not start on ARM devices <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### 🐛 Bug fixes - fix(server): bump sharp by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/17818 - chore: reverting opt-in deletion feature by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17819 **Full Changelog**: https://github.com/immich-app/immich/compare/v1.132.0...v1.132.1 ### [`v1.132.0`](https://github.com/immich-app/immich/releases/tag/v1.132.0) [Compare Source](https://github.com/immich-app/immich/compare/v1.131.3...v1.132.0) ### v1.132.0 #### Highlights > \[!NOTE]\ > We are now using Valkey's image for the Redis service in the default docker-compose.yml template. This is not a required change. If you wish to use it, you can download the `docker-compose.yml` file at the bottom of the release notes and replace the redis image with the new one. Welcome to version `v1.132.0` of Immich. This release marks an exciting milestone, inching one step closer to the stable release. The server no longer relies on TypeORM (database object-relational mapping); from this point forward, we utilize our own schema and migration management tool, integrated with Kysely. Related, the mobile app will also begin to use a new database, SQLite. Over the next few releases, we plan to roll out a new, efficient sync implementation using SQLite, which should improve startup time and reduce jankiness, especially when working with large media collections. In addition to the two milestones mentioned above, this release also features new enhancements, bug fixes, and other notable additions. Please see the highlights below. - Opt-in web-mobile delete action synchronization on Android - Improve web responsive design on mobile devices - Migrate mobile app translations to Weblate - Improve mobile app map performance ##### Opt-in web-mobile delete synchronization (Android only) This update includes a new, optional feature currently in an experimental phase. It aims to synchronize deletion actions between the Immich web interface and your connected Android device. <p align="center"> <img src="https://github.com/user-attachments/assets/f24bc239-84a4-423a-bc44-45213ab514a3" width="300"/> </p> If you choose to enable this feature (`Settings > Advanced > Sync remote deletion`), trashing, deleting, or restoring a photo or video through the Immich web interface will result in the corresponding action being taken on the file on your Android phone. This functionality is intended to prevent the need to perform the same trash action separately on both Immich and your phone. When this feature is active, the sequence of events is as follows: 1. Your photos get backed up from your phone to Immich. 2. Later, you use the **Immich website** to trash some of those photos. 3. The **next time you open the Immich app on your phone**, the app will find those photos you trashed on the website and move them to your phone's trash folder for you. 4. If you choose to **restore** the asset from Immich’s trash, it will also be moved out of your phone’s trash folder. > *Note: The location of the phone's trash folder varies by device. For example, Samsung devices often use the Gallery app's trash, while Google Pixel devices may use the Files app's trash.)* ##### Improve web responsive design on mobile devices. This release makes significant improvements to the browsing experience of the web app on mobile devices. The sidebar is now collapsible, leaving more space to view the timeline. We’ve also changed the size of the images in the timeline on mobile, with the hope of making more images visible at once. <p align="center"> <img src="https://github.com/user-attachments/assets/3ff6037e-d009-4b34-9453-cb038abb19b6" width="300"/> </p> Just as we thought we had squeezed every ounce of performance out of the timeline scrolling, a wizard in the contributor team pushed it even further. The need for speed is real! We hope you enjoy it. ##### Mobile app translations have been migrated to Weblate. The i18n on the mobile app, previously managed with Localizely, has now been migrated to Weblate. Anyone can help with translation without needing to obtain an invitation from us. Along with those changes, we have made many more improvements to the quality of the server, web, and mobile app. We hope you enjoy those as well. #### 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 #### What's Changed ##### 🚨 Breaking Changes - refactor: notification-admin controller by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/17748 ##### 🔒 Security - fix: various actions workflow security improvements by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/17651 - feat: static analysis job for gha workflows by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/17688 ##### 🚀 Features - feat(web): expand/collapse sidebar by [@&#8203;ben-basten](https://github.com/ben-basten) in https://github.com/immich-app/immich/pull/16768 - feat(mobile): sqlite by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/16861 - feat(server): Avoid face match with people born after file creation [#&#8203;4743](https://github.com/immich-app/immich/issues/4743) by [@&#8203;abhinav96](https://github.com/abhinav96) in https://github.com/immich-app/immich/pull/16918 - feat: opt-in sync of deletes and restores from web to Android by [@&#8203;aleksandrsovtan](https://github.com/aleksandrsovtan) in https://github.com/immich-app/immich/pull/16732 - feat(server): read additional lens exif tags by [@&#8203;Snowknight26](https://github.com/Snowknight26) in https://github.com/immich-app/immich/pull/17125 - feat: sync pictureFile with oidc if it isn't set already by [@&#8203;Etienne-bdt](https://github.com/Etienne-bdt) in https://github.com/immich-app/immich/pull/17397 - feat: view qr code from share modal by [@&#8203;jrasm91](https://github.com/jrasm91) in https://github.com/immich-app/immich/pull/17544 - feat(mobile): use Weblate for i18n (1) by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17609 - feat: user sync stream by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/16862 ##### 🌟 Enhancements - feat: allow accounts with a quota of 0 GiB by [@&#8203;rubenhensen](https://github.com/rubenhensen) in https://github.com/immich-app/immich/pull/17413 - feat(web): improve individual share ux by [@&#8203;devsnek](https://github.com/devsnek) in https://github.com/immich-app/immich/pull/17430 - feat: use browser download manager for single file downloads by [@&#8203;ROODAY](https://github.com/ROODAY) in https://github.com/immich-app/immich/pull/17507 - feat: show thumbhash behind load error, if possible by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/17554 - feat: responsive: skeleton by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/17553 - feat: responsive-web: shrink mem-lane by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/17550 - chore(mobile): small visual fix and update by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17547 - feat(server): parse EXIF creation time for some insta360 images by [@&#8203;Kirens](https://github.com/Kirens) in https://github.com/immich-app/immich/pull/17564 - perf(mobile): optimize date loading with batch loading by [@&#8203;andreymir](https://github.com/andreymir) in https://github.com/immich-app/immich/pull/17240 - feat: responsive controlbar by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/17601 - refactor(server): remove asset placeholder by [@&#8203;etnoy](https://github.com/etnoy) in https://github.com/immich-app/immich/pull/17621 - chore(server): don't check null dates by [@&#8203;etnoy](https://github.com/etnoy) in https://github.com/immich-app/immich/pull/17664 - feat(mobile): search on places page by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in https://github.com/immich-app/immich/pull/17679 - feat(mobile): map improvements by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in https://github.com/immich-app/immich/pull/17714 - feat: add album start and end dates for storage template by [@&#8203;exciton](https://github.com/exciton) in https://github.com/immich-app/immich/pull/17188 - perf(mobile): remove load of thumbnails in the image provider by [@&#8203;EinToni](https://github.com/EinToni) in https://github.com/immich-app/immich/pull/17773 - perf(mobile): remove small thumbnail and cache generated thumbnails by [@&#8203;EinToni](https://github.com/EinToni) in https://github.com/immich-app/immich/pull/17792 ##### 🐛 Bug fixes - fix(web): fix thumbnail hover link position by [@&#8203;Snowknight26](https://github.com/Snowknight26) in https://github.com/immich-app/immich/pull/16762 - fix(web): use original image if web compatible by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/17347 - refactor(mobile): device asset entity to use modified time by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/17064 - fix(mobile): bump isar maxSize by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/17372 - fix: reset memories on logout by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/17405 - fix(web): Video memories are played at 100% volume instead of respecting user preference by [@&#8203;Zlendy](https://github.com/Zlendy) in https://github.com/immich-app/immich/pull/17424 - fix(mobile): prevent unnecessary reload on multi user timeline by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/17418 - fix(mobile): video player restarting when device rotates by [@&#8203;Sese-Schneider](https://github.com/Sese-Schneider) in https://github.com/immich-app/immich/pull/17362 - fix(mobile): items not deselecting on back button by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in https://github.com/immich-app/immich/pull/17403 - fix(mobile): use custom filter to fetch asset path entities by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/17344 - fix(mobile): exifInfo not updated on sync by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/17407 - fix(server): Exclude album assets in shared link payload by [@&#8203;mPyKen](https://github.com/mPyKen) in https://github.com/immich-app/immich/pull/17207 - fix(mobile): hide asset description text field if user is not owner by [@&#8203;gaganyadav80](https://github.com/gaganyadav80) in https://github.com/immich-app/immich/pull/17442 - fix: broken start/end dates on album update by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/17467 - fix(mobile): adds support for Internationalized Domain Name (IDN) by [@&#8203;gaganyadav80](https://github.com/gaganyadav80) in https://github.com/immich-app/immich/pull/17461 - fix: no thumbnail generated for motion assets by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17472 - fix(mobile): asset grid will infinitely scroll on iOS when select and… by [@&#8203;gaganyadav80](https://github.com/gaganyadav80) in https://github.com/immich-app/immich/pull/17469 - fix: patch-package install in docker build and better postgres patch by [@&#8203;bwees](https://github.com/bwees) in https://github.com/immich-app/immich/pull/17523 - fix: test\_sets\_default\_sess\_options fails if compiling with globally enabled cuda by [@&#8203;Pleune](https://github.com/Pleune) in https://github.com/immich-app/immich/pull/17516 - fix(web): mobile view double scroll layer by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17528 - fix(web): reset search history after logout by [@&#8203;ben-basten](https://github.com/ben-basten) in https://github.com/immich-app/immich/pull/17534 - fix(mobile): remove locate asset button from trashed asset by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in https://github.com/immich-app/immich/pull/17503 - fix: live photo hiding by [@&#8203;danieldietzler](https://github.com/danieldietzler) in https://github.com/immich-app/immich/pull/17548 - fix: responsive: long press while scroll by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/17555 - fix: occasional empty buckets, after canceled loads by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/17552 - fix(web): search bar deactivates when focus exits by [@&#8203;ben-basten](https://github.com/ben-basten) in https://github.com/immich-app/immich/pull/17549 - fix: read longitude and latitude when reverse geocoding is off by [@&#8203;atollk](https://github.com/atollk) in https://github.com/immich-app/immich/pull/17558 - fix: responsive: timeline glitch and keyboard-accessible scrubber by [@&#8203;midzelis](https://github.com/midzelis) in https://github.com/immich-app/immich/pull/17556 - fix(web): improve mobile web album viewer padding by [@&#8203;aamirazad](https://github.com/aamirazad) in https://github.com/immich-app/immich/pull/17575 - fix(mobile): exif not updated on sync by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in https://github.com/immich-app/immich/pull/17633 - fix: skip places that no longer exist in geo import by [@&#8203;darookee](https://github.com/darookee) in https://github.com/immich-app/immich/pull/17637 - fix: use IMMICH\_HOST in microservices by [@&#8203;yparitcher](https://github.com/yparitcher) in https://github.com/immich-app/immich/pull/17659 - fix(web): map marker positioning in details pane by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in https://github.com/immich-app/immich/pull/17754 - fix(mobile): use immutable cache keys for local images by [@&#8203;lukaszwawrzyk](https://github.com/lukaszwawrzyk) in https://github.com/immich-app/immich/pull/17794 - fix: cache build versions by [@&#8203;zackpollard](https://github.com/zackpollard) in https://github.com/immich-app/immich/pull/17811 - fix: retrieve version from lockfile and fallback to cli command by [@&#8203;zackpollard](https://github.com/zackpollard) in https://github.com/immich-app/immich/pull/17812 ##### 📚 Documentation - docs: fixed a wrong path in CLI docs page by [@&#8203;l0ll098](https://github.com/l0ll098) in https://github.com/immich-app/immich/pull/17369 - fix: restore mangled footnotes by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/17446 - docs: Add PowerShell example for running web client only by [@&#8203;ROODAY](https://github.com/ROODAY) in https://github.com/immich-app/immich/pull/17546 - chore(doc): translation instruction for mobile app by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17629 - chore: add immich-cli docker example by [@&#8203;ppuschmann](https://github.com/ppuschmann) in https://github.com/immich-app/immich/pull/17595 - fix(docs): Database dump warnings by [@&#8203;mmomjian](https://github.com/mmomjian) in https://github.com/immich-app/immich/pull/17676 - feat(docs): documentation update by [@&#8203;aviv926](https://github.com/aviv926) in https://github.com/immich-app/immich/pull/17720 - docs: updated community-projects.tsx: lrc-immich-plugin by [@&#8203;bmachek](https://github.com/bmachek) in https://github.com/immich-app/immich/pull/17801 ##### 🌐 Translations - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/17254 - feat(mobile): remove duplicated i18n file by [@&#8203;AutisticShark](https://github.com/AutisticShark) in https://github.com/immich-app/immich/pull/17591 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/17438 - chore(web): cleanup unused translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/17624 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/17627 - chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in https://github.com/immich-app/immich/pull/17808 #### New Contributors - [@&#8203;rubenhensen](https://github.com/rubenhensen) made their first contribution in https://github.com/immich-app/immich/pull/17413 - [@&#8203;devsnek](https://github.com/devsnek) made their first contribution in https://github.com/immich-app/immich/pull/17430 - [@&#8203;aleksandrsovtan](https://github.com/aleksandrsovtan) made their first contribution in https://github.com/immich-app/immich/pull/16732 - [@&#8203;ROODAY](https://github.com/ROODAY) made their first contribution in https://github.com/immich-app/immich/pull/17507 - [@&#8203;Pleune](https://github.com/Pleune) made their first contribution in https://github.com/immich-app/immich/pull/17516 - [@&#8203;Kirens](https://github.com/Kirens) made their first contribution in https://github.com/immich-app/immich/pull/17564 - [@&#8203;atollk](https://github.com/atollk) made their first contribution in https://github.com/immich-app/immich/pull/17558 - [@&#8203;AutisticShark](https://github.com/AutisticShark) made their first contribution in https://github.com/immich-app/immich/pull/17591 - [@&#8203;EinToni](https://github.com/EinToni) made their first contribution in https://github.com/immich-app/immich/pull/17594 - [@&#8203;andreymir](https://github.com/andreymir) made their first contribution in https://github.com/immich-app/immich/pull/17240 - [@&#8203;ppuschmann](https://github.com/ppuschmann) made their first contribution in https://github.com/immich-app/immich/pull/17595 - [@&#8203;darookee](https://github.com/darookee) made their first contribution in https://github.com/immich-app/immich/pull/17637 - [@&#8203;exciton](https://github.com/exciton) made their first contribution in https://github.com/immich-app/immich/pull/17188 **Full Changelog**: https://github.com/immich-app/immich/compare/v1.131.3...v1.132.0 ### [`v1.131.3`](https://github.com/immich-app/immich/releases/tag/v1.131.3) [Compare Source](https://github.com/immich-app/immich/compare/v1.131.2...v1.131.3) ### v1.131.3 #### Hotfixes - Fixes an issue where the mobile app shows incorrect memories. - Fixes an issue where the web timeline doesn't load when there is a blank locale. - Fixes an issue where the full-size image doesn't migrate correctly. - Fixes an issue where the select-all button doesn't reflect the correct selection state. #### What's Changed ##### 🐛 Bug fixes - fix: strip extra metadata when transcoding by [@&#8203;bo0tzz](https://github.com/bo0tzz) in https://github.com/immich-app/immich/pull/17297 - fix(mobile): getAllByRemoteId return all assets on empty arguments value by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17263 - fix(web): date time change reactivity by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17306 - fix(web): blank locale cause blank timeline to render by [@&#8203;alextran1502](https://github.com/alextran1502) in https://github.com/immich-app/immich/pull/17284 - fix(web): select all button displays incorrectly by [@&#8203;wuzihao051119](https://github.com/wuzihao051119) in https://github.com/immich-app/immich/pull/17305 - fix(server): full-size images not migrated or deleted correctly by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/17308 - fix(server): use stat instead of exifinfo for file date metadata by [@&#8203;mertalev](https://github.com/mertalev) in https://github.com/immich-app/immich/pull/17311 #### New Contributors - [@&#8203;wuzihao051119](https://github.com/wuzihao051119) made their first contribution in https://github.com/immich-app/immich/pull/17305 **Full Changelog**: https://github.com/immich-app/immich/compare/v1.131.2...v1.131.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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates 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:eyJjcmVhdGVkSW5WZXIiOiI0MS40Ni42IiwidXBkYXRlZEluVmVyIjoiNDEuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
renovate-bot added 1 commit 2025-08-02 02:02:10 +02:00
peter added 1 commit 2025-08-02 08:23:33 +02:00
peter merged commit 5c1b8e8a02 into master 2025-08-02 08:23:40 +02:00
peter deleted branch renovate/immich 2025-08-02 08:23:40 +02:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: peter/homelab-docker-config#145