Skip to content

feat(mobile): open in browser#26369

Merged
alextran1502 merged 7 commits intomainfrom
feat/open-in-browser
Mar 16, 2026
Merged

feat(mobile): open in browser#26369
alextran1502 merged 7 commits intomainfrom
feat/open-in-browser

Conversation

@YarosMallorca
Copy link
Collaborator

Description

Implements #21020

How Has This Been Tested?

Tested on Android AVD. Needs testing on iOS.

Screenshots

image

Please describe to which degree, if any, an LLM was used in creating this pull request.

AI was not used during development

Copy link
Collaborator

@timonrieger timonrieger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tested on iOS ✅

Minor suggestion

Maybe group the action in a different/existing section in the menu 🤔 , otherwise there are a lot grey dividers

image

@YarosMallorca
Copy link
Collaborator Author

@timonrieger thanks for testing, it is strange that there are so many dividers, I gotta test it on a stack, because for me on a regular asset it looks like this:

Screenshot 2026-02-19 at 22 44 14

@timonrieger
Copy link
Collaborator

@timonrieger thanks for testing, it is strange that there are so many dividers, I gotta test it on a stack, because for me on a regular asset it looks like this:

it is not on all assets, maybe check the asset i sent above. There is code block to set the prioritization

@1661410107114145152525
Copy link

Just because it is not released yet: Is there any chance to position it a bit better for quicker access? I would need to tap that for about 20% of my media (as quite a lot is 360°) and the upper right menu is quite hard to tap when scrolling through images (as those who use it, might use it quite often and more as a primary than secondary function). Or is there some kind of configuration where I can define stuff like that? Please don't get wrong, I am already really, really happy about the effort you took for this. If it's not possible/feasible, no issue either, I don't want to make any circumstances.

Thanks a lot again for your help! @YarosMallorca (and also @timonrieger for testing and the rest of the team / community) ❤️

@1661410107114145152525
Copy link

1661410107114145152525 commented Feb 19, 2026

I could also test it on Android if that helps (if anyone provides an apk). Does it also work on videos? Will we be able to swipe to the next or previous image after opening the image in the web (so does it open in the timeline or respective album)? @YarosMallorca

@timonrieger
Copy link
Collaborator

Is there any chance to position it a bit better for quicker access?

Very likely that it's gonna stay like that. It's a niche feature or at least less important for users than the other actions in the bottom viewer.

@timonrieger
Copy link
Collaborator

Does it also work on videos?

Yes

Will we be able to swipe to the next or previous image after opening the image in the web (so does it open in the timeline or respective album)?

It opens the same view in the browser

Video

in.MP4

@YarosMallorca
Copy link
Collaborator Author

It opens the same view in the browser

Technically correct, but it doesn't deep-link into an album/view yet, that's something that could be improved in the future.

@1661410107114145152525
Copy link

Thanks a lot for your help and answers you two! @YarosMallorca and @timonrieger :)

@1661410107114145152525
Copy link

Technically correct, but it doesn't deep-link into an album/view yet, that's something that could be improved in the future.

Got it, thanks! :) Should I create a feature request for that or do you have follow-up issues for things like that? @YarosMallorca

@YarosMallorca
Copy link
Collaborator Author

@1661410107114145152525 No need to open another feature request, I have this in mind and will see if it's feasible.

@1661410107114145152525
Copy link

Is there any chance to position it a bit better for quicker access?

Very likely that it's gonna stay like that. It's a niche feature or at least less important for users than the other actions in the bottom viewer.

Hm, I understand. A general question and different topic but explains why I asked for a different positioning too: Why does your three-dot-menu behave differently than many others in Android like e.g. the one of Chromium Browsers (like Google Chrome, Brave, ...) or messaging apps (WhatsApp, Signal,...)? Mostly it is possible to hold, the menu already opens while doing so, drag and the selected entry where you lift your finger gets opened. This makes using a lot more handy, especially since those menus are often quite hard to reach with one hand, speeds things up, espedially when getting used to things and working with muscle memory. @YarosMallorca

@1661410107114145152525
Copy link

@1661410107114145152525 No need to open another feature request, I have this in mind and will see if it's feasible.

Great to hear that, thanks a lot! ❤️

@YarosMallorca
Copy link
Collaborator Author

Why does your three-dot-menu behave differently than many others in Android?

This is going off-topic, but it's how MenuAnchor behaves in Flutter by default (I guess so it's consistent between Android and iOS), and we haven't modified the behavior. If this would be done, it would be in a separate PR, however it's quite a minor thing in my opinion.

@1661410107114145152525
Copy link

Why does your three-dot-menu behave differently than many others in Android?

@YarosMallorca This is going off-topic, but it's how MenuAnchor behaves in Flutter by default [...]. If this would be done, it would be in a separate PR, however it's quite a minor thing in my opinion.

Yeah I know, I just did not knew where to ask you better, sorry.Thank you for the explanation! :)

@YarosMallorca (I guess so it's consistent between Android and iOS), and we haven't modified the behavior.

This can't be the reason as on iOS/iPadOS it is the same as on Android. E.g. Apples own Photos app does behave like that for three-dot-menus too, and many similar apps too. So the default creates an inconsistent, different behavior than what users are used too rather than consistency. I will create a feature request for that, thanks! :)

@1661410107114145152525
Copy link

@YarosMallorca feat: deeplink into favorites, trash & archived

No way 😂 - you are the goat! Thanks! ❤️

@1661410107114145152525
Copy link

1661410107114145152525 commented Feb 20, 2026

@YarosMallorca feat: deeplink into favorites, trash & archived

If I may ask: Is showing it in the timeline the default/already works out of the box if opened from the timeline or will it come as a follow-up or so?

@YarosMallorca
Copy link
Collaborator Author

It is already the default and works (from the main timeline), routes that aren't supported yet (such as from a person or album view) will open the photo in the main timeline.

@1661410107114145152525
Copy link

1661410107114145152525 commented Feb 20, 2026

@YarosMallorca: It is already the default and works (from the main timeline), routes that aren't supported yet (such as from a person or album view) will open the photo in the main timeline.

Perfect! :o Thank you for the explanation and great implementation! <3

@alextran1502
Copy link
Member

After heavy consideration, I reject this PR as I don't see this is a feature that many users will user, and the kebab menu should be reserved for more common action as space is limited

@1661410107114145152525
Copy link

1661410107114145152525 commented Feb 22, 2026

After heavy consideration, I reject this PR as I don't see this is a feature that many users will user, and the kebab menu should be reserved for more common action as space is limited

Hi @alextran1502 this is really sad to hear. If there was feature parity between web and app I would fully understand it, but there isn't. Especially for users with 360° footage that feature is the only way to be able to use the mobile app properly at all. If you don't consider these users important, why does Immich support this format at all. For me it was the key selling point to switch from Nextcloud Photos though I just had it properly set up.

But not only for 360° content, if users see an image and want to see it next to the other images on the map (many use cases I could explain here, if necessary), there is currently no way to do that. Same goes for many other features where development in the app is either ongoing (e.g. OCR), on hold or will propably never be done for the app. So it wouldn't just solve current issues, but also future ones.

Though saying "just wait" is something one could do for at least some of those issues (like OCR), but it is a difference, to wait for a feature that isn't there at all versus one, that is already in the web and celebrated in release notes and so on.

Besides that is isn't incommon at all, e.g. in the Nextcloud Memories app, there is also a button that does something similar (switches from the mobile version to the web version in a where more features are available. Same goes for a lot of types of sites, where the web version has limited festures or isn't just as good optimized for touch and therefore an "Open in app" button is common to show.

That you struggled to decide here has a reason and I hope you see these arguments give the pro side in you enough reason to not throw away this well implemented, livesaving feature.


It doesn't have to be in the three-dot-menu

If you are convinced by the festure but it is just about the placement in the three-dot-menu, this is something we should rather solve together, as UI issues are solvable.

Another great place could be in the image info modal, that one could open by swiping up too. There the URL of the image/video could either be an own entry (same es the filename but with an link or open in new icon) and on tap it opens in the browser, or it is the subtitle to the filename (same look and type of information as the exact coordinates below the places name). That way the three-dot menu is not used and lives instead in the modal, where already is much space to scroll etc.

@1661410107114145152525
Copy link

Hi @alextran1502 , just a quick follow-up in case my last comment got buried after the PR was closed. When you get a chance, I’d really appreciate a brief reply. Thank you so much! ❤️

Sorry if this is ignoring any Github rules, there is no intention to spam or annoy, I just wanted to help out with my experience as a professional UX/UI Designer. I could also do some mockups if that helps.

@YarosMallorca Thanks again for hard work on the feature. I am convinced we can solve this by better placement and UX, as the feature itself is definitely a great and important addition to Immich. It brings both worlds - web and app - more together and - using e.g. the idea above - without sacrificing / cluttering anything.

@jenda69
Copy link

jenda69 commented Mar 7, 2026

Now this is shame. Just this week I wanted to use this feature two times. Once because I wanted to see path of the image (it often contains location name for untagged pictures in my external library and app doesn't show it), once because I wanted to see the 360 panorama image...

@george1612
Copy link

@jenda69 Same here for multiple other use cases. Feel free to describe your missing features and the use cases for this button and general missing features in #21020 .

Furthermore have a look at the linked idea for 360° media: #26692.

Feel free to upvote and share those two issues, so they are hopefully considered for implementation and this PR maybe gets merged with the UI changes I proposed above.

@pedrommvv
Copy link

I also would like to see this merged.

@alextran1502 alextran1502 reopened this Mar 16, 2026
@alextran1502 alextran1502 enabled auto-merge (squash) March 16, 2026 17:56
@alextran1502 alextran1502 merged commit 82db581 into main Mar 16, 2026
56 checks passed
@alextran1502 alextran1502 deleted the feat/open-in-browser branch March 16, 2026 18:06
@1661410107114145152525
Copy link

🥳🥳🥳 So glad to see this being reopened and merged into main! Many thanks to everyone involved for your effort and dedication during implementation, testing and also for reconsidering this great feature. ❤️

brucethomax pushed a commit to brucethomax/immich that referenced this pull request Mar 19, 2026
* feat(mobile): open in browser

* chore: open in browser instead of webview

* chore: allow archived asset

* fix: moved openinbrowser above unstack

* feat: deeplink into favorites, trash & archived

* fix: use remoteId (for tests to succeed)

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Mar 20, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [immich-app/immich](https://github.com/immich-app/immich) | minor | `v2.5.6` → `v2.6.1` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/2) for more information.

---

### Release Notes

<details>
<summary>immich-app/immich (immich-app/immich)</summary>

### [`v2.6.1`](https://github.com/immich-app/immich/releases/tag/v2.6.1)

[Compare Source](immich-app/immich@v2.6.0...v2.6.1)

### v2.6.1

#### Hot fixes

- Fixed a failed migration issue on the mobile app when the URL Switching feature is used

#### What's Changed

##### 🐛 Bug fixes

- fix(server): fallback to email when name is empty by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27016](immich-app/immich#27016)
- fix: ignore errors deleting untitled album by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27020](immich-app/immich#27020)
- fix(web): wrap long album title by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27012](immich-app/immich#27012)
- fix(web): stop in-progress uploads on logout by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27021](immich-app/immich#27021)
- fix: writing empty exif tags by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;27025](immich-app/immich#27025)
- fix(web): disable send button by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27051](immich-app/immich#27051)
- fix(mobile): server url migration by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;27050](immich-app/immich#27050)

**Full Changelog**: <immich-app/immich@v2.6.0...v2.6.1>

### [`v2.6.0`](https://github.com/immich-app/immich/releases/tag/v2.6.0)

[Compare Source](immich-app/immich@v2.5.6...v2.6.0)

### v2.6.0

Welcome to Immich `v2.6.0`, This release is a collection of more than *350 commits over 6 weeks*. I know, it is an eternity between releases compared to our previous era. This version focuses on bug fixes and enhancements across the app to provide a more delightful and smoother experience to you. This release also prepares for the next major release in the coming month, which will remove the old timeline implementation. Let's dive into the highlights of the release:

> \[!WARNING]
> For those who are still using the old timeline, please switch to the new timeline to avoid interruption, as the old timeline will be removed in the next release.
>
> ps: The old timeline has an exclamation icon next to the logo. <img width="525" height="120" alt="image" src="https://github.com/user-attachments/assets/ed36ea22-b16e-472f-961c-c19501712ba5" />

### Highlights

- Map side panel (web)
- Pick album cover (mobile)
- Shared link slugs (mobile)
- Shared link presets (web)
- Native HTTP clients (mobile)
- Video player and asset viewer improvements (mobile)
- Improved search results (mobile)
- `schema-check`: a new `immich-admin` command
- Read profile claims from ID token (OAuth)
- Notable fix: cast videos now automatically loop
- Notable fix: correctly extract make and model from Sony XAVC video files
- Notable fix: escape key handling on web
- Notable fix: healthcheck endpoint in maintenance mode
- Notable fix: timeline rendering for RTL languages like Arabic and Hebrew
- Notable fix: prevent server crash when extracting invalid metadata

#### Map side panel (web)

The map view on the web now opens a mini-timeline component as a side panel when you click on a cluster of assets. This makes it easier to view the cluster at a glance and enables bulk actions, such as adding to favorites and adding to an album.

<img width="800" alt="image" src="https://github.com/user-attachments/assets/6f90b04d-4aa7-4f68-b59c-c2b912e638f7" />

#### Pick album cover (mobile)

Users can now pick a new album cover directly from the mobile app.

<https://github.com/user-attachments/assets/7f99dc80-21c6-4ce6-9f75-8e6b0163dcaa>

#### Shared link slugs (mobile)

The mobile app now also supports setting a shared link slug, a feature that's been available on the web for a while.

<https://github.com/user-attachments/assets/5420995a-cfd4-471d-a3ac-db4fa45de780>

#### Shared link presets (web)

The expiration form input on the web was always a bit confusing, but it's been updated to make it easier to see and understand when a shared link will expire.

<img width="400" alt="image" src="https://github.com/user-attachments/assets/9d6124a9-eec2-43e8-b228-e1ac6c0415e8" />

#### Native HTTP clients (mobile)

The mobile app now uses native HTTP clients across both Android and iOS, with support for mTLS, self-signed certificates, basic auth, and custom headers. These features should now be more reliable and extend to background tasks, video playback, and other parts of the app. This also improves the app's overall network request performance thanks to HTTP/2 and HTTP/3, multiplexing, and caching.

#### Video player and asset viewer improvements (mobile)

The asset viewer has undergone many improvements under the hood to make it simpler, faster and more reliable. We've also added playback support for GIFs, enabled video zooming, and made many more bug fixes and tweaks.

##### The asset viewer now uses a gradient for actions, and video controls have been restyled

<img width="300" alt="image" src="https://github.com/user-attachments/assets/9a4e0892-f178-45fc-812c-10a6cba3f48b" />

##### Inline asset details

This used to be a bottom sheet and had a lot of glue for alignment. The new version is much more responsive and less buggy.

##### Before

<https://github.com/user-attachments/assets/43b59b59-7d6a-48d0-94d7-84b8cae1c2a9>

##### After

<https://github.com/user-attachments/assets/9217b6f4-1c92-40b0-bd95-a0681307cf38>

#### Improved search results (mobile)

The search results page now loads more results without rebuilding the entire grid, and should now load much faster. There are also new screens for when there are no search results and when all results have been loaded.

<https://github.com/user-attachments/assets/42ce69d4-1618-48ee-9cb9-91ec22e12b27>

#### `schema-check`: a new `immich-admin` command

A new `immich-admin` command has been added in this release: `schema-check`. The command runs a report on the database to check if any indexes, constraints, tables, or columns are missing. This check also runs automatically on startup.

#### Read profile claims from `idToken` (OAuth)

Prior to `v2.6.0`, Immich resolved the `email` and other claims from the [userinfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) endpoint. Now, Immich also supports reading those claims directly from the `idToken`. This makes it possible to use providers such as Microsoft ADFS that do not support the userinfo endpoint.

***

As always, there are many more QoL improvements, bug fixes, and enhancements in this release. Please find the full release note 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 v2.6.0 -->

#### What's Changed

##### 🔒 Security

- fix(server): restrict individual shared link asset removal to owners by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26868](immich-app/immich#26868)
- fix: add to shared link by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26886](immich-app/immich#26886)

##### 🚀 Features

- feat: shared link login by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25678](immich-app/immich#25678)
- feat: schema-check by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25904](immich-app/immich#25904)
- feat: add people deeplink by [@&#8203;arne182](https://github.com/arne182) in [#&#8203;25686](immich-app/immich#25686)
- feat(mobile): inline asset details by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;25952](immich-app/immich#25952)
- feat(mobile): filter by tags by [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) in [#&#8203;26196](immich-app/immich#26196)
- feat: add .mxf file support by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;24644](immich-app/immich#24644)
- feat: tap to see next/previous image by [@&#8203;thezeroalpha](https://github.com/thezeroalpha) in [#&#8203;20286](immich-app/immich#20286)
- feat(mobile): Allow users to set album cover from mobile app by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;25515](immich-app/immich#25515)
- feat(mobile): Allow users to set profile picture from asset viewer by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;25517](immich-app/immich#25517)
- feat: ROCm 7.2 and MIGraphX support  by [@&#8203;kprinssu](https://github.com/kprinssu) in [#&#8203;26178](immich-app/immich#26178)
- feat(web): map timeline sidepanel by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26532](immich-app/immich#26532)
- feat: add responsive layout to broken asset by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26384](immich-app/immich#26384)
- feat(web): toggle zoom on double-click in photo viewer by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26732](immich-app/immich#26732)
- feat(mobile): show animated images in asset viewer by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;26614](immich-app/immich#26614)
- feat(mobile): open in browser by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26369](immich-app/immich#26369)

##### 🌟 Enhancements

- feat: verify permissions by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25647](immich-app/immich#25647)
- feat(web): change link expiration logic & presets  by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26064](immich-app/immich#26064)
- feat(mobile): dynamic layout in new timeline by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;23837](immich-app/immich#23837)
- feat(cli): change progress bar to display file size by [@&#8203;Nykri](https://github.com/Nykri) in [#&#8203;23328](immich-app/immich#23328)
- feat(mobile): dynamic multi-line album name by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26040](immich-app/immich#26040)
- feat(mobile): hide search by context/OCR if disabled on server ([#&#8203;25472](immich-app/immich#25472)) by [@&#8203;Nacolis](https://github.com/Nacolis) in [#&#8203;26063](immich-app/immich#26063)
- fix(release): add docker-compose.rootless.yml to released assets by [@&#8203;dnozay](https://github.com/dnozay) in [#&#8203;26261](immich-app/immich#26261)
- feat(web): show ocr text boxes in panoramas by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;25727](immich-app/immich#25727)
- feat(web): loop chromecast video by [@&#8203;etnoy](https://github.com/etnoy) in [#&#8203;24410](immich-app/immich#24410)
- chore(web): merge "Add to album" and "Add to shared album" actions into a single action by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;24669](immich-app/immich#24669)
- feat(mobile): timeline - add bottomWidgetBuilder  by [@&#8203;PeterOmbodi](https://github.com/PeterOmbodi) in [#&#8203;25634](immich-app/immich#25634)
- feat(mobile): video zooming in asset viewer by [@&#8203;goalie2002](https://github.com/goalie2002) in [#&#8203;22036](immich-app/immich#22036)
- feat(mobile): Add slug support for shared links by [@&#8203;Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#&#8203;26441](immich-app/immich#26441)
- feat: warn when losing transparency during thumbnail generation by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26243](immich-app/immich#26243)
- perf(mobile): optimized album sorting by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;25179](immich-app/immich#25179)
- feat(mobile): prompt when deleting from trash by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26392](immich-app/immich#26392)
- feat: getAssetEdits respond with edit IDs by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26445](immich-app/immich#26445)
- fix(server): accept showAt and hideAt for creating memories by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26429](immich-app/immich#26429)
- feat(server): SyncAssetEditV1 by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26446](immich-app/immich#26446)
- feat: splash screen error page by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26460](immich-app/immich#26460)
- feat(mobile): add confirmation dialog to permanent delete action by [@&#8203;ByteSizedMarius](https://github.com/ByteSizedMarius) in [#&#8203;26442](immich-app/immich#26442)
- feat: enhance face-editor positioning by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26303](immich-app/immich#26303)
- feat: improve HEIC, HEIF and JPEG XL browser support detection by [@&#8203;nicosemp](https://github.com/nicosemp) in [#&#8203;26122](immich-app/immich#26122)
- refactor(web): remove replaceAsset action by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26444](immich-app/immich#26444)
- feat(web): bounding box for faces when hovering over the face in photo view by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26667](immich-app/immich#26667)
- feat(mobile): keep search results visible by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26498](immich-app/immich#26498)
- feat(mobile): use shared native client by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;25942](immich-app/immich#25942)
- feat(mobile): SyncAssetEditV1 by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26518](immich-app/immich#26518)
- feat(ml): enable openvino for cpu by [@&#8203;apejcic](https://github.com/apejcic) in [#&#8203;22948](immich-app/immich#22948)
- feat: responsive video duration in thumbnail by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26770](immich-app/immich#26770)
- feat(web): animate zoom toggle with cubicOut easing by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26731](immich-app/immich#26731)
- feat(mobile): consolidate video controls by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26673](immich-app/immich#26673)
- feat(web): add shortcut "p" to open/close the face tag box by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26826](immich-app/immich#26826)
- feat(mobile): use material design 3 slider by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26829](immich-app/immich#26829)
- feat: adaptive progressive image loading for photo viewer by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26636](immich-app/immich#26636)
- fix(server): extract make/model from sony video files by [@&#8203;brendanngo](https://github.com/brendanngo) in [#&#8203;26833](immich-app/immich#26833)
- chore(mobile): remove background from asset viewer back button by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26851](immich-app/immich#26851)
- feat(server): support IDPs that only send the userinfo in the ID token by [@&#8203;Belnadifia](https://github.com/Belnadifia) in [#&#8203;26717](immich-app/immich#26717)
- feat(web): improve OCR overlay text fitting, reactivity, and accessibility by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26678](immich-app/immich#26678)
- fix(web): allow pasting PIN code from clipboard or password manager by [@&#8203;pressslav](https://github.com/pressslav) in [#&#8203;26944](immich-app/immich#26944)

##### 🐛 Bug fixes

- fix: ignore checksum constraint error when logging by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26113](immich-app/immich#26113)
- fix(web): use locale for date picker by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26125](immich-app/immich#26125)
- fix(web): escape shortcut handling by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26096](immich-app/immich#26096)
- fix(mobile): Login routing on Splash screen by [@&#8203;PeterOmbodi](https://github.com/PeterOmbodi) in [#&#8203;26128](immich-app/immich#26128)
- fix: null local date time in timeline queries by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26133](immich-app/immich#26133)
- fix(web): prevent event manager from throwing error by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26156](immich-app/immich#26156)
- fix(web): improve api key modal responsiveness by [@&#8203;klenner1](https://github.com/klenner1) in [#&#8203;26151](immich-app/immich#26151)
- fix(web): show correct assets in memory gallery by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26157](immich-app/immich#26157)
- fix(web): add missing [@&#8203;immich/ui](https://github.com/immich/ui) translations by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26143](immich-app/immich#26143)
- fix(mobile): timeline handling on foldable phones + ensuring that images are not cut off by [@&#8203;bkchr](https://github.com/bkchr) in [#&#8203;25088](immich-app/immich#25088)
- fix(mobile): prevent nav bar label text wrapping by [@&#8203;chrislongros](https://github.com/chrislongros) in [#&#8203;26011](immich-app/immich#26011)
- fix(mobile): hide latest version warnings by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26036](immich-app/immich#26036)
- fix(mobile): inconsistent query for people by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;24437](immich-app/immich#24437)
- fix(web): timeline multi select group state by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26180](immich-app/immich#26180)
- fix(web): add checkerboard background for transparent images by [@&#8203;agent-steven](https://github.com/agent-steven) in [#&#8203;26091](immich-app/immich#26091)
- fix(mobile): inherit toolbar opacity by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;25694](immich-app/immich#25694)
- fix(web): focus tag input when modal opens by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26256](immich-app/immich#26256)
- fix(web): clear face boxes when switching assets by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26249](immich-app/immich#26249)
- fix(web): clear unsaved asset description when changing asset by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26255](immich-app/immich#26255)
- fix(web): clear cache when asset changes by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26257](immich-app/immich#26257)
- fix: utc time zone upserts by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;26258](immich-app/immich#26258)
- fix: metadata crash by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26327](immich-app/immich#26327)
- fix: prevent server crash when extraction of metadata fails if the assets are corrupted by [@&#8203;Devansh-Jani](https://github.com/Devansh-Jani) in [#&#8203;26042](immich-app/immich#26042)
- fix(server): db restore failure when `DB_URL` is set to unix-domain socket connection by [@&#8203;fabio-garavini](https://github.com/fabio-garavini) in [#&#8203;26252](immich-app/immich#26252)
- fix: Download the edited version when downloading multiple photos by [@&#8203;MontejoJorge](https://github.com/MontejoJorge) in [#&#8203;26259](immich-app/immich#26259)
- fix: include `DROP INDEX` in transaction to prevent missing index on rollback by [@&#8203;haoxi911](https://github.com/haoxi911) in [#&#8203;25399](immich-app/immich#25399)
- fix: safari address bar color by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26346](immich-app/immich#26346)
- fix(web): prevent panorama image reload during asset updates by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26349](immich-app/immich#26349)
- fix(web): favoriting assets opened via GalleryViewer by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26350](immich-app/immich#26350)
- fix(i18n): add translation key for partner's photos by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26348](immich-app/immich#26348)
- fix(web): single select scroll behavior by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26358](immich-app/immich#26358)
- perf: add indexes to improve People API response times by [@&#8203;bxtdvd](https://github.com/bxtdvd) in [#&#8203;26337](immich-app/immich#26337)
- fix: pin code reset modal by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26370](immich-app/immich#26370)
- fix(mobile): Reset "People" search filter chip if no selections are made by [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) in [#&#8203;26267](immich-app/immich#26267)
- fix(cli): delete sidecar files after upload if requested by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26353](immich-app/immich#26353)
- fix(web): album description auto height by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26420](immich-app/immich#26420)
- fix(web): prevent side panel overlap during transition by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26398](immich-app/immich#26398)
- fix(web): storage template example by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;26424](immich-app/immich#26424)
- fix(web): prevent `state_unsafe_mutation` error on people page by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26438](immich-app/immich#26438)
- fix: missing deletedAt and isVisible columns on mobile by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26414](immich-app/immich#26414)
- fix(mobile): joinLocal on archived timeline by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26387](immich-app/immich#26387)
- fix: always show library scan button by [@&#8203;etnoy](https://github.com/etnoy) in [#&#8203;26428](immich-app/immich#26428)
- fix: retain asset when either asset is a favorite by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26473](immich-app/immich#26473)
- fix(web): prevent null folder tree on concurrent load by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26489](immich-app/immich#26489)
- fix(web): toast warning when trying to upload unsupported file type by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26492](immich-app/immich#26492)
- fix(mobile): birthday picker shows limited months when no date exists by [@&#8203;socksprox](https://github.com/socksprox) in [#&#8203;26407](immich-app/immich#26407)
- fix: consider DAR when extracting video dimension by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;25293](immich-app/immich#25293)
- feat(mobile): Prevent premature image cache eviction when higher image loading is enabled by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;26208](immich-app/immich#26208)
- refactor: star rating by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26357](immich-app/immich#26357)
- fix(mobile): set correct initial system-ui mode in asset viewer by [@&#8203;goalie2002](https://github.com/goalie2002) in [#&#8203;26500](immich-app/immich#26500)
- fix(server): Live Photo migration bug when album is in template by [@&#8203;NikhilAlapati](https://github.com/NikhilAlapati) in [#&#8203;25329](immich-app/immich#25329)
- fix(web): handle delete shortcut on shared link page as remove by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26552](immich-app/immich#26552)
- fix(mobile): prevent video player from being recreated unnecessarily by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26553](immich-app/immich#26553)
- fix(mobile): don't cut off top corners of app bar by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26550](immich-app/immich#26550)
- feat: update onnxruntime-openvino to 1.24.1 and intel drivers by [@&#8203;savely-krasovsky](https://github.com/savely-krasovsky) in [#&#8203;26565](immich-app/immich#26565)
- fix: hide download action for local/merged assets by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26461](immich-app/immich#26461)
- fix(web): top bar z index on search page by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26582](immich-app/immich#26582)
- fix(web): show shared link download button when logged in by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26629](immich-app/immich#26629)
- fix(mobile): asset viewer hero animation by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26545](immich-app/immich#26545)
- fix(web): timeline and asset viewer RTL support by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26513](immich-app/immich#26513)
- fix(server): clean up edited thumbnail when deleting asset by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26664](immich-app/immich#26664)
- fix: implement existing withStacked on searchAssetBuilder by [@&#8203;babbitt](https://github.com/babbitt) in [#&#8203;26607](immich-app/immich#26607)
- fix(mobile): video state by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26574](immich-app/immich#26574)
- fix(maintenance mode): wait for valid server config on restart by [@&#8203;insertish](https://github.com/insertish) in [#&#8203;26456](immich-app/immich#26456)
- fix(web): inconsistent asset nav bar state after visiting shared link by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26674](immich-app/immich#26674)
- fix(web): download toast showing wrong filename for motion assets by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26689](immich-app/immich#26689)
- fix(mobile): add safe area for asset details by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26675](immich-app/immich#26675)
- fix(web): combobox dropdown positioning in modals by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26707](immich-app/immich#26707)
- fix(web): video stealing focus when it plays again when looping by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26704](immich-app/immich#26704)
- fix(ml): batch size setting by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;26524](immich-app/immich#26524)
- fix(server): clarify transcoding bitrate policy by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26711](immich-app/immich#26711)
- fix: playback style migration by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;26718](immich-app/immich#26718)
- fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26741](immich-app/immich#26741)
- fix(server): opus handling as accepted audio codec in transcode policy by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;26736](immich-app/immich#26736)
- fix(web): refresh recent albums sidebar after album changes by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26757](immich-app/immich#26757)
- fix(web): show the correct cursor at crop bounds when editing an asset by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26748](immich-app/immich#26748)
- fix(web): recalculate face bounding boxes by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26737](immich-app/immich#26737)
- fix(web): context menu overflow by [@&#8203;SevereCloud](https://github.com/SevereCloud) in [#&#8203;26760](immich-app/immich#26760)
- fix(web): correct tag rounding in search options by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26814](immich-app/immich#26814)
- fix(web): prevent unrelated assets from appearing in tag view by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26816](immich-app/immich#26816)
- fix(mobile): use tabular figures in backup page by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26830](immich-app/immich#26830)
- fix(mobile): wrap backup error message text by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26834](immich-app/immich#26834)
- fix(server): use correct day ordering in timeline buckets by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26821](immich-app/immich#26821)
- fix(web): face selection box position resetting on browser resize by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26766](immich-app/immich#26766)
- fix: use correct original URL for 360 video panorama playback by [@&#8203;luis15pt](https://github.com/luis15pt) in [#&#8203;26831](immich-app/immich#26831)
- fix(web): disable drag and drop for internal items by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26897](immich-app/immich#26897)
- fix(web): keep header fixed on individual shared links by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26892](immich-app/immich#26892)
- fix: SMTP over TLS by [@&#8203;nathanielhourt](https://github.com/nathanielhourt) in [#&#8203;26893](immich-app/immich#26893)
- fix(web): copy yearMonth in MonthGroup to avoid shared object reference with asset in [#&#8203;26890](immich-app/immich#26890)
- fix(mobile): use shared auth for background\_downloader by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;26911](immich-app/immich#26911)
- fix(web): prevent search page error on missing album filter by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26948](immich-app/immich#26948)
- fix(server): sync files to disk by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26881](immich-app/immich#26881)
- fix(web): jump to primary stacked asset from memory by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26978](immich-app/immich#26978)
- fix(mobile): reflect asset deletions instantly by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26835](immich-app/immich#26835)
- fix: healthcheck by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26989](immich-app/immich#26989)
- fix(web): escape handling for tagging and adding a face in asset viewer by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26870](immich-app/immich#26870)
- fix: filter after searching by asset id by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26994](immich-app/immich#26994)
- fix: bounding box return type by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27014](immich-app/immich#27014)
- fix: validate accept header before returning html by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27019](immich-app/immich#27019)

##### 📚 Documentation

- chore(docs): Update help channel for developers by [@&#8203;Mraedis](https://github.com/Mraedis) in [#&#8203;26284](immich-app/immich#26284)
- feat(docs): Explain configuration file location for Docker Compose by [@&#8203;keunes](https://github.com/keunes) in [#&#8203;24989](immich-app/immich#24989)
- chore(docs): add quick-start guide for DevPod with docker by [@&#8203;dhlavaty](https://github.com/dhlavaty) in [#&#8203;26213](immich-app/immich#26213)
- feat(docs): Adding information about parameter c= by [@&#8203;aviv926](https://github.com/aviv926) in [#&#8203;26430](https://github.com/immich-app/immich/pull/26430)
- feat: doc links by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26519](https://github.com/immich-app/immich/pull/26519)
- fix(docs): add ocr to job flow diagram by [@&#8203;niij](https://github.com/niij) in [#&#8203;26505](https://github.com/immich-app/immich/pull/26505)

##### 🌐 Translations

- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26118](https://github.com/immich-app/immich/pull/26118)
- fix: clarify external domain setting is used for emails too by [@&#8203;chrislongros](https://github.com/chrislongros) in [#&#8203;26009](https://github.com/immich-app/immich/pull/26009)
- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26167](https://github.com/immich-app/immich/pull/26167)
- fix(web): error page i18n by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26517](https://github.com/immich-app/immich/pull/26517)
- chore(web): clarify locale settings description by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;25562](https://github.com/immich-app/immich/pull/25562)
- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26192](https://github.com/immich-app/immich/pull/26192)

#### New Contributors

- [@&#8203;klenner1](https://github.com/klenner1) made their first contribution in [#&#8203;26151](immich-app/immich#26151)
- [@&#8203;bkchr](https://github.com/bkchr) made their first contribution in [#&#8203;25088](immich-app/immich#25088)
- [@&#8203;chrislongros](https://github.com/chrislongros) made their first contribution in [#&#8203;26011](immich-app/immich#26011)
- [@&#8203;agent-steven](https://github.com/agent-steven) made their first contribution in [#&#8203;26091](immich-app/immich#26091)
- [@&#8203;dhlavaty](https://github.com/dhlavaty) made their first contribution in [#&#8203;26238](https://github.com/immich-app/immich/pull/26238)
- [@&#8203;Nacolis](https://github.com/Nacolis) made their first contribution in [#&#8203;26063](immich-app/immich#26063)
- [@&#8203;ewinnd](https://github.com/ewinnd) made their first contribution in [#&#8203;26277](https://github.com/immich-app/immich/pull/26277)
- [@&#8203;dnozay](https://github.com/dnozay) made their first contribution in [#&#8203;26261](immich-app/immich#26261)
- [@&#8203;keunes](https://github.com/keunes) made their first contribution in [#&#8203;24989](immich-app/immich#24989)
- [@&#8203;Devansh-Jani](https://github.com/Devansh-Jani) made their first contribution in [#&#8203;26042](immich-app/immich#26042)
- [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) made their first contribution in [#&#8203;26196](immich-app/immich#26196)
- [@&#8203;fabio-garavini](https://github.com/fabio-garavini) made their first contribution in [#&#8203;26252](immich-app/immich#26252)
- [@&#8203;haoxi911](https://github.com/haoxi911) made their first contribution in [#&#8203;25399](immich-app/immich#25399)
- [@&#8203;thezeroalpha](https://github.com/thezeroalpha) made their first contribution in [#&#8203;20286](immich-app/immich#20286)
- [@&#8203;socksprox](https://github.com/socksprox) made their first contribution in [#&#8203;26407](immich-app/immich#26407)
- [@&#8203;kprinssu](https://github.com/kprinssu) made their first contribution in [#&#8203;26178](immich-app/immich#26178)
- [@&#8203;babbitt](https://github.com/babbitt) made their first contribution in [#&#8203;26607](immich-app/immich#26607)
- [@&#8203;niij](https://github.com/niij) made their first contribution in [#&#8203;26505](https://github.com/immich-app/immich/pull/26505)
- [@&#8203;cratoo](https://github.com/cratoo) made their first contribution in [#&#8203;26667](immich-app/immich#26667)
- [@&#8203;M123-dev](https://github.com/M123-dev) made their first contribution in [#&#8203;26630](https://github.com/immich-app/immich/pull/26630)
- [@&#8203;apejcic](https://github.com/apejcic) made their first contribution in [#&#8203;22948](immich-app/immich#22948)
- [@&#8203;SevereCloud](https://github.com/SevereCloud) made their first contribution in [#&#8203;26760](immich-app/immich#26760)
- [@&#8203;brendanngo](https://github.com/brendanngo) made their first contribution in [#&#8203;26833](immich-app/immich#26833)
- [@&#8203;luis15pt](https://github.com/luis15pt) made their first contribution in [#&#8203;26831](immich-app/immich#26831)
- [@&#8203;nathanielhourt](https://github.com/nathanielhourt) made their first contribution in [#&#8203;26893](immich-app/immich#26893)
- [@&#8203;Belnadifia](https://github.com/Belnadifia) made their first contribution in [#&#8203;26717](immich-app/immich#26717)
- [@&#8203;pressslav](https://github.com/pressslav) made their first contribution in [#&#8203;26944](immich-app/immich#26944)

**Full Changelog**: <immich-app/immich@v2.5.6...v2.6.0>

</details>

---

### Configuration

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

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

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OS4yIiwidXBkYXRlZEluVmVyIjoiNDMuNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4886
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Mar 20, 2026
….6.1 (#4887)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/immich-app/immich-server](https://github.com/immich-app/immich) | minor | `v2.5.6` → `v2.6.1` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/2) for more information.

---

### Release Notes

<details>
<summary>immich-app/immich (ghcr.io/immich-app/immich-server)</summary>

### [`v2.6.1`](https://github.com/immich-app/immich/releases/tag/v2.6.1)

[Compare Source](immich-app/immich@v2.6.0...v2.6.1)

### v2.6.1

#### Hot fixes

- Fixed a failed migration issue on the mobile app when the URL Switching feature is used

#### What's Changed

##### 🐛 Bug fixes

- fix(server): fallback to email when name is empty by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27016](immich-app/immich#27016)
- fix: ignore errors deleting untitled album by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27020](immich-app/immich#27020)
- fix(web): wrap long album title by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27012](immich-app/immich#27012)
- fix(web): stop in-progress uploads on logout by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27021](immich-app/immich#27021)
- fix: writing empty exif tags by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;27025](immich-app/immich#27025)
- fix(web): disable send button by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27051](immich-app/immich#27051)
- fix(mobile): server url migration by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;27050](immich-app/immich#27050)

**Full Changelog**: <immich-app/immich@v2.6.0...v2.6.1>

### [`v2.6.0`](https://github.com/immich-app/immich/releases/tag/v2.6.0)

[Compare Source](immich-app/immich@v2.5.6...v2.6.0)

### v2.6.0

Welcome to Immich `v2.6.0`, This release is a collection of more than *350 commits over 6 weeks*. I know, it is an eternity between releases compared to our previous era. This version focuses on bug fixes and enhancements across the app to provide a more delightful and smoother experience to you. This release also prepares for the next major release in the coming month, which will remove the old timeline implementation. Let's dive into the highlights of the release:

> \[!WARNING]
> For those who are still using the old timeline, please switch to the new timeline to avoid interruption, as the old timeline will be removed in the next release.
>
> ps: The old timeline has an exclamation icon next to the logo. <img width="525" height="120" alt="image" src="https://github.com/user-attachments/assets/ed36ea22-b16e-472f-961c-c19501712ba5" />

### Highlights

- Map side panel (web)
- Pick album cover (mobile)
- Shared link slugs (mobile)
- Shared link presets (web)
- Native HTTP clients (mobile)
- Video player and asset viewer improvements (mobile)
- Improved search results (mobile)
- `schema-check`: a new `immich-admin` command
- Read profile claims from ID token (OAuth)
- Notable fix: cast videos now automatically loop
- Notable fix: correctly extract make and model from Sony XAVC video files
- Notable fix: escape key handling on web
- Notable fix: healthcheck endpoint in maintenance mode
- Notable fix: timeline rendering for RTL languages like Arabic and Hebrew
- Notable fix: prevent server crash when extracting invalid metadata

#### Map side panel (web)

The map view on the web now opens a mini-timeline component as a side panel when you click on a cluster of assets. This makes it easier to view the cluster at a glance and enables bulk actions, such as adding to favorites and adding to an album.

<img width="800" alt="image" src="https://github.com/user-attachments/assets/6f90b04d-4aa7-4f68-b59c-c2b912e638f7" />

#### Pick album cover (mobile)

Users can now pick a new album cover directly from the mobile app.

<https://github.com/user-attachments/assets/7f99dc80-21c6-4ce6-9f75-8e6b0163dcaa>

#### Shared link slugs (mobile)

The mobile app now also supports setting a shared link slug, a feature that's been available on the web for a while.

<https://github.com/user-attachments/assets/5420995a-cfd4-471d-a3ac-db4fa45de780>

#### Shared link presets (web)

The expiration form input on the web was always a bit confusing, but it's been updated to make it easier to see and understand when a shared link will expire.

<img width="400" alt="image" src="https://github.com/user-attachments/assets/9d6124a9-eec2-43e8-b228-e1ac6c0415e8" />

#### Native HTTP clients (mobile)

The mobile app now uses native HTTP clients across both Android and iOS, with support for mTLS, self-signed certificates, basic auth, and custom headers. These features should now be more reliable and extend to background tasks, video playback, and other parts of the app. This also improves the app's overall network request performance thanks to HTTP/2 and HTTP/3, multiplexing, and caching.

#### Video player and asset viewer improvements (mobile)

The asset viewer has undergone many improvements under the hood to make it simpler, faster and more reliable. We've also added playback support for GIFs, enabled video zooming, and made many more bug fixes and tweaks.

##### The asset viewer now uses a gradient for actions, and video controls have been restyled

<img width="300" alt="image" src="https://github.com/user-attachments/assets/9a4e0892-f178-45fc-812c-10a6cba3f48b" />

##### Inline asset details

This used to be a bottom sheet and had a lot of glue for alignment. The new version is much more responsive and less buggy.

##### Before

<https://github.com/user-attachments/assets/43b59b59-7d6a-48d0-94d7-84b8cae1c2a9>

##### After

<https://github.com/user-attachments/assets/9217b6f4-1c92-40b0-bd95-a0681307cf38>

#### Improved search results (mobile)

The search results page now loads more results without rebuilding the entire grid, and should now load much faster. There are also new screens for when there are no search results and when all results have been loaded.

<https://github.com/user-attachments/assets/42ce69d4-1618-48ee-9cb9-91ec22e12b27>

#### `schema-check`: a new `immich-admin` command

A new `immich-admin` command has been added in this release: `schema-check`. The command runs a report on the database to check if any indexes, constraints, tables, or columns are missing. This check also runs automatically on startup.

#### Read profile claims from `idToken` (OAuth)

Prior to `v2.6.0`, Immich resolved the `email` and other claims from the [userinfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) endpoint. Now, Immich also supports reading those claims directly from the `idToken`. This makes it possible to use providers such as Microsoft ADFS that do not support the userinfo endpoint.

***

As always, there are many more QoL improvements, bug fixes, and enhancements in this release. Please find the full release note 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 v2.6.0 -->

#### What's Changed

##### 🔒 Security

- fix(server): restrict individual shared link asset removal to owners by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26868](immich-app/immich#26868)
- fix: add to shared link by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26886](immich-app/immich#26886)

##### 🚀 Features

- feat: shared link login by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25678](immich-app/immich#25678)
- feat: schema-check by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25904](immich-app/immich#25904)
- feat: add people deeplink by [@&#8203;arne182](https://github.com/arne182) in [#&#8203;25686](immich-app/immich#25686)
- feat(mobile): inline asset details by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;25952](immich-app/immich#25952)
- feat(mobile): filter by tags by [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) in [#&#8203;26196](immich-app/immich#26196)
- feat: add .mxf file support by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;24644](immich-app/immich#24644)
- feat: tap to see next/previous image by [@&#8203;thezeroalpha](https://github.com/thezeroalpha) in [#&#8203;20286](immich-app/immich#20286)
- feat(mobile): Allow users to set album cover from mobile app by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;25515](immich-app/immich#25515)
- feat(mobile): Allow users to set profile picture from asset viewer by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;25517](immich-app/immich#25517)
- feat: ROCm 7.2 and MIGraphX support  by [@&#8203;kprinssu](https://github.com/kprinssu) in [#&#8203;26178](immich-app/immich#26178)
- feat(web): map timeline sidepanel by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26532](immich-app/immich#26532)
- feat: add responsive layout to broken asset by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26384](immich-app/immich#26384)
- feat(web): toggle zoom on double-click in photo viewer by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26732](immich-app/immich#26732)
- feat(mobile): show animated images in asset viewer by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;26614](immich-app/immich#26614)
- feat(mobile): open in browser by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26369](immich-app/immich#26369)

##### 🌟 Enhancements

- feat: verify permissions by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25647](immich-app/immich#25647)
- feat(web): change link expiration logic & presets  by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26064](immich-app/immich#26064)
- feat(mobile): dynamic layout in new timeline by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;23837](immich-app/immich#23837)
- feat(cli): change progress bar to display file size by [@&#8203;Nykri](https://github.com/Nykri) in [#&#8203;23328](immich-app/immich#23328)
- feat(mobile): dynamic multi-line album name by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26040](immich-app/immich#26040)
- feat(mobile): hide search by context/OCR if disabled on server ([#&#8203;25472](immich-app/immich#25472)) by [@&#8203;Nacolis](https://github.com/Nacolis) in [#&#8203;26063](immich-app/immich#26063)
- fix(release): add docker-compose.rootless.yml to released assets by [@&#8203;dnozay](https://github.com/dnozay) in [#&#8203;26261](immich-app/immich#26261)
- feat(web): show ocr text boxes in panoramas by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;25727](immich-app/immich#25727)
- feat(web): loop chromecast video by [@&#8203;etnoy](https://github.com/etnoy) in [#&#8203;24410](immich-app/immich#24410)
- chore(web): merge "Add to album" and "Add to shared album" actions into a single action by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;24669](immich-app/immich#24669)
- feat(mobile): timeline - add bottomWidgetBuilder  by [@&#8203;PeterOmbodi](https://github.com/PeterOmbodi) in [#&#8203;25634](immich-app/immich#25634)
- feat(mobile): video zooming in asset viewer by [@&#8203;goalie2002](https://github.com/goalie2002) in [#&#8203;22036](immich-app/immich#22036)
- feat(mobile): Add slug support for shared links by [@&#8203;Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#&#8203;26441](immich-app/immich#26441)
- feat: warn when losing transparency during thumbnail generation by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26243](immich-app/immich#26243)
- perf(mobile): optimized album sorting by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;25179](immich-app/immich#25179)
- feat(mobile): prompt when deleting from trash by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26392](immich-app/immich#26392)
- feat: getAssetEdits respond with edit IDs by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26445](immich-app/immich#26445)
- fix(server): accept showAt and hideAt for creating memories by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26429](immich-app/immich#26429)
- feat(server): SyncAssetEditV1 by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26446](immich-app/immich#26446)
- feat: splash screen error page by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26460](immich-app/immich#26460)
- feat(mobile): add confirmation dialog to permanent delete action by [@&#8203;ByteSizedMarius](https://github.com/ByteSizedMarius) in [#&#8203;26442](immich-app/immich#26442)
- feat: enhance face-editor positioning by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26303](immich-app/immich#26303)
- feat: improve HEIC, HEIF and JPEG XL browser support detection by [@&#8203;nicosemp](https://github.com/nicosemp) in [#&#8203;26122](immich-app/immich#26122)
- refactor(web): remove replaceAsset action by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26444](immich-app/immich#26444)
- feat(web): bounding box for faces when hovering over the face in photo view by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26667](immich-app/immich#26667)
- feat(mobile): keep search results visible by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26498](immich-app/immich#26498)
- feat(mobile): use shared native client by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;25942](immich-app/immich#25942)
- feat(mobile): SyncAssetEditV1 by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26518](immich-app/immich#26518)
- feat(ml): enable openvino for cpu by [@&#8203;apejcic](https://github.com/apejcic) in [#&#8203;22948](immich-app/immich#22948)
- feat: responsive video duration in thumbnail by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26770](immich-app/immich#26770)
- feat(web): animate zoom toggle with cubicOut easing by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26731](immich-app/immich#26731)
- feat(mobile): consolidate video controls by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26673](immich-app/immich#26673)
- feat(web): add shortcut "p" to open/close the face tag box by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26826](immich-app/immich#26826)
- feat(mobile): use material design 3 slider by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26829](immich-app/immich#26829)
- feat: adaptive progressive image loading for photo viewer by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26636](immich-app/immich#26636)
- fix(server): extract make/model from sony video files by [@&#8203;brendanngo](https://github.com/brendanngo) in [#&#8203;26833](immich-app/immich#26833)
- chore(mobile): remove background from asset viewer back button by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26851](immich-app/immich#26851)
- feat(server): support IDPs that only send the userinfo in the ID token by [@&#8203;Belnadifia](https://github.com/Belnadifia) in [#&#8203;26717](immich-app/immich#26717)
- feat(web): improve OCR overlay text fitting, reactivity, and accessibility by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26678](immich-app/immich#26678)
- fix(web): allow pasting PIN code from clipboard or password manager by [@&#8203;pressslav](https://github.com/pressslav) in [#&#8203;26944](immich-app/immich#26944)

##### 🐛 Bug fixes

- fix: ignore checksum constraint error when logging by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26113](immich-app/immich#26113)
- fix(web): use locale for date picker by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26125](immich-app/immich#26125)
- fix(web): escape shortcut handling by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26096](immich-app/immich#26096)
- fix(mobile): Login routing on Splash screen by [@&#8203;PeterOmbodi](https://github.com/PeterOmbodi) in [#&#8203;26128](immich-app/immich#26128)
- fix: null local date time in timeline queries by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26133](immich-app/immich#26133)
- fix(web): prevent event manager from throwing error by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26156](immich-app/immich#26156)
- fix(web): improve api key modal responsiveness by [@&#8203;klenner1](https://github.com/klenner1) in [#&#8203;26151](immich-app/immich#26151)
- fix(web): show correct assets in memory gallery by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26157](immich-app/immich#26157)
- fix(web): add missing [@&#8203;immich/ui](https://github.com/immich/ui) translations by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26143](immich-app/immich#26143)
- fix(mobile): timeline handling on foldable phones + ensuring that images are not cut off by [@&#8203;bkchr](https://github.com/bkchr) in [#&#8203;25088](immich-app/immich#25088)
- fix(mobile): prevent nav bar label text wrapping by [@&#8203;chrislongros](https://github.com/chrislongros) in [#&#8203;26011](immich-app/immich#26011)
- fix(mobile): hide latest version warnings by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26036](immich-app/immich#26036)
- fix(mobile): inconsistent query for people by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;24437](immich-app/immich#24437)
- fix(web): timeline multi select group state by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26180](immich-app/immich#26180)
- fix(web): add checkerboard background for transparent images by [@&#8203;agent-steven](https://github.com/agent-steven) in [#&#8203;26091](immich-app/immich#26091)
- fix(mobile): inherit toolbar opacity by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;25694](immich-app/immich#25694)
- fix(web): focus tag input when modal opens by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26256](immich-app/immich#26256)
- fix(web): clear face boxes when switching assets by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26249](immich-app/immich#26249)
- fix(web): clear unsaved asset description when changing asset by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26255](immich-app/immich#26255)
- fix(web): clear cache when asset changes by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26257](immich-app/immich#26257)
- fix: utc time zone upserts by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;26258](immich-app/immich#26258)
- fix: metadata crash by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26327](immich-app/immich#26327)
- fix: prevent server crash when extraction of metadata fails if the assets are corrupted by [@&#8203;Devansh-Jani](https://github.com/Devansh-Jani) in [#&#8203;26042](immich-app/immich#26042)
- fix(server): db restore failure when `DB_URL` is set to unix-domain socket connection by [@&#8203;fabio-garavini](https://github.com/fabio-garavini) in [#&#8203;26252](immich-app/immich#26252)
- fix: Download the edited version when downloading multiple photos by [@&#8203;MontejoJorge](https://github.com/MontejoJorge) in [#&#8203;26259](immich-app/immich#26259)
- fix: include `DROP INDEX` in transaction to prevent missing index on rollback by [@&#8203;haoxi911](https://github.com/haoxi911) in [#&#8203;25399](immich-app/immich#25399)
- fix: safari address bar color by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26346](immich-app/immich#26346)
- fix(web): prevent panorama image reload during asset updates by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26349](immich-app/immich#26349)
- fix(web): favoriting assets opened via GalleryViewer by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26350](immich-app/immich#26350)
- fix(i18n): add translation key for partner's photos by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26348](immich-app/immich#26348)
- fix(web): single select scroll behavior by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26358](immich-app/immich#26358)
- perf: add indexes to improve People API response times by [@&#8203;bxtdvd](https://github.com/bxtdvd) in [#&#8203;26337](immich-app/immich#26337)
- fix: pin code reset modal by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26370](immich-app/immich#26370)
- fix(mobile): Reset "People" search filter chip if no selections are made by [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) in [#&#8203;26267](immich-app/immich#26267)
- fix(cli): delete sidecar files after upload if requested by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26353](immich-app/immich#26353)
- fix(web): album description auto height by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26420](immich-app/immich#26420)
- fix(web): prevent side panel overlap during transition by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26398](immich-app/immich#26398)
- fix(web): storage template example by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;26424](immich-app/immich#26424)
- fix(web): prevent `state_unsafe_mutation` error on people page by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26438](immich-app/immich#26438)
- fix: missing deletedAt and isVisible columns on mobile by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26414](immich-app/immich#26414)
- fix(mobile): joinLocal on archived timeline by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26387](immich-app/immich#26387)
- fix: always show library scan button by [@&#8203;etnoy](https://github.com/etnoy) in [#&#8203;26428](immich-app/immich#26428)
- fix: retain asset when either asset is a favorite by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26473](immich-app/immich#26473)
- fix(web): prevent null folder tree on concurrent load by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26489](immich-app/immich#26489)
- fix(web): toast warning when trying to upload unsupported file type by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26492](immich-app/immich#26492)
- fix(mobile): birthday picker shows limited months when no date exists by [@&#8203;socksprox](https://github.com/socksprox) in [#&#8203;26407](immich-app/immich#26407)
- fix: consider DAR when extracting video dimension by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;25293](immich-app/immich#25293)
- feat(mobile): Prevent premature image cache eviction when higher image loading is enabled by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;26208](immich-app/immich#26208)
- refactor: star rating by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26357](immich-app/immich#26357)
- fix(mobile): set correct initial system-ui mode in asset viewer by [@&#8203;goalie2002](https://github.com/goalie2002) in [#&#8203;26500](immich-app/immich#26500)
- fix(server): Live Photo migration bug when album is in template by [@&#8203;NikhilAlapati](https://github.com/NikhilAlapati) in [#&#8203;25329](immich-app/immich#25329)
- fix(web): handle delete shortcut on shared link page as remove by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26552](immich-app/immich#26552)
- fix(mobile): prevent video player from being recreated unnecessarily by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26553](immich-app/immich#26553)
- fix(mobile): don't cut off top corners of app bar by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26550](immich-app/immich#26550)
- feat: update onnxruntime-openvino to 1.24.1 and intel drivers by [@&#8203;savely-krasovsky](https://github.com/savely-krasovsky) in [#&#8203;26565](immich-app/immich#26565)
- fix: hide download action for local/merged assets by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26461](immich-app/immich#26461)
- fix(web): top bar z index on search page by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26582](immich-app/immich#26582)
- fix(web): show shared link download button when logged in by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26629](immich-app/immich#26629)
- fix(mobile): asset viewer hero animation by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26545](immich-app/immich#26545)
- fix(web): timeline and asset viewer RTL support by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26513](immich-app/immich#26513)
- fix(server): clean up edited thumbnail when deleting asset by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26664](immich-app/immich#26664)
- fix: implement existing withStacked on searchAssetBuilder by [@&#8203;babbitt](https://github.com/babbitt) in [#&#8203;26607](immich-app/immich#26607)
- fix(mobile): video state by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26574](immich-app/immich#26574)
- fix(maintenance mode): wait for valid server config on restart by [@&#8203;insertish](https://github.com/insertish) in [#&#8203;26456](immich-app/immich#26456)
- fix(web): inconsistent asset nav bar state after visiting shared link by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26674](immich-app/immich#26674)
- fix(web): download toast showing wrong filename for motion assets by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26689](immich-app/immich#26689)
- fix(mobile): add safe area for asset details by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26675](immich-app/immich#26675)
- fix(web): combobox dropdown positioning in modals by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26707](immich-app/immich#26707)
- fix(web): video stealing focus when it plays again when looping by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26704](immich-app/immich#26704)
- fix(ml): batch size setting by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;26524](immich-app/immich#26524)
- fix(server): clarify transcoding bitrate policy by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26711](immich-app/immich#26711)
- fix: playback style migration by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;26718](immich-app/immich#26718)
- fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26741](immich-app/immich#26741)
- fix(server): opus handling as accepted audio codec in transcode policy by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;26736](immich-app/immich#26736)
- fix(web): refresh recent albums sidebar after album changes by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26757](immich-app/immich#26757)
- fix(web): show the correct cursor at crop bounds when editing an asset by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26748](immich-app/immich#26748)
- fix(web): recalculate face bounding boxes by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26737](immich-app/immich#26737)
- fix(web): context menu overflow by [@&#8203;SevereCloud](https://github.com/SevereCloud) in [#&#8203;26760](immich-app/immich#26760)
- fix(web): correct tag rounding in search options by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26814](immich-app/immich#26814)
- fix(web): prevent unrelated assets from appearing in tag view by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26816](immich-app/immich#26816)
- fix(mobile): use tabular figures in backup page by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26830](immich-app/immich#26830)
- fix(mobile): wrap backup error message text by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26834](immich-app/immich#26834)
- fix(server): use correct day ordering in timeline buckets by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26821](immich-app/immich#26821)
- fix(web): face selection box position resetting on browser resize by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26766](immich-app/immich#26766)
- fix: use correct original URL for 360 video panorama playback by [@&#8203;luis15pt](https://github.com/luis15pt) in [#&#8203;26831](immich-app/immich#26831)
- fix(web): disable drag and drop for internal items by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26897](immich-app/immich#26897)
- fix(web): keep header fixed on individual shared links by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26892](immich-app/immich#26892)
- fix: SMTP over TLS by [@&#8203;nathanielhourt](https://github.com/nathanielhourt) in [#&#8203;26893](immich-app/immich#26893)
- fix(web): copy yearMonth in MonthGroup to avoid shared object reference with asset in [#&#8203;26890](immich-app/immich#26890)
- fix(mobile): use shared auth for background\_downloader by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;26911](immich-app/immich#26911)
- fix(web): prevent search page error on missing album filter by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26948](immich-app/immich#26948)
- fix(server): sync files to disk by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26881](immich-app/immich#26881)
- fix(web): jump to primary stacked asset from memory by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26978](immich-app/immich#26978)
- fix(mobile): reflect asset deletions instantly by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26835](immich-app/immich#26835)
- fix: healthcheck by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26989](immich-app/immich#26989)
- fix(web): escape handling for tagging and adding a face in asset viewer by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26870](immich-app/immich#26870)
- fix: filter after searching by asset id by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26994](immich-app/immich#26994)
- fix: bounding box return type by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27014](immich-app/immich#27014)
- fix: validate accept header before returning html by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27019](immich-app/immich#27019)

##### 📚 Documentation

- chore(docs): Update help channel for developers by [@&#8203;Mraedis](https://github.com/Mraedis) in [#&#8203;26284](immich-app/immich#26284)
- feat(docs): Explain configuration file location for Docker Compose by [@&#8203;keunes](https://github.com/keunes) in [#&#8203;24989](immich-app/immich#24989)
- chore(docs): add quick-start guide for DevPod with docker by [@&#8203;dhlavaty](https://github.com/dhlavaty) in [#&#8203;26213](immich-app/immich#26213)
- feat(docs): Adding information about parameter c= by [@&#8203;aviv926](https://github.com/aviv926) in [#&#8203;26430](https://github.com/immich-app/immich/pull/26430)
- feat: doc links by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26519](https://github.com/immich-app/immich/pull/26519)
- fix(docs): add ocr to job flow diagram by [@&#8203;niij](https://github.com/niij) in [#&#8203;26505](https://github.com/immich-app/immich/pull/26505)

##### 🌐 Translations

- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26118](https://github.com/immich-app/immich/pull/26118)
- fix: clarify external domain setting is used for emails too by [@&#8203;chrislongros](https://github.com/chrislongros) in [#&#8203;26009](https://github.com/immich-app/immich/pull/26009)
- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26167](https://github.com/immich-app/immich/pull/26167)
- fix(web): error page i18n by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26517](https://github.com/immich-app/immich/pull/26517)
- chore(web): clarify locale settings description by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;25562](https://github.com/immich-app/immich/pull/25562)
- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26192](https://github.com/immich-app/immich/pull/26192)

#### New Contributors

- [@&#8203;klenner1](https://github.com/klenner1) made their first contribution in [#&#8203;26151](immich-app/immich#26151)
- [@&#8203;bkchr](https://github.com/bkchr) made their first contribution in [#&#8203;25088](immich-app/immich#25088)
- [@&#8203;chrislongros](https://github.com/chrislongros) made their first contribution in [#&#8203;26011](immich-app/immich#26011)
- [@&#8203;agent-steven](https://github.com/agent-steven) made their first contribution in [#&#8203;26091](immich-app/immich#26091)
- [@&#8203;dhlavaty](https://github.com/dhlavaty) made their first contribution in [#&#8203;26238](https://github.com/immich-app/immich/pull/26238)
- [@&#8203;Nacolis](https://github.com/Nacolis) made their first contribution in [#&#8203;26063](immich-app/immich#26063)
- [@&#8203;ewinnd](https://github.com/ewinnd) made their first contribution in [#&#8203;26277](https://github.com/immich-app/immich/pull/26277)
- [@&#8203;dnozay](https://github.com/dnozay) made their first contribution in [#&#8203;26261](immich-app/immich#26261)
- [@&#8203;keunes](https://github.com/keunes) made their first contribution in [#&#8203;24989](immich-app/immich#24989)
- [@&#8203;Devansh-Jani](https://github.com/Devansh-Jani) made their first contribution in [#&#8203;26042](immich-app/immich#26042)
- [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) made their first contribution in [#&#8203;26196](immich-app/immich#26196)
- [@&#8203;fabio-garavini](https://github.com/fabio-garavini) made their first contribution in [#&#8203;26252](immich-app/immich#26252)
- [@&#8203;haoxi911](https://github.com/haoxi911) made their first contribution in [#&#8203;25399](immich-app/immich#25399)
- [@&#8203;thezeroalpha](https://github.com/thezeroalpha) made their first contribution in [#&#8203;20286](immich-app/immich#20286)
- [@&#8203;socksprox](https://github.com/socksprox) made their first contribution in [#&#8203;26407](immich-app/immich#26407)
- [@&#8203;kprinssu](https://github.com/kprinssu) made their first contribution in [#&#8203;26178](immich-app/immich#26178)
- [@&#8203;babbitt](https://github.com/babbitt) made their first contribution in [#&#8203;26607](immich-app/immich#26607)
- [@&#8203;niij](https://github.com/niij) made their first contribution in [#&#8203;26505](https://github.com/immich-app/immich/pull/26505)
- [@&#8203;cratoo](https://github.com/cratoo) made their first contribution in [#&#8203;26667](immich-app/immich#26667)
- [@&#8203;M123-dev](https://github.com/M123-dev) made their first contribution in [#&#8203;26630](https://github.com/immich-app/immich/pull/26630)
- [@&#8203;apejcic](https://github.com/apejcic) made their first contribution in [#&#8203;22948](immich-app/immich#22948)
- [@&#8203;SevereCloud](https://github.com/SevereCloud) made their first contribution in [#&#8203;26760](immich-app/immich#26760)
- [@&#8203;brendanngo](https://github.com/brendanngo) made their first contribution in [#&#8203;26833](immich-app/immich#26833)
- [@&#8203;luis15pt](https://github.com/luis15pt) made their first contribution in [#&#8203;26831](immich-app/immich#26831)
- [@&#8203;nathanielhourt](https://github.com/nathanielhourt) made their first contribution in [#&#8203;26893](immich-app/immich#26893)
- [@&#8203;Belnadifia](https://github.com/Belnadifia) made their first contribution in [#&#8203;26717](immich-app/immich#26717)
- [@&#8203;pressslav](https://github.com/pressslav) made their first contribution in [#&#8203;26944](immich-app/immich#26944)

**Full Changelog**: <immich-app/immich@v2.5.6...v2.6.0>

</details>

---

### Configuration

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

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

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OS4yIiwidXBkYXRlZEluVmVyIjoiNDMuNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4887
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
renovate bot added a commit to sdwilsh/ansible-playbooks that referenced this pull request Mar 21, 2026
##### [\`v2.6.1\`](https://github.com/immich-app/immich/releases/tag/v2.6.1)

##### v2.6.1

##### Hot fixes

- Fixed a failed migration issue on the mobile app when the URL Switching feature is used

##### What's Changed

##### 🐛 Bug fixes

- fix(server): fallback to email when name is empty by [@jrasm91](https://github.com/jrasm91) in [#27016](immich-app/immich#27016)
- fix: ignore errors deleting untitled album by [@jrasm91](https://github.com/jrasm91) in [#27020](immich-app/immich#27020)
- fix(web): wrap long album title by [@jrasm91](https://github.com/jrasm91) in [#27012](immich-app/immich#27012)
- fix(web): stop in-progress uploads on logout by [@jrasm91](https://github.com/jrasm91) in [#27021](immich-app/immich#27021)
- fix: writing empty exif tags by [@danieldietzler](https://github.com/danieldietzler) in [#27025](immich-app/immich#27025)
- fix(web): disable send button by [@jrasm91](https://github.com/jrasm91) in [#27051](immich-app/immich#27051)
- fix(mobile): server url migration by [@mertalev](https://github.com/mertalev) in [#27050](immich-app/immich#27050)

**Full Changelog**: <immich-app/immich@v2.6.0...v2.6.1>

---
##### [\`v2.6.0\`](https://github.com/immich-app/immich/releases/tag/v2.6.0)

##### v2.6.0

Welcome to Immich `v2.6.0`, This release is a collection of more than *350 commits over 6 weeks*. I know, it is an eternity between releases compared to our previous era. This version focuses on bug fixes and enhancements across the app to provide a more delightful and smoother experience to you. This release also prepares for the next major release in the coming month, which will remove the old timeline implementation. Let's dive into the highlights of the release:

> \[!WARNING]
> For those who are still using the old timeline, please switch to the new timeline to avoid interruption, as the old timeline will be removed in the next release.
>
> ps: The old timeline has an exclamation icon next to the logo. <img width="525" height="120" alt="image" src="https://github.com/user-attachments/assets/ed36ea22-b16e-472f-961c-c19501712ba5" />

##### Highlights

- Map side panel (web)
- Pick album cover (mobile)
- Shared link slugs (mobile)
- Shared link presets (web)
- Native HTTP clients (mobile)
- Video player and asset viewer improvements (mobile)
- Improved search results (mobile)
- `schema-check`: a new `immich-admin` command
- Read profile claims from ID token (OAuth)
- Notable fix: cast videos now automatically loop
- Notable fix: correctly extract make and model from Sony XAVC video files
- Notable fix: escape key handling on web
- Notable fix: healthcheck endpoint in maintenance mode
- Notable fix: timeline rendering for RTL languages like Arabic and Hebrew
- Notable fix: prevent server crash when extracting invalid metadata

##### Map side panel (web)

The map view on the web now opens a mini-timeline component as a side panel when you click on a cluster of assets. This makes it easier to view the cluster at a glance and enables bulk actions, such as adding to favorites and adding to an album.

<img width="800" alt="image" src="https://github.com/user-attachments/assets/6f90b04d-4aa7-4f68-b59c-c2b912e638f7" />
##### Pick album cover (mobile)

Users can now pick a new album cover directly from the mobile app.

<https://github.com/user-attachments/assets/7f99dc80-21c6-4ce6-9f75-8e6b0163dcaa>

##### Shared link slugs (mobile)

The mobile app now also supports setting a shared link slug, a feature that's been available on the web for a while.

<https://github.com/user-attachments/assets/5420995a-cfd4-471d-a3ac-db4fa45de780>

##### Shared link presets (web)

The expiration form input on the web was always a bit confusing, but it's been updated to make it easier to see and understand when a shared link will expire.

<img width="400" alt="image" src="https://github.com/user-attachments/assets/9d6124a9-eec2-43e8-b228-e1ac6c0415e8" />
##### Native HTTP clients (mobile)

The mobile app now uses native HTTP clients across both Android and iOS, with support for mTLS, self-signed certificates, basic auth, and custom headers. These features should now be more reliable and extend to background tasks, video playback, and other parts of the app. This also improves the app's overall network request performance thanks to HTTP/2 and HTTP/3, multiplexing, and caching.

##### Video player and asset viewer improvements (mobile)

The asset viewer has undergone many improvements under the hood to make it simpler, faster and more reliable. We've also added playback support for GIFs, enabled video zooming, and made many more bug fixes and tweaks.

##### The asset viewer now uses a gradient for actions, and video controls have been restyled

<img width="300" alt="image" src="https://github.com/user-attachments/assets/9a4e0892-f178-45fc-812c-10a6cba3f48b" />
##### Inline asset details

This used to be a bottom sheet and had a lot of glue for alignment. The new version is much more responsive and less buggy.

##### Before

<https://github.com/user-attachments/assets/43b59b59-7d6a-48d0-94d7-84b8cae1c2a9>

##### After

<https://github.com/user-attachments/assets/9217b6f4-1c92-40b0-bd95-a0681307cf38>

##### Improved search results (mobile)

The search results page now loads more results without rebuilding the entire grid, and should now load much faster. There are also new screens for when there are no search results and when all results have been loaded.

<https://github.com/user-attachments/assets/42ce69d4-1618-48ee-9cb9-91ec22e12b27>

##### `schema-check`: a new `immich-admin` command

A new `immich-admin` command has been added in this release: `schema-check`. The command runs a report on the database to check if any indexes, constraints, tables, or columns are missing. This check also runs automatically on startup.

##### Read profile claims from `idToken` (OAuth)

Prior to `v2.6.0`, Immich resolved the `email` and other claims from the [userinfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) endpoint. Now, Immich also supports reading those claims directly from the `idToken`. This makes it possible to use providers such as Microsoft ADFS that do not support the userinfo endpoint.

***

As always, there are many more QoL improvements, bug fixes, and enhancements in this release. Please find the full release note 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 v2.6.0 -->

##### What's Changed

##### 🔒 Security

- fix(server): restrict individual shared link asset removal to owners by [@michelheusschen](https://github.com/michelheusschen) in [#26868](immich-app/immich#26868)
- fix: add to shared link by [@jrasm91](https://github.com/jrasm91) in [#26886](immich-app/immich#26886)

##### 🚀 Features

- feat: shared link login by [@jrasm91](https://github.com/jrasm91) in [#25678](immich-app/immich#25678)
- feat: schema-check by [@jrasm91](https://github.com/jrasm91) in [#25904](immich-app/immich#25904)
- feat: add people deeplink by [@arne182](https://github.com/arne182) in [#25686](immich-app/immich#25686)
- feat(mobile): inline asset details by [@uhthomas](https://github.com/uhthomas) in [#25952](immich-app/immich#25952)
- feat(mobile): filter by tags by [@benjamonnguyen](https://github.com/benjamonnguyen) in [#26196](immich-app/immich#26196)
- feat: add .mxf file support by [@timonrieger](https://github.com/timonrieger) in [#24644](immich-app/immich#24644)
- feat: tap to see next/previous image by [@thezeroalpha](https://github.com/thezeroalpha) in [#20286](immich-app/immich#20286)
- feat(mobile): Allow users to set album cover from mobile app by [@timonrieger](https://github.com/timonrieger) in [#25515](immich-app/immich#25515)
- feat(mobile): Allow users to set profile picture from asset viewer by [@timonrieger](https://github.com/timonrieger) in [#25517](immich-app/immich#25517)
- feat: ROCm 7.2 and MIGraphX support  by [@kprinssu](https://github.com/kprinssu) in [#26178](immich-app/immich#26178)
- feat(web): map timeline sidepanel by [@michelheusschen](https://github.com/michelheusschen) in [#26532](immich-app/immich#26532)
- feat: add responsive layout to broken asset by [@midzelis](https://github.com/midzelis) in [#26384](immich-app/immich#26384)
- feat(web): toggle zoom on double-click in photo viewer by [@midzelis](https://github.com/midzelis) in [#26732](immich-app/immich#26732)
- feat(mobile): show animated images in asset viewer by [@LeLunZ](https://github.com/LeLunZ) in [#26614](immich-app/immich#26614)
- feat(mobile): open in browser by [@YarosMallorca](https://github.com/YarosMallorca) in [#26369](immich-app/immich#26369)

##### 🌟 Enhancements

- feat: verify permissions by [@jrasm91](https://github.com/jrasm91) in [#25647](immich-app/immich#25647)
- feat(web): change link expiration logic & presets  by [@YarosMallorca](https://github.com/YarosMallorca) in [#26064](immich-app/immich#26064)
- feat(mobile): dynamic layout in new timeline by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#23837](immich-app/immich#23837)
- feat(cli): change progress bar to display file size by [@Nykri](https://github.com/Nykri) in [#23328](immich-app/immich#23328)
- feat(mobile): dynamic multi-line album name by [@uhthomas](https://github.com/uhthomas) in [#26040](immich-app/immich#26040)
- feat(mobile): hide search by context/OCR if disabled on server ([#25472](immich-app/immich#25472)) by [@Nacolis](https://github.com/Nacolis) in [#26063](immich-app/immich#26063)
- fix(release): add docker-compose.rootless.yml to released assets by [@dnozay](https://github.com/dnozay) in [#26261](immich-app/immich#26261)
- feat(web): show ocr text boxes in panoramas by [@meesfrensel](https://github.com/meesfrensel) in [#25727](immich-app/immich#25727)
- feat(web): loop chromecast video by [@etnoy](https://github.com/etnoy) in [#24410](immich-app/immich#24410)
- chore(web): merge "Add to album" and "Add to shared album" actions into a single action by [@timonrieger](https://github.com/timonrieger) in [#24669](immich-app/immich#24669)
- feat(mobile): timeline - add bottomWidgetBuilder  by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#25634](immich-app/immich#25634)
- feat(mobile): video zooming in asset viewer by [@goalie2002](https://github.com/goalie2002) in [#22036](immich-app/immich#22036)
- feat(mobile): Add slug support for shared links by [@Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#26441](immich-app/immich#26441)
- feat: warn when losing transparency during thumbnail generation by [@midzelis](https://github.com/midzelis) in [#26243](immich-app/immich#26243)
- perf(mobile): optimized album sorting by [@YarosMallorca](https://github.com/YarosMallorca) in [#25179](immich-app/immich#25179)
- feat(mobile): prompt when deleting from trash by [@YarosMallorca](https://github.com/YarosMallorca) in [#26392](immich-app/immich#26392)
- feat: getAssetEdits respond with edit IDs by [@bwees](https://github.com/bwees) in [#26445](immich-app/immich#26445)
- fix(server): accept showAt and hideAt for creating memories by [@meesfrensel](https://github.com/meesfrensel) in [#26429](immich-app/immich#26429)
- feat(server): SyncAssetEditV1 by [@bwees](https://github.com/bwees) in [#26446](immich-app/immich#26446)
- feat: splash screen error page by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26460](immich-app/immich#26460)
- feat(mobile): add confirmation dialog to permanent delete action by [@ByteSizedMarius](https://github.com/ByteSizedMarius) in [#26442](immich-app/immich#26442)
- feat: enhance face-editor positioning by [@midzelis](https://github.com/midzelis) in [#26303](immich-app/immich#26303)
- feat: improve HEIC, HEIF and JPEG XL browser support detection by [@nicosemp](https://github.com/nicosemp) in [#26122](immich-app/immich#26122)
- refactor(web): remove replaceAsset action by [@timonrieger](https://github.com/timonrieger) in [#26444](immich-app/immich#26444)
- feat(web): bounding box for faces when hovering over the face in photo view by [@cratoo](https://github.com/cratoo) in [#26667](immich-app/immich#26667)
- feat(mobile): keep search results visible by [@uhthomas](https://github.com/uhthomas) in [#26498](immich-app/immich#26498)
- feat(mobile): use shared native client by [@mertalev](https://github.com/mertalev) in [#25942](immich-app/immich#25942)
- feat(mobile): SyncAssetEditV1 by [@bwees](https://github.com/bwees) in [#26518](immich-app/immich#26518)
- feat(ml): enable openvino for cpu by [@apejcic](https://github.com/apejcic) in [#22948](immich-app/immich#22948)
- feat: responsive video duration in thumbnail by [@midzelis](https://github.com/midzelis) in [#26770](immich-app/immich#26770)
- feat(web): animate zoom toggle with cubicOut easing by [@midzelis](https://github.com/midzelis) in [#26731](immich-app/immich#26731)
- feat(mobile): consolidate video controls by [@uhthomas](https://github.com/uhthomas) in [#26673](immich-app/immich#26673)
- feat(web): add shortcut "p" to open/close the face tag box by [@cratoo](https://github.com/cratoo) in [#26826](immich-app/immich#26826)
- feat(mobile): use material design 3 slider by [@uhthomas](https://github.com/uhthomas) in [#26829](immich-app/immich#26829)
- feat: adaptive progressive image loading for photo viewer by [@midzelis](https://github.com/midzelis) in [#26636](immich-app/immich#26636)
- fix(server): extract make/model from sony video files by [@brendanngo](https://github.com/brendanngo) in [#26833](immich-app/immich#26833)
- chore(mobile): remove background from asset viewer back button by [@uhthomas](https://github.com/uhthomas) in [#26851](immich-app/immich#26851)
- feat(server): support IDPs that only send the userinfo in the ID token by [@Belnadifia](https://github.com/Belnadifia) in [#26717](immich-app/immich#26717)
- feat(web): improve OCR overlay text fitting, reactivity, and accessibility by [@midzelis](https://github.com/midzelis) in [#26678](immich-app/immich#26678)
- fix(web): allow pasting PIN code from clipboard or password manager by [@pressslav](https://github.com/pressslav) in [#26944](immich-app/immich#26944)

##### 🐛 Bug fixes

- fix: ignore checksum constraint error when logging by [@jrasm91](https://github.com/jrasm91) in [#26113](immich-app/immich#26113)
- fix(web): use locale for date picker by [@michelheusschen](https://github.com/michelheusschen) in [#26125](immich-app/immich#26125)
- fix(web): escape shortcut handling by [@michelheusschen](https://github.com/michelheusschen) in [#26096](immich-app/immich#26096)
- fix(mobile): Login routing on Splash screen by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#26128](immich-app/immich#26128)
- fix: null local date time in timeline queries by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26133](immich-app/immich#26133)
- fix(web): prevent event manager from throwing error by [@michelheusschen](https://github.com/michelheusschen) in [#26156](immich-app/immich#26156)
- fix(web): improve api key modal responsiveness by [@klenner1](https://github.com/klenner1) in [#26151](immich-app/immich#26151)
- fix(web): show correct assets in memory gallery by [@michelheusschen](https://github.com/michelheusschen) in [#26157](immich-app/immich#26157)
- fix(web): add missing [@immich/ui](https://github.com/immich/ui) translations by [@michelheusschen](https://github.com/michelheusschen) in [#26143](immich-app/immich#26143)
- fix(mobile): timeline handling on foldable phones + ensuring that images are not cut off by [@bkchr](https://github.com/bkchr) in [#25088](immich-app/immich#25088)
- fix(mobile): prevent nav bar label text wrapping by [@chrislongros](https://github.com/chrislongros) in [#26011](immich-app/immich#26011)
- fix(mobile): hide latest version warnings by [@uhthomas](https://github.com/uhthomas) in [#26036](immich-app/immich#26036)
- fix(mobile): inconsistent query for people by [@YarosMallorca](https://github.com/YarosMallorca) in [#24437](immich-app/immich#24437)
- fix(web): timeline multi select group state by [@michelheusschen](https://github.com/michelheusschen) in [#26180](immich-app/immich#26180)
- fix(web): add checkerboard background for transparent images by [@agent-steven](https://github.com/agent-steven) in [#26091](immich-app/immich#26091)
- fix(mobile): inherit toolbar opacity by [@uhthomas](https://github.com/uhthomas) in [#25694](immich-app/immich#25694)
- fix(web): focus tag input when modal opens by [@michelheusschen](https://github.com/michelheusschen) in [#26256](immich-app/immich#26256)
- fix(web): clear face boxes when switching assets by [@michelheusschen](https://github.com/michelheusschen) in [#26249](immich-app/immich#26249)
- fix(web): clear unsaved asset description when changing asset by [@michelheusschen](https://github.com/michelheusschen) in [#26255](immich-app/immich#26255)
- fix(web): clear cache when asset changes by [@michelheusschen](https://github.com/michelheusschen) in [#26257](immich-app/immich#26257)
- fix: utc time zone upserts by [@danieldietzler](https://github.com/danieldietzler) in [#26258](immich-app/immich#26258)
- fix: metadata crash by [@jrasm91](https://github.com/jrasm91) in [#26327](immich-app/immich#26327)
- fix: prevent server crash when extraction of metadata fails if the assets are corrupted by [@Devansh-Jani](https://github.com/Devansh-Jani) in [#26042](immich-app/immich#26042)
- fix(server): db restore failure when `DB_URL` is set to unix-domain socket connection by [@fabio-garavini](https://github.com/fabio-garavini) in [#26252](immich-app/immich#26252)
- fix: Download the edited version when downloading multiple photos by [@MontejoJorge](https://github.com/MontejoJorge) in [#26259](immich-app/immich#26259)
- fix: include `DROP INDEX` in transaction to prevent missing index on rollback by [@haoxi911](https://github.com/haoxi911) in [#25399](immich-app/immich#25399)
- fix: safari address bar color by [@jrasm91](https://github.com/jrasm91) in [#26346](immich-app/immich#26346)
- fix(web): prevent panorama image reload during asset updates by [@michelheusschen](https://github.com/michelheusschen) in [#26349](immich-app/immich#26349)
- fix(web): favoriting assets opened via GalleryViewer by [@michelheusschen](https://github.com/michelheusschen) in [#26350](immich-app/immich#26350)
- fix(i18n): add translation key for partner's photos by [@timonrieger](https://github.com/timonrieger) in [#26348](immich-app/immich#26348)
- fix(web): single select scroll behavior by [@timonrieger](https://github.com/timonrieger) in [#26358](immich-app/immich#26358)
- perf: add indexes to improve People API response times by [@bxtdvd](https://github.com/bxtdvd) in [#26337](immich-app/immich#26337)
- fix: pin code reset modal by [@jrasm91](https://github.com/jrasm91) in [#26370](immich-app/immich#26370)
- fix(mobile): Reset "People" search filter chip if no selections are made by [@benjamonnguyen](https://github.com/benjamonnguyen) in [#26267](immich-app/immich#26267)
- fix(cli): delete sidecar files after upload if requested by [@timonrieger](https://github.com/timonrieger) in [#26353](immich-app/immich#26353)
- fix(web): album description auto height by [@michelheusschen](https://github.com/michelheusschen) in [#26420](immich-app/immich#26420)
- fix(web): prevent side panel overlap during transition by [@michelheusschen](https://github.com/michelheusschen) in [#26398](immich-app/immich#26398)
- fix(web): storage template example by [@mmomjian](https://github.com/mmomjian) in [#26424](immich-app/immich#26424)
- fix(web): prevent `state_unsafe_mutation` error on people page by [@michelheusschen](https://github.com/michelheusschen) in [#26438](immich-app/immich#26438)
- fix: missing deletedAt and isVisible columns on mobile by [@bwees](https://github.com/bwees) in [#26414](immich-app/immich#26414)
- fix(mobile): joinLocal on archived timeline by [@YarosMallorca](https://github.com/YarosMallorca) in [#26387](immich-app/immich#26387)
- fix: always show library scan button by [@etnoy](https://github.com/etnoy) in [#26428](immich-app/immich#26428)
- fix: retain asset when either asset is a favorite by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26473](immich-app/immich#26473)
- fix(web): prevent null folder tree on concurrent load by [@michelheusschen](https://github.com/michelheusschen) in [#26489](immich-app/immich#26489)
- fix(web): toast warning when trying to upload unsupported file type by [@meesfrensel](https://github.com/meesfrensel) in [#26492](immich-app/immich#26492)
- fix(mobile): birthday picker shows limited months when no date exists by [@socksprox](https://github.com/socksprox) in [#26407](immich-app/immich#26407)
- fix: consider DAR when extracting video dimension by [@alextran1502](https://github.com/alextran1502) in [#25293](immich-app/immich#25293)
- feat(mobile): Prevent premature image cache eviction when higher image loading is enabled by [@LeLunZ](https://github.com/LeLunZ) in [#26208](immich-app/immich#26208)
- refactor: star rating by [@meesfrensel](https://github.com/meesfrensel) in [#26357](immich-app/immich#26357)
- fix(mobile): set correct initial system-ui mode in asset viewer by [@goalie2002](https://github.com/goalie2002) in [#26500](immich-app/immich#26500)
- fix(server): Live Photo migration bug when album is in template by [@NikhilAlapati](https://github.com/NikhilAlapati) in [#25329](immich-app/immich#25329)
- fix(web): handle delete shortcut on shared link page as remove by [@meesfrensel](https://github.com/meesfrensel) in [#26552](immich-app/immich#26552)
- fix(mobile): prevent video player from being recreated unnecessarily by [@uhthomas](https://github.com/uhthomas) in [#26553](immich-app/immich#26553)
- fix(mobile): don't cut off top corners of app bar by [@uhthomas](https://github.com/uhthomas) in [#26550](immich-app/immich#26550)
- feat: update onnxruntime-openvino to 1.24.1 and intel drivers by [@savely-krasovsky](https://github.com/savely-krasovsky) in [#26565](immich-app/immich#26565)
- fix: hide download action for local/merged assets by [@YarosMallorca](https://github.com/YarosMallorca) in [#26461](immich-app/immich#26461)
- fix(web): top bar z index on search page by [@YarosMallorca](https://github.com/YarosMallorca) in [#26582](immich-app/immich#26582)
- fix(web): show shared link download button when logged in by [@Snowknight26](https://github.com/Snowknight26) in [#26629](immich-app/immich#26629)
- fix(mobile): asset viewer hero animation by [@uhthomas](https://github.com/uhthomas) in [#26545](immich-app/immich#26545)
- fix(web): timeline and asset viewer RTL support by [@meesfrensel](https://github.com/meesfrensel) in [#26513](immich-app/immich#26513)
- fix(server): clean up edited thumbnail when deleting asset by [@michelheusschen](https://github.com/michelheusschen) in [#26664](immich-app/immich#26664)
- fix: implement existing withStacked on searchAssetBuilder by [@babbitt](https://github.com/babbitt) in [#26607](immich-app/immich#26607)
- fix(mobile): video state by [@uhthomas](https://github.com/uhthomas) in [#26574](immich-app/immich#26574)
- fix(maintenance mode): wait for valid server config on restart by [@insertish](https://github.com/insertish) in [#26456](immich-app/immich#26456)
- fix(web): inconsistent asset nav bar state after visiting shared link by [@Snowknight26](https://github.com/Snowknight26) in [#26674](immich-app/immich#26674)
- fix(web): download toast showing wrong filename for motion assets by [@Snowknight26](https://github.com/Snowknight26) in [#26689](immich-app/immich#26689)
- fix(mobile): add safe area for asset details by [@uhthomas](https://github.com/uhthomas) in [#26675](immich-app/immich#26675)
- fix(web): combobox dropdown positioning in modals by [@michelheusschen](https://github.com/michelheusschen) in [#26707](immich-app/immich#26707)
- fix(web): video stealing focus when it plays again when looping by [@Snowknight26](https://github.com/Snowknight26) in [#26704](immich-app/immich#26704)
- fix(ml): batch size setting by [@mertalev](https://github.com/mertalev) in [#26524](immich-app/immich#26524)
- fix(server): clarify transcoding bitrate policy by [@meesfrensel](https://github.com/meesfrensel) in [#26711](immich-app/immich#26711)
- fix: playback style migration by [@alextran1502](https://github.com/alextran1502) in [#26718](immich-app/immich#26718)
- fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails by [@Snowknight26](https://github.com/Snowknight26) in [#26741](immich-app/immich#26741)
- fix(server): opus handling as accepted audio codec in transcode policy by [@skatsubo](https://github.com/skatsubo) in [#26736](immich-app/immich#26736)
- fix(web): refresh recent albums sidebar after album changes by [@michelheusschen](https://github.com/michelheusschen) in [#26757](immich-app/immich#26757)
- fix(web): show the correct cursor at crop bounds when editing an asset by [@Snowknight26](https://github.com/Snowknight26) in [#26748](immich-app/immich#26748)
- fix(web): recalculate face bounding boxes by [@cratoo](https://github.com/cratoo) in [#26737](immich-app/immich#26737)
- fix(web): context menu overflow by [@SevereCloud](https://github.com/SevereCloud) in [#26760](immich-app/immich#26760)
- fix(web): correct tag rounding in search options by [@michelheusschen](https://github.com/michelheusschen) in [#26814](immich-app/immich#26814)
- fix(web): prevent unrelated assets from appearing in tag view by [@michelheusschen](https://github.com/michelheusschen) in [#26816](immich-app/immich#26816)
- fix(mobile): use tabular figures in backup page by [@uhthomas](https://github.com/uhthomas) in [#26830](immich-app/immich#26830)
- fix(mobile): wrap backup error message text by [@uhthomas](https://github.com/uhthomas) in [#26834](immich-app/immich#26834)
- fix(server): use correct day ordering in timeline buckets by [@michelheusschen](https://github.com/michelheusschen) in [#26821](immich-app/immich#26821)
- fix(web): face selection box position resetting on browser resize by [@Snowknight26](https://github.com/Snowknight26) in [#26766](immich-app/immich#26766)
- fix: use correct original URL for 360 video panorama playback by [@luis15pt](https://github.com/luis15pt) in [#26831](immich-app/immich#26831)
- fix(web): disable drag and drop for internal items by [@michelheusschen](https://github.com/michelheusschen) in [#26897](immich-app/immich#26897)
- fix(web): keep header fixed on individual shared links by [@michelheusschen](https://github.com/michelheusschen) in [#26892](immich-app/immich#26892)
- fix: SMTP over TLS by [@nathanielhourt](https://github.com/nathanielhourt) in [#26893](immich-app/immich#26893)
- fix(web): copy yearMonth in MonthGroup to avoid shared object reference with asset in [#26890](immich-app/immich#26890)
- fix(mobile): use shared auth for background\_downloader by [@mertalev](https://github.com/mertalev) in [#26911](immich-app/immich#26911)
- fix(web): prevent search page error on missing album filter by [@michelheusschen](https://github.com/michelheusschen) in [#26948](immich-app/immich#26948)
- fix(server): sync files to disk by [@uhthomas](https://github.com/uhthomas) in [#26881](immich-app/immich#26881)
- fix(web): jump to primary stacked asset from memory by [@michelheusschen](https://github.com/michelheusschen) in [#26978](immich-app/immich#26978)
- fix(mobile): reflect asset deletions instantly by [@uhthomas](https://github.com/uhthomas) in [#26835](immich-app/immich#26835)
- fix: healthcheck by [@jrasm91](https://github.com/jrasm91) in [#26989](immich-app/immich#26989)
- fix(web): escape handling for tagging and adding a face in asset viewer by [@cratoo](https://github.com/cratoo) in [#26870](immich-app/immich#26870)
- fix: filter after searching by asset id by [@jrasm91](https://github.com/jrasm91) in [#26994](immich-app/immich#26994)
- fix: bounding box return type by [@jrasm91](https://github.com/jrasm91) in [#27014](immich-app/immich#27014)
- fix: validate accept header before returning html by [@jrasm91](https://github.com/jrasm91) in [#27019](immich-app/immich#27019)

##### 📚 Documentation

- chore(docs): Update help channel for developers by [@Mraedis](https://github.com/Mraedis) in [#26284](immich-app/immich#26284)
- feat(docs): Explain configuration file location for Docker Compose by [@keunes](https://github.com/keunes) in [#24989](immich-app/immich#24989)
- chore(docs): add quick-start guide for DevPod with docker by [@dhlavaty](https://github.com/dhlavaty) in [#26213](immich-app/immich#26213)
- feat(docs): Adding information about parameter c= by [@aviv926](https://github.com/aviv926) in [#26430](immich-app/immich#26430)
- feat: doc links by [@jrasm91](https://github.com/jrasm91) in [#26519](immich-app/immich#26519)
- fix(docs): add ocr to job flow diagram by [@niij](https://github.com/niij) in [#26505](immich-app/immich#26505)

##### 🌐 Translations

- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26118](immich-app/immich#26118)
- fix: clarify external domain setting is used for emails too by [@chrislongros](https://github.com/chrislongros) in [#26009](immich-app/immich#26009)
- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26167](immich-app/immich#26167)
- fix(web): error page i18n by [@meesfrensel](https://github.com/meesfrensel) in [#26517](immich-app/immich#26517)
- chore(web): clarify locale settings description by [@meesfrensel](https://github.com/meesfrensel) in [#25562](immich-app/immich#25562)
- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26192](immich-app/immich#26192)

##### New Contributors

- [@klenner1](https://github.com/klenner1) made their first contribution in [#26151](immich-app/immich#26151)
- [@bkchr](https://github.com/bkchr) made their first contribution in [#25088](immich-app/immich#25088)
- [@chrislongros](https://github.com/chrislongros) made their first contribution in [#26011](immich-app/immich#26011)
- [@agent-steven](https://github.com/agent-steven) made their first contribution in [#26091](immich-app/immich#26091)
- [@dhlavaty](https://github.com/dhlavaty) made their first contribution in [#26238](immich-app/immich#26238)
- [@Nacolis](https://github.com/Nacolis) made their first contribution in [#26063](immich-app/immich#26063)
- [@ewinnd](https://github.com/ewinnd) made their first contribution in [#26277](immich-app/immich#26277)
- [@dnozay](https://github.com/dnozay) made their first contribution in [#26261](immich-app/immich#26261)
- [@keunes](https://github.com/keunes) made their first contribution in [#24989](immich-app/immich#24989)
- [@Devansh-Jani](https://github.com/Devansh-Jani) made their first contribution in [#26042](immich-app/immich#26042)
- [@benjamonnguyen](https://github.com/benjamonnguyen) made their first contribution in [#26196](immich-app/immich#26196)
- [@fabio-garavini](https://github.com/fabio-garavini) made their first contribution in [#26252](immich-app/immich#26252)
- [@haoxi911](https://github.com/haoxi911) made their first contribution in [#25399](immich-app/immich#25399)
- [@thezeroalpha](https://github.com/thezeroalpha) made their first contribution in [#20286](immich-app/immich#20286)
- [@socksprox](https://github.com/socksprox) made their first contribution in [#26407](immich-app/immich#26407)
- [@kprinssu](https://github.com/kprinssu) made their first contribution in [#26178](immich-app/immich#26178)
- [@babbitt](https://github.com/babbitt) made their first contribution in [#26607](immich-app/immich#26607)
- [@niij](https://github.com/niij) made their first contribution in [#26505](immich-app/immich#26505)
- [@cratoo](https://github.com/cratoo) made their first contribution in [#26667](immich-app/immich#26667)
- [@M123-dev](https://github.com/M123-dev) made their first contribution in [#26630](immich-app/immich#26630)
- [@apejcic](https://github.com/apejcic) made their first contribution in [#22948](immich-app/immich#22948)
- [@SevereCloud](https://github.com/SevereCloud) made their first contribution in [#26760](immich-app/immich#26760)
- [@brendanngo](https://github.com/brendanngo) made their first contribution in [#26833](immich-app/immich#26833)
- [@luis15pt](https://github.com/luis15pt) made their first contribution in [#26831](immich-app/immich#26831)
- [@nathanielhourt](https://github.com/nathanielhourt) made their first contribution in [#26893](immich-app/immich#26893)
- [@Belnadifia](https://github.com/Belnadifia) made their first contribution in [#26717](immich-app/immich#26717)
- [@pressslav](https://github.com/pressslav) made their first contribution in [#26944](immich-app/immich#26944)

**Full Changelog**: <immich-app/immich@v2.5.6...v2.6.0>
sdwilsh pushed a commit to sdwilsh/ansible-playbooks that referenced this pull request Mar 21, 2026
##### [\`v2.6.1\`](https://github.com/immich-app/immich/releases/tag/v2.6.1)

##### v2.6.1

##### Hot fixes

- Fixed a failed migration issue on the mobile app when the URL Switching feature is used

##### What's Changed

##### 🐛 Bug fixes

- fix(server): fallback to email when name is empty by [@jrasm91](https://github.com/jrasm91) in [#27016](immich-app/immich#27016)
- fix: ignore errors deleting untitled album by [@jrasm91](https://github.com/jrasm91) in [#27020](immich-app/immich#27020)
- fix(web): wrap long album title by [@jrasm91](https://github.com/jrasm91) in [#27012](immich-app/immich#27012)
- fix(web): stop in-progress uploads on logout by [@jrasm91](https://github.com/jrasm91) in [#27021](immich-app/immich#27021)
- fix: writing empty exif tags by [@danieldietzler](https://github.com/danieldietzler) in [#27025](immich-app/immich#27025)
- fix(web): disable send button by [@jrasm91](https://github.com/jrasm91) in [#27051](immich-app/immich#27051)
- fix(mobile): server url migration by [@mertalev](https://github.com/mertalev) in [#27050](immich-app/immich#27050)

**Full Changelog**: <immich-app/immich@v2.6.0...v2.6.1>

---
##### [\`v2.6.0\`](https://github.com/immich-app/immich/releases/tag/v2.6.0)

##### v2.6.0

Welcome to Immich `v2.6.0`, This release is a collection of more than *350 commits over 6 weeks*. I know, it is an eternity between releases compared to our previous era. This version focuses on bug fixes and enhancements across the app to provide a more delightful and smoother experience to you. This release also prepares for the next major release in the coming month, which will remove the old timeline implementation. Let's dive into the highlights of the release:

> \[!WARNING]
> For those who are still using the old timeline, please switch to the new timeline to avoid interruption, as the old timeline will be removed in the next release.
>
> ps: The old timeline has an exclamation icon next to the logo. <img width="525" height="120" alt="image" src="https://github.com/user-attachments/assets/ed36ea22-b16e-472f-961c-c19501712ba5" />

##### Highlights

- Map side panel (web)
- Pick album cover (mobile)
- Shared link slugs (mobile)
- Shared link presets (web)
- Native HTTP clients (mobile)
- Video player and asset viewer improvements (mobile)
- Improved search results (mobile)
- `schema-check`: a new `immich-admin` command
- Read profile claims from ID token (OAuth)
- Notable fix: cast videos now automatically loop
- Notable fix: correctly extract make and model from Sony XAVC video files
- Notable fix: escape key handling on web
- Notable fix: healthcheck endpoint in maintenance mode
- Notable fix: timeline rendering for RTL languages like Arabic and Hebrew
- Notable fix: prevent server crash when extracting invalid metadata

##### Map side panel (web)

The map view on the web now opens a mini-timeline component as a side panel when you click on a cluster of assets. This makes it easier to view the cluster at a glance and enables bulk actions, such as adding to favorites and adding to an album.

<img width="800" alt="image" src="https://github.com/user-attachments/assets/6f90b04d-4aa7-4f68-b59c-c2b912e638f7" />
##### Pick album cover (mobile)

Users can now pick a new album cover directly from the mobile app.

<https://github.com/user-attachments/assets/7f99dc80-21c6-4ce6-9f75-8e6b0163dcaa>

##### Shared link slugs (mobile)

The mobile app now also supports setting a shared link slug, a feature that's been available on the web for a while.

<https://github.com/user-attachments/assets/5420995a-cfd4-471d-a3ac-db4fa45de780>

##### Shared link presets (web)

The expiration form input on the web was always a bit confusing, but it's been updated to make it easier to see and understand when a shared link will expire.

<img width="400" alt="image" src="https://github.com/user-attachments/assets/9d6124a9-eec2-43e8-b228-e1ac6c0415e8" />
##### Native HTTP clients (mobile)

The mobile app now uses native HTTP clients across both Android and iOS, with support for mTLS, self-signed certificates, basic auth, and custom headers. These features should now be more reliable and extend to background tasks, video playback, and other parts of the app. This also improves the app's overall network request performance thanks to HTTP/2 and HTTP/3, multiplexing, and caching.

##### Video player and asset viewer improvements (mobile)

The asset viewer has undergone many improvements under the hood to make it simpler, faster and more reliable. We've also added playback support for GIFs, enabled video zooming, and made many more bug fixes and tweaks.

##### The asset viewer now uses a gradient for actions, and video controls have been restyled

<img width="300" alt="image" src="https://github.com/user-attachments/assets/9a4e0892-f178-45fc-812c-10a6cba3f48b" />
##### Inline asset details

This used to be a bottom sheet and had a lot of glue for alignment. The new version is much more responsive and less buggy.

##### Before

<https://github.com/user-attachments/assets/43b59b59-7d6a-48d0-94d7-84b8cae1c2a9>

##### After

<https://github.com/user-attachments/assets/9217b6f4-1c92-40b0-bd95-a0681307cf38>

##### Improved search results (mobile)

The search results page now loads more results without rebuilding the entire grid, and should now load much faster. There are also new screens for when there are no search results and when all results have been loaded.

<https://github.com/user-attachments/assets/42ce69d4-1618-48ee-9cb9-91ec22e12b27>

##### `schema-check`: a new `immich-admin` command

A new `immich-admin` command has been added in this release: `schema-check`. The command runs a report on the database to check if any indexes, constraints, tables, or columns are missing. This check also runs automatically on startup.

##### Read profile claims from `idToken` (OAuth)

Prior to `v2.6.0`, Immich resolved the `email` and other claims from the [userinfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) endpoint. Now, Immich also supports reading those claims directly from the `idToken`. This makes it possible to use providers such as Microsoft ADFS that do not support the userinfo endpoint.

***

As always, there are many more QoL improvements, bug fixes, and enhancements in this release. Please find the full release note 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 v2.6.0 -->

##### What's Changed

##### 🔒 Security

- fix(server): restrict individual shared link asset removal to owners by [@michelheusschen](https://github.com/michelheusschen) in [#26868](immich-app/immich#26868)
- fix: add to shared link by [@jrasm91](https://github.com/jrasm91) in [#26886](immich-app/immich#26886)

##### 🚀 Features

- feat: shared link login by [@jrasm91](https://github.com/jrasm91) in [#25678](immich-app/immich#25678)
- feat: schema-check by [@jrasm91](https://github.com/jrasm91) in [#25904](immich-app/immich#25904)
- feat: add people deeplink by [@arne182](https://github.com/arne182) in [#25686](immich-app/immich#25686)
- feat(mobile): inline asset details by [@uhthomas](https://github.com/uhthomas) in [#25952](immich-app/immich#25952)
- feat(mobile): filter by tags by [@benjamonnguyen](https://github.com/benjamonnguyen) in [#26196](immich-app/immich#26196)
- feat: add .mxf file support by [@timonrieger](https://github.com/timonrieger) in [#24644](immich-app/immich#24644)
- feat: tap to see next/previous image by [@thezeroalpha](https://github.com/thezeroalpha) in [#20286](immich-app/immich#20286)
- feat(mobile): Allow users to set album cover from mobile app by [@timonrieger](https://github.com/timonrieger) in [#25515](immich-app/immich#25515)
- feat(mobile): Allow users to set profile picture from asset viewer by [@timonrieger](https://github.com/timonrieger) in [#25517](immich-app/immich#25517)
- feat: ROCm 7.2 and MIGraphX support  by [@kprinssu](https://github.com/kprinssu) in [#26178](immich-app/immich#26178)
- feat(web): map timeline sidepanel by [@michelheusschen](https://github.com/michelheusschen) in [#26532](immich-app/immich#26532)
- feat: add responsive layout to broken asset by [@midzelis](https://github.com/midzelis) in [#26384](immich-app/immich#26384)
- feat(web): toggle zoom on double-click in photo viewer by [@midzelis](https://github.com/midzelis) in [#26732](immich-app/immich#26732)
- feat(mobile): show animated images in asset viewer by [@LeLunZ](https://github.com/LeLunZ) in [#26614](immich-app/immich#26614)
- feat(mobile): open in browser by [@YarosMallorca](https://github.com/YarosMallorca) in [#26369](immich-app/immich#26369)

##### 🌟 Enhancements

- feat: verify permissions by [@jrasm91](https://github.com/jrasm91) in [#25647](immich-app/immich#25647)
- feat(web): change link expiration logic & presets  by [@YarosMallorca](https://github.com/YarosMallorca) in [#26064](immich-app/immich#26064)
- feat(mobile): dynamic layout in new timeline by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#23837](immich-app/immich#23837)
- feat(cli): change progress bar to display file size by [@Nykri](https://github.com/Nykri) in [#23328](immich-app/immich#23328)
- feat(mobile): dynamic multi-line album name by [@uhthomas](https://github.com/uhthomas) in [#26040](immich-app/immich#26040)
- feat(mobile): hide search by context/OCR if disabled on server ([#25472](immich-app/immich#25472)) by [@Nacolis](https://github.com/Nacolis) in [#26063](immich-app/immich#26063)
- fix(release): add docker-compose.rootless.yml to released assets by [@dnozay](https://github.com/dnozay) in [#26261](immich-app/immich#26261)
- feat(web): show ocr text boxes in panoramas by [@meesfrensel](https://github.com/meesfrensel) in [#25727](immich-app/immich#25727)
- feat(web): loop chromecast video by [@etnoy](https://github.com/etnoy) in [#24410](immich-app/immich#24410)
- chore(web): merge "Add to album" and "Add to shared album" actions into a single action by [@timonrieger](https://github.com/timonrieger) in [#24669](immich-app/immich#24669)
- feat(mobile): timeline - add bottomWidgetBuilder  by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#25634](immich-app/immich#25634)
- feat(mobile): video zooming in asset viewer by [@goalie2002](https://github.com/goalie2002) in [#22036](immich-app/immich#22036)
- feat(mobile): Add slug support for shared links by [@Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#26441](immich-app/immich#26441)
- feat: warn when losing transparency during thumbnail generation by [@midzelis](https://github.com/midzelis) in [#26243](immich-app/immich#26243)
- perf(mobile): optimized album sorting by [@YarosMallorca](https://github.com/YarosMallorca) in [#25179](immich-app/immich#25179)
- feat(mobile): prompt when deleting from trash by [@YarosMallorca](https://github.com/YarosMallorca) in [#26392](immich-app/immich#26392)
- feat: getAssetEdits respond with edit IDs by [@bwees](https://github.com/bwees) in [#26445](immich-app/immich#26445)
- fix(server): accept showAt and hideAt for creating memories by [@meesfrensel](https://github.com/meesfrensel) in [#26429](immich-app/immich#26429)
- feat(server): SyncAssetEditV1 by [@bwees](https://github.com/bwees) in [#26446](immich-app/immich#26446)
- feat: splash screen error page by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26460](immich-app/immich#26460)
- feat(mobile): add confirmation dialog to permanent delete action by [@ByteSizedMarius](https://github.com/ByteSizedMarius) in [#26442](immich-app/immich#26442)
- feat: enhance face-editor positioning by [@midzelis](https://github.com/midzelis) in [#26303](immich-app/immich#26303)
- feat: improve HEIC, HEIF and JPEG XL browser support detection by [@nicosemp](https://github.com/nicosemp) in [#26122](immich-app/immich#26122)
- refactor(web): remove replaceAsset action by [@timonrieger](https://github.com/timonrieger) in [#26444](immich-app/immich#26444)
- feat(web): bounding box for faces when hovering over the face in photo view by [@cratoo](https://github.com/cratoo) in [#26667](immich-app/immich#26667)
- feat(mobile): keep search results visible by [@uhthomas](https://github.com/uhthomas) in [#26498](immich-app/immich#26498)
- feat(mobile): use shared native client by [@mertalev](https://github.com/mertalev) in [#25942](immich-app/immich#25942)
- feat(mobile): SyncAssetEditV1 by [@bwees](https://github.com/bwees) in [#26518](immich-app/immich#26518)
- feat(ml): enable openvino for cpu by [@apejcic](https://github.com/apejcic) in [#22948](immich-app/immich#22948)
- feat: responsive video duration in thumbnail by [@midzelis](https://github.com/midzelis) in [#26770](immich-app/immich#26770)
- feat(web): animate zoom toggle with cubicOut easing by [@midzelis](https://github.com/midzelis) in [#26731](immich-app/immich#26731)
- feat(mobile): consolidate video controls by [@uhthomas](https://github.com/uhthomas) in [#26673](immich-app/immich#26673)
- feat(web): add shortcut "p" to open/close the face tag box by [@cratoo](https://github.com/cratoo) in [#26826](immich-app/immich#26826)
- feat(mobile): use material design 3 slider by [@uhthomas](https://github.com/uhthomas) in [#26829](immich-app/immich#26829)
- feat: adaptive progressive image loading for photo viewer by [@midzelis](https://github.com/midzelis) in [#26636](immich-app/immich#26636)
- fix(server): extract make/model from sony video files by [@brendanngo](https://github.com/brendanngo) in [#26833](immich-app/immich#26833)
- chore(mobile): remove background from asset viewer back button by [@uhthomas](https://github.com/uhthomas) in [#26851](immich-app/immich#26851)
- feat(server): support IDPs that only send the userinfo in the ID token by [@Belnadifia](https://github.com/Belnadifia) in [#26717](immich-app/immich#26717)
- feat(web): improve OCR overlay text fitting, reactivity, and accessibility by [@midzelis](https://github.com/midzelis) in [#26678](immich-app/immich#26678)
- fix(web): allow pasting PIN code from clipboard or password manager by [@pressslav](https://github.com/pressslav) in [#26944](immich-app/immich#26944)

##### 🐛 Bug fixes

- fix: ignore checksum constraint error when logging by [@jrasm91](https://github.com/jrasm91) in [#26113](immich-app/immich#26113)
- fix(web): use locale for date picker by [@michelheusschen](https://github.com/michelheusschen) in [#26125](immich-app/immich#26125)
- fix(web): escape shortcut handling by [@michelheusschen](https://github.com/michelheusschen) in [#26096](immich-app/immich#26096)
- fix(mobile): Login routing on Splash screen by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#26128](immich-app/immich#26128)
- fix: null local date time in timeline queries by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26133](immich-app/immich#26133)
- fix(web): prevent event manager from throwing error by [@michelheusschen](https://github.com/michelheusschen) in [#26156](immich-app/immich#26156)
- fix(web): improve api key modal responsiveness by [@klenner1](https://github.com/klenner1) in [#26151](immich-app/immich#26151)
- fix(web): show correct assets in memory gallery by [@michelheusschen](https://github.com/michelheusschen) in [#26157](immich-app/immich#26157)
- fix(web): add missing [@immich/ui](https://github.com/immich/ui) translations by [@michelheusschen](https://github.com/michelheusschen) in [#26143](immich-app/immich#26143)
- fix(mobile): timeline handling on foldable phones + ensuring that images are not cut off by [@bkchr](https://github.com/bkchr) in [#25088](immich-app/immich#25088)
- fix(mobile): prevent nav bar label text wrapping by [@chrislongros](https://github.com/chrislongros) in [#26011](immich-app/immich#26011)
- fix(mobile): hide latest version warnings by [@uhthomas](https://github.com/uhthomas) in [#26036](immich-app/immich#26036)
- fix(mobile): inconsistent query for people by [@YarosMallorca](https://github.com/YarosMallorca) in [#24437](immich-app/immich#24437)
- fix(web): timeline multi select group state by [@michelheusschen](https://github.com/michelheusschen) in [#26180](immich-app/immich#26180)
- fix(web): add checkerboard background for transparent images by [@agent-steven](https://github.com/agent-steven) in [#26091](immich-app/immich#26091)
- fix(mobile): inherit toolbar opacity by [@uhthomas](https://github.com/uhthomas) in [#25694](immich-app/immich#25694)
- fix(web): focus tag input when modal opens by [@michelheusschen](https://github.com/michelheusschen) in [#26256](immich-app/immich#26256)
- fix(web): clear face boxes when switching assets by [@michelheusschen](https://github.com/michelheusschen) in [#26249](immich-app/immich#26249)
- fix(web): clear unsaved asset description when changing asset by [@michelheusschen](https://github.com/michelheusschen) in [#26255](immich-app/immich#26255)
- fix(web): clear cache when asset changes by [@michelheusschen](https://github.com/michelheusschen) in [#26257](immich-app/immich#26257)
- fix: utc time zone upserts by [@danieldietzler](https://github.com/danieldietzler) in [#26258](immich-app/immich#26258)
- fix: metadata crash by [@jrasm91](https://github.com/jrasm91) in [#26327](immich-app/immich#26327)
- fix: prevent server crash when extraction of metadata fails if the assets are corrupted by [@Devansh-Jani](https://github.com/Devansh-Jani) in [#26042](immich-app/immich#26042)
- fix(server): db restore failure when `DB_URL` is set to unix-domain socket connection by [@fabio-garavini](https://github.com/fabio-garavini) in [#26252](immich-app/immich#26252)
- fix: Download the edited version when downloading multiple photos by [@MontejoJorge](https://github.com/MontejoJorge) in [#26259](immich-app/immich#26259)
- fix: include `DROP INDEX` in transaction to prevent missing index on rollback by [@haoxi911](https://github.com/haoxi911) in [#25399](immich-app/immich#25399)
- fix: safari address bar color by [@jrasm91](https://github.com/jrasm91) in [#26346](immich-app/immich#26346)
- fix(web): prevent panorama image reload during asset updates by [@michelheusschen](https://github.com/michelheusschen) in [#26349](immich-app/immich#26349)
- fix(web): favoriting assets opened via GalleryViewer by [@michelheusschen](https://github.com/michelheusschen) in [#26350](immich-app/immich#26350)
- fix(i18n): add translation key for partner's photos by [@timonrieger](https://github.com/timonrieger) in [#26348](immich-app/immich#26348)
- fix(web): single select scroll behavior by [@timonrieger](https://github.com/timonrieger) in [#26358](immich-app/immich#26358)
- perf: add indexes to improve People API response times by [@bxtdvd](https://github.com/bxtdvd) in [#26337](immich-app/immich#26337)
- fix: pin code reset modal by [@jrasm91](https://github.com/jrasm91) in [#26370](immich-app/immich#26370)
- fix(mobile): Reset "People" search filter chip if no selections are made by [@benjamonnguyen](https://github.com/benjamonnguyen) in [#26267](immich-app/immich#26267)
- fix(cli): delete sidecar files after upload if requested by [@timonrieger](https://github.com/timonrieger) in [#26353](immich-app/immich#26353)
- fix(web): album description auto height by [@michelheusschen](https://github.com/michelheusschen) in [#26420](immich-app/immich#26420)
- fix(web): prevent side panel overlap during transition by [@michelheusschen](https://github.com/michelheusschen) in [#26398](immich-app/immich#26398)
- fix(web): storage template example by [@mmomjian](https://github.com/mmomjian) in [#26424](immich-app/immich#26424)
- fix(web): prevent `state_unsafe_mutation` error on people page by [@michelheusschen](https://github.com/michelheusschen) in [#26438](immich-app/immich#26438)
- fix: missing deletedAt and isVisible columns on mobile by [@bwees](https://github.com/bwees) in [#26414](immich-app/immich#26414)
- fix(mobile): joinLocal on archived timeline by [@YarosMallorca](https://github.com/YarosMallorca) in [#26387](immich-app/immich#26387)
- fix: always show library scan button by [@etnoy](https://github.com/etnoy) in [#26428](immich-app/immich#26428)
- fix: retain asset when either asset is a favorite by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26473](immich-app/immich#26473)
- fix(web): prevent null folder tree on concurrent load by [@michelheusschen](https://github.com/michelheusschen) in [#26489](immich-app/immich#26489)
- fix(web): toast warning when trying to upload unsupported file type by [@meesfrensel](https://github.com/meesfrensel) in [#26492](immich-app/immich#26492)
- fix(mobile): birthday picker shows limited months when no date exists by [@socksprox](https://github.com/socksprox) in [#26407](immich-app/immich#26407)
- fix: consider DAR when extracting video dimension by [@alextran1502](https://github.com/alextran1502) in [#25293](immich-app/immich#25293)
- feat(mobile): Prevent premature image cache eviction when higher image loading is enabled by [@LeLunZ](https://github.com/LeLunZ) in [#26208](immich-app/immich#26208)
- refactor: star rating by [@meesfrensel](https://github.com/meesfrensel) in [#26357](immich-app/immich#26357)
- fix(mobile): set correct initial system-ui mode in asset viewer by [@goalie2002](https://github.com/goalie2002) in [#26500](immich-app/immich#26500)
- fix(server): Live Photo migration bug when album is in template by [@NikhilAlapati](https://github.com/NikhilAlapati) in [#25329](immich-app/immich#25329)
- fix(web): handle delete shortcut on shared link page as remove by [@meesfrensel](https://github.com/meesfrensel) in [#26552](immich-app/immich#26552)
- fix(mobile): prevent video player from being recreated unnecessarily by [@uhthomas](https://github.com/uhthomas) in [#26553](immich-app/immich#26553)
- fix(mobile): don't cut off top corners of app bar by [@uhthomas](https://github.com/uhthomas) in [#26550](immich-app/immich#26550)
- feat: update onnxruntime-openvino to 1.24.1 and intel drivers by [@savely-krasovsky](https://github.com/savely-krasovsky) in [#26565](immich-app/immich#26565)
- fix: hide download action for local/merged assets by [@YarosMallorca](https://github.com/YarosMallorca) in [#26461](immich-app/immich#26461)
- fix(web): top bar z index on search page by [@YarosMallorca](https://github.com/YarosMallorca) in [#26582](immich-app/immich#26582)
- fix(web): show shared link download button when logged in by [@Snowknight26](https://github.com/Snowknight26) in [#26629](immich-app/immich#26629)
- fix(mobile): asset viewer hero animation by [@uhthomas](https://github.com/uhthomas) in [#26545](immich-app/immich#26545)
- fix(web): timeline and asset viewer RTL support by [@meesfrensel](https://github.com/meesfrensel) in [#26513](immich-app/immich#26513)
- fix(server): clean up edited thumbnail when deleting asset by [@michelheusschen](https://github.com/michelheusschen) in [#26664](immich-app/immich#26664)
- fix: implement existing withStacked on searchAssetBuilder by [@babbitt](https://github.com/babbitt) in [#26607](immich-app/immich#26607)
- fix(mobile): video state by [@uhthomas](https://github.com/uhthomas) in [#26574](immich-app/immich#26574)
- fix(maintenance mode): wait for valid server config on restart by [@insertish](https://github.com/insertish) in [#26456](immich-app/immich#26456)
- fix(web): inconsistent asset nav bar state after visiting shared link by [@Snowknight26](https://github.com/Snowknight26) in [#26674](immich-app/immich#26674)
- fix(web): download toast showing wrong filename for motion assets by [@Snowknight26](https://github.com/Snowknight26) in [#26689](immich-app/immich#26689)
- fix(mobile): add safe area for asset details by [@uhthomas](https://github.com/uhthomas) in [#26675](immich-app/immich#26675)
- fix(web): combobox dropdown positioning in modals by [@michelheusschen](https://github.com/michelheusschen) in [#26707](immich-app/immich#26707)
- fix(web): video stealing focus when it plays again when looping by [@Snowknight26](https://github.com/Snowknight26) in [#26704](immich-app/immich#26704)
- fix(ml): batch size setting by [@mertalev](https://github.com/mertalev) in [#26524](immich-app/immich#26524)
- fix(server): clarify transcoding bitrate policy by [@meesfrensel](https://github.com/meesfrensel) in [#26711](immich-app/immich#26711)
- fix: playback style migration by [@alextran1502](https://github.com/alextran1502) in [#26718](immich-app/immich#26718)
- fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails by [@Snowknight26](https://github.com/Snowknight26) in [#26741](immich-app/immich#26741)
- fix(server): opus handling as accepted audio codec in transcode policy by [@skatsubo](https://github.com/skatsubo) in [#26736](immich-app/immich#26736)
- fix(web): refresh recent albums sidebar after album changes by [@michelheusschen](https://github.com/michelheusschen) in [#26757](immich-app/immich#26757)
- fix(web): show the correct cursor at crop bounds when editing an asset by [@Snowknight26](https://github.com/Snowknight26) in [#26748](immich-app/immich#26748)
- fix(web): recalculate face bounding boxes by [@cratoo](https://github.com/cratoo) in [#26737](immich-app/immich#26737)
- fix(web): context menu overflow by [@SevereCloud](https://github.com/SevereCloud) in [#26760](immich-app/immich#26760)
- fix(web): correct tag rounding in search options by [@michelheusschen](https://github.com/michelheusschen) in [#26814](immich-app/immich#26814)
- fix(web): prevent unrelated assets from appearing in tag view by [@michelheusschen](https://github.com/michelheusschen) in [#26816](immich-app/immich#26816)
- fix(mobile): use tabular figures in backup page by [@uhthomas](https://github.com/uhthomas) in [#26830](immich-app/immich#26830)
- fix(mobile): wrap backup error message text by [@uhthomas](https://github.com/uhthomas) in [#26834](immich-app/immich#26834)
- fix(server): use correct day ordering in timeline buckets by [@michelheusschen](https://github.com/michelheusschen) in [#26821](immich-app/immich#26821)
- fix(web): face selection box position resetting on browser resize by [@Snowknight26](https://github.com/Snowknight26) in [#26766](immich-app/immich#26766)
- fix: use correct original URL for 360 video panorama playback by [@luis15pt](https://github.com/luis15pt) in [#26831](immich-app/immich#26831)
- fix(web): disable drag and drop for internal items by [@michelheusschen](https://github.com/michelheusschen) in [#26897](immich-app/immich#26897)
- fix(web): keep header fixed on individual shared links by [@michelheusschen](https://github.com/michelheusschen) in [#26892](immich-app/immich#26892)
- fix: SMTP over TLS by [@nathanielhourt](https://github.com/nathanielhourt) in [#26893](immich-app/immich#26893)
- fix(web): copy yearMonth in MonthGroup to avoid shared object reference with asset in [#26890](immich-app/immich#26890)
- fix(mobile): use shared auth for background\_downloader by [@mertalev](https://github.com/mertalev) in [#26911](immich-app/immich#26911)
- fix(web): prevent search page error on missing album filter by [@michelheusschen](https://github.com/michelheusschen) in [#26948](immich-app/immich#26948)
- fix(server): sync files to disk by [@uhthomas](https://github.com/uhthomas) in [#26881](immich-app/immich#26881)
- fix(web): jump to primary stacked asset from memory by [@michelheusschen](https://github.com/michelheusschen) in [#26978](immich-app/immich#26978)
- fix(mobile): reflect asset deletions instantly by [@uhthomas](https://github.com/uhthomas) in [#26835](immich-app/immich#26835)
- fix: healthcheck by [@jrasm91](https://github.com/jrasm91) in [#26989](immich-app/immich#26989)
- fix(web): escape handling for tagging and adding a face in asset viewer by [@cratoo](https://github.com/cratoo) in [#26870](immich-app/immich#26870)
- fix: filter after searching by asset id by [@jrasm91](https://github.com/jrasm91) in [#26994](immich-app/immich#26994)
- fix: bounding box return type by [@jrasm91](https://github.com/jrasm91) in [#27014](immich-app/immich#27014)
- fix: validate accept header before returning html by [@jrasm91](https://github.com/jrasm91) in [#27019](immich-app/immich#27019)

##### 📚 Documentation

- chore(docs): Update help channel for developers by [@Mraedis](https://github.com/Mraedis) in [#26284](immich-app/immich#26284)
- feat(docs): Explain configuration file location for Docker Compose by [@keunes](https://github.com/keunes) in [#24989](immich-app/immich#24989)
- chore(docs): add quick-start guide for DevPod with docker by [@dhlavaty](https://github.com/dhlavaty) in [#26213](immich-app/immich#26213)
- feat(docs): Adding information about parameter c= by [@aviv926](https://github.com/aviv926) in [#26430](immich-app/immich#26430)
- feat: doc links by [@jrasm91](https://github.com/jrasm91) in [#26519](immich-app/immich#26519)
- fix(docs): add ocr to job flow diagram by [@niij](https://github.com/niij) in [#26505](immich-app/immich#26505)

##### 🌐 Translations

- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26118](immich-app/immich#26118)
- fix: clarify external domain setting is used for emails too by [@chrislongros](https://github.com/chrislongros) in [#26009](immich-app/immich#26009)
- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26167](immich-app/immich#26167)
- fix(web): error page i18n by [@meesfrensel](https://github.com/meesfrensel) in [#26517](immich-app/immich#26517)
- chore(web): clarify locale settings description by [@meesfrensel](https://github.com/meesfrensel) in [#25562](immich-app/immich#25562)
- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26192](immich-app/immich#26192)

##### New Contributors

- [@klenner1](https://github.com/klenner1) made their first contribution in [#26151](immich-app/immich#26151)
- [@bkchr](https://github.com/bkchr) made their first contribution in [#25088](immich-app/immich#25088)
- [@chrislongros](https://github.com/chrislongros) made their first contribution in [#26011](immich-app/immich#26011)
- [@agent-steven](https://github.com/agent-steven) made their first contribution in [#26091](immich-app/immich#26091)
- [@dhlavaty](https://github.com/dhlavaty) made their first contribution in [#26238](immich-app/immich#26238)
- [@Nacolis](https://github.com/Nacolis) made their first contribution in [#26063](immich-app/immich#26063)
- [@ewinnd](https://github.com/ewinnd) made their first contribution in [#26277](immich-app/immich#26277)
- [@dnozay](https://github.com/dnozay) made their first contribution in [#26261](immich-app/immich#26261)
- [@keunes](https://github.com/keunes) made their first contribution in [#24989](immich-app/immich#24989)
- [@Devansh-Jani](https://github.com/Devansh-Jani) made their first contribution in [#26042](immich-app/immich#26042)
- [@benjamonnguyen](https://github.com/benjamonnguyen) made their first contribution in [#26196](immich-app/immich#26196)
- [@fabio-garavini](https://github.com/fabio-garavini) made their first contribution in [#26252](immich-app/immich#26252)
- [@haoxi911](https://github.com/haoxi911) made their first contribution in [#25399](immich-app/immich#25399)
- [@thezeroalpha](https://github.com/thezeroalpha) made their first contribution in [#20286](immich-app/immich#20286)
- [@socksprox](https://github.com/socksprox) made their first contribution in [#26407](immich-app/immich#26407)
- [@kprinssu](https://github.com/kprinssu) made their first contribution in [#26178](immich-app/immich#26178)
- [@babbitt](https://github.com/babbitt) made their first contribution in [#26607](immich-app/immich#26607)
- [@niij](https://github.com/niij) made their first contribution in [#26505](immich-app/immich#26505)
- [@cratoo](https://github.com/cratoo) made their first contribution in [#26667](immich-app/immich#26667)
- [@M123-dev](https://github.com/M123-dev) made their first contribution in [#26630](immich-app/immich#26630)
- [@apejcic](https://github.com/apejcic) made their first contribution in [#22948](immich-app/immich#22948)
- [@SevereCloud](https://github.com/SevereCloud) made their first contribution in [#26760](immich-app/immich#26760)
- [@brendanngo](https://github.com/brendanngo) made their first contribution in [#26833](immich-app/immich#26833)
- [@luis15pt](https://github.com/luis15pt) made their first contribution in [#26831](immich-app/immich#26831)
- [@nathanielhourt](https://github.com/nathanielhourt) made their first contribution in [#26893](immich-app/immich#26893)
- [@Belnadifia](https://github.com/Belnadifia) made their first contribution in [#26717](immich-app/immich#26717)
- [@pressslav](https://github.com/pressslav) made their first contribution in [#26944](immich-app/immich#26944)

**Full Changelog**: <immich-app/immich@v2.5.6...v2.6.0>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants