Skip to content

feat: jxl browser support detection#25599

Merged
mertalev merged 1 commit intoimmich-app:mainfrom
nicosemp:nicosemp/feat-jxl-browser-support-detection
Feb 10, 2026
Merged

feat: jxl browser support detection#25599
mertalev merged 1 commit intoimmich-app:mainfrom
nicosemp:nicosemp/feat-jxl-browser-support-detection

Conversation

@nicosemp
Copy link
Contributor

Description

Besides Safari, other browsers support (or are adding support) to JPEG XL images. One example is Zen Browser, which inherited the flag from Firefox's upstream and enabled it by default.
This means that adding support for more and more browsers one by one can be problematic.

At the same time, there is an easy and fast way to detect whether a browser supports JPEG XL images. It involves creating an Image object, assigning a minimal image/jxl payload to its src and monitoring the async loading with an event listener.

Fixes # (issue)

How Has This Been Tested?

  • Run this test code from any browser's console:
const img = new Image();
img.addEventListener('load', () => alert('yes'));
img.addEventListener('error', () => alert('no'));
img.src = 'data:image/jxl;base64,/woIAAAMABKIAgC4AF3lEgA=';

It will show an alert with:

  • yes if supported, expected in these browsers as of 2026-01-28:
    • Safari
    • Zen Browser
    • Firefox, with the image.jxl.enabled set to true in about:config. Otherwise no
  • no if not supported

Screenshots (if appropriate)

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if applicable
  • I have no unrelated changes in the PR.
  • I have confirmed that any new dependencies are strictly necessary.
  • I have written tests for new code (if applicable)
    • I'm not sure how a test could check this change, but I'm happy to add any specific test if required
  • I have followed naming conventions/patterns in the surrounding code
  • All code in src/services/ uses repositories implementations for database calls, filesystem operations, etc.
  • All code in src/repositories/ is pretty basic/simple and does not have any immich specific logic (that belongs in src/services/)

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

No LLM.

Copy link
Member

@mertalev mertalev left a comment

Choose a reason for hiding this comment

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

I think the approach of testing support is reasonable, but the implementation doesn't seem particularly robust.

@nicosemp nicosemp force-pushed the nicosemp/feat-jxl-browser-support-detection branch from 9b8d9e0 to bbc513e Compare January 28, 2026 02:48
@nicosemp nicosemp force-pushed the nicosemp/feat-jxl-browser-support-detection branch from bbc513e to 8caa65f Compare January 28, 2026 03:31
Copy link
Collaborator

@meesfrensel meesfrensel left a comment

Choose a reason for hiding this comment

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

Calling this function twice or more would be a bug, right? Is it possible to prevent that? I don't know if it's valid TS syntax, but maybe something like (() => { /* logic */ })() could work. Otherwise, I think it makes sense to add an assertion at the start of the function that asserts !supportedImageMimeTypes.contains('image/jxl') to at least surface potential bugs asap.

@nicosemp
Copy link
Contributor Author

Calling this function twice or more would be a bug, right?

@meesfrensel if this whole file is executed multiple times for any reason, then supportedImageMimeTypes is also redefined at every execution, without image/jxl. The function runs after the first definition so I don't think it could ever be executed on an already populated Set.

I could add a guard anyway like so, but I feel it would be redundant:

// before the function
let isJxlCheckDone = false;

// inside the function, at the beginning
if (isJxlCheckDone ) return;
isJxlCheckDone = true;

@nicosemp nicosemp force-pushed the nicosemp/feat-jxl-browser-support-detection branch from 8caa65f to f1021e1 Compare January 28, 2026 17:58
@nicosemp
Copy link
Contributor Author

@mertalev do you need any other action from me?
I have the HEIC version almost ready, but I'll rebase after this is merged before creating the PR.

@mertalev
Copy link
Member

Nope! This is just waiting for us to be done with hot fixes for this release.

@mertalev mertalev merged commit 1ddb8f0 into immich-app:main Feb 10, 2026
48 checks passed
dadezzz pushed a commit to dadezzz/kubernetes that referenced this pull request Feb 11, 2026
This PR contains the following updates:

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

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Release Notes

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

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

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

##### v2.5.6

This patch release addresses the following issues

- Fixed an issue where thumbnail generation runs every night when `full-size image generation` option is enabled.
- Fixed an issue where iOS is slow to start in some cases.
- Fixed an issue where Android device cannot delete asset using Free Up Space feature if it has more than a few thousand assets

<!-- Release notes generated using configuration in .github/release.yml at v2.5.6 -->

##### 🐛 Bug fixes

- fix: enhance album sorting functionality with order handling by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;24816](immich-app/immich#24816)
- fix: add missing translations for image editor by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;25957](immich-app/immich#25957)
- fix: image and video download complete notification shows "file\_name" by [@&#8203;romoisverycool](https://github.com/romoisverycool) in [#&#8203;25975](immich-app/immich#25975)
- fix: user profile refetched each time on opening app dialog by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;25992](immich-app/immich#25992)
- fix: improve albums page load time on firefox by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26025](immich-app/immich#26025)
- fix: reduce queue graph jitter and include paused count by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26023](immich-app/immich#26023)
- fix(web): toast fixed location by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;25966](immich-app/immich#25966)
- fix: scroll jump when opening show & hide people by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;25932](immich-app/immich#25932)
- fix(web): display storage unit next to value instead of absolute positioning in admin user page by [@&#8203;K0lin](https://github.com/K0lin) in [#&#8203;25985](immich-app/immich#25985)
- fix: iOS slow start by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;26043](immich-app/immich#26043)
- fix: profile dialog auto dismiss after opening on iPad by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;26046](immich-app/immich#26046)
- fix(web): prevent context menu from overflowing viewport by [@&#8203;ttpss930141011](https://github.com/ttpss930141011) in [#&#8203;26041](immich-app/immich#26041)
- fix: slideshow setting dropdown overflow by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26066](immich-app/immich#26066)
- fix: free up space using small batch size to reliably work on Android by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;26047](immich-app/immich#26047)
- fix(web): removing a person in an asset, doesn't remove the asset in … by [@&#8203;dolfje](https://github.com/dolfje) in [#&#8203;26068](immich-app/immich#26068)
- fix(mobile): handle image stream completion when no image is emitted by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;25984](immich-app/immich#25984)
- fix: evict image from cache on error during image loading by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;26078](immich-app/immich#26078)
- fix(server): thumbnail queueing by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;26077](immich-app/immich#26077)
- fix: create face exif orientation handling by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26108](immich-app/immich#26108)
- fix(web): refresh text by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26071](immich-app/immich#26071)
- fix: correctly cancel select all assets by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26067](immich-app/immich#26067)
- fix: person thumbnail generation on edited assets by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26112](immich-app/immich#26112)
- fix: local date time group fall back by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;26110](immich-app/immich#26110)

##### 📚 Documentation

- feat(docs): version policy by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;25979](immich-app/immich#25979)
- feat(deployment): rootless compose file  by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;25931](immich-app/immich#25931)
- docs: update ml-hardware-acceleration.md by [@&#8203;cmrtdev](https://github.com/cmrtdev) in [#&#8203;25755](immich-app/immich#25755)

##### 🌐 Translations

- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;25947](immich-app/immich#25947)

##### New Contributors

- [@&#8203;ttpss930141011](https://github.com/ttpss930141011) made their first contribution in [#&#8203;26041](immich-app/immich#26041)
- [@&#8203;dolfje](https://github.com/dolfje) made their first contribution in [#&#8203;26068](immich-app/immich#26068)
- [@&#8203;cmrtdev](https://github.com/cmrtdev) made their first contribution in [#&#8203;25755](immich-app/immich#25755)
- [@&#8203;nicosemp](https://github.com/nicosemp) made their first contribution in [#&#8203;25599](immich-app/immich#25599)

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

</details>

---

### Configuration

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

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

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

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

---

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

---

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

Co-authored-by: Renovate Bot <renovate@zarantonello.dev>
Co-committed-by: Renovate Bot <renovate@zarantonello.dev>
kiloomar pushed a commit to kiloomar/immich that referenced this pull request Feb 13, 2026
renovate bot added a commit to sdwilsh/ansible-playbooks that referenced this pull request Feb 19, 2026
##### [\`v2.5.6\`](https://github.com/immich-app/immich/releases/tag/v2.5.6)

##### v2.5.6

This patch release addresses the following issues

- Fixed an issue where thumbnail generation runs every night when `full-size image generation` option is enabled.
- Fixed an issue where iOS is slow to start in some cases.
- Fixed an issue where Android device cannot delete asset using Free Up Space feature if it has more than a few thousand assets

<!-- Release notes generated using configuration in .github/release.yml at v2.5.6 -->

##### 🐛 Bug fixes

- fix: enhance album sorting functionality with order handling by [@LeLunZ](https://github.com/LeLunZ) in [#24816](immich-app/immich#24816)
- fix: add missing translations for image editor by [@michelheusschen](https://github.com/michelheusschen) in [#25957](immich-app/immich#25957)
- fix: image and video download complete notification shows "file\_name" by [@romoisverycool](https://github.com/romoisverycool) in [#25975](immich-app/immich#25975)
- fix: user profile refetched each time on opening app dialog by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#25992](immich-app/immich#25992)
- fix: improve albums page load time on firefox by [@michelheusschen](https://github.com/michelheusschen) in [#26025](immich-app/immich#26025)
- fix: reduce queue graph jitter and include paused count by [@michelheusschen](https://github.com/michelheusschen) in [#26023](immich-app/immich#26023)
- fix(web): toast fixed location by [@YarosMallorca](https://github.com/YarosMallorca) in [#25966](immich-app/immich#25966)
- fix: scroll jump when opening show & hide people by [@michelheusschen](https://github.com/michelheusschen) in [#25932](immich-app/immich#25932)
- fix(web): display storage unit next to value instead of absolute positioning in admin user page by [@K0lin](https://github.com/K0lin) in [#25985](immich-app/immich#25985)
- fix: iOS slow start by [@alextran1502](https://github.com/alextran1502) in [#26043](immich-app/immich#26043)
- fix: profile dialog auto dismiss after opening on iPad by [@alextran1502](https://github.com/alextran1502) in [#26046](immich-app/immich#26046)
- fix(web): prevent context menu from overflowing viewport by [@ttpss930141011](https://github.com/ttpss930141011) in [#26041](immich-app/immich#26041)
- fix: slideshow setting dropdown overflow by [@michelheusschen](https://github.com/michelheusschen) in [#26066](immich-app/immich#26066)
- fix: free up space using small batch size to reliably work on Android by [@alextran1502](https://github.com/alextran1502) in [#26047](immich-app/immich#26047)
- fix(web): removing a person in an asset, doesn't remove the asset in … by [@dolfje](https://github.com/dolfje) in [#26068](immich-app/immich#26068)
- fix(mobile): handle image stream completion when no image is emitted by [@LeLunZ](https://github.com/LeLunZ) in [#25984](immich-app/immich#25984)
- fix: evict image from cache on error during image loading by [@LeLunZ](https://github.com/LeLunZ) in [#26078](immich-app/immich#26078)
- fix(server): thumbnail queueing by [@mertalev](https://github.com/mertalev) in [#26077](immich-app/immich#26077)
- fix: create face exif orientation handling by [@bwees](https://github.com/bwees) in [#26108](immich-app/immich#26108)
- fix(web): refresh text by [@jrasm91](https://github.com/jrasm91) in [#26071](immich-app/immich#26071)
- fix: correctly cancel select all assets by [@michelheusschen](https://github.com/michelheusschen) in [#26067](immich-app/immich#26067)
- fix: person thumbnail generation on edited assets by [@bwees](https://github.com/bwees) in [#26112](immich-app/immich#26112)
- fix: local date time group fall back by [@alextran1502](https://github.com/alextran1502) in [#26110](immich-app/immich#26110)

##### 📚 Documentation

- feat(docs): version policy by [@mmomjian](https://github.com/mmomjian) in [#25979](immich-app/immich#25979)
- feat(deployment): rootless compose file  by [@mmomjian](https://github.com/mmomjian) in [#25931](immich-app/immich#25931)
- docs: update ml-hardware-acceleration.md by [@cmrtdev](https://github.com/cmrtdev) in [#25755](immich-app/immich#25755)

##### 🌐 Translations

- chore(web): update translations by [@weblate](https://github.com/weblate) in [#25947](immich-app/immich#25947)

##### New Contributors

- [@ttpss930141011](https://github.com/ttpss930141011) made their first contribution in [#26041](immich-app/immich#26041)
- [@dolfje](https://github.com/dolfje) made their first contribution in [#26068](immich-app/immich#26068)
- [@cmrtdev](https://github.com/cmrtdev) made their first contribution in [#25755](immich-app/immich#25755)
- [@nicosemp](https://github.com/nicosemp) made their first contribution in [#25599](immich-app/immich#25599)

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

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

##### v2.5.5

*`v2.5.4` was in the way of getting out, and we got another annoyance bug fixed, so we rolled it into `v2.5.5`*

Happy Friday! This release addresses more bugs from the `v2.5.0` release. Enjoy!

- Fixed an issue where changing the timezone on the web changes the time instead of the timezone
- Fixed an issue where background task on iOS don't get triggered as often
- Fixes some issues regarding the usage of self-signed certificate and mLTS on the mobile app

##### 🐛 Bug fixes

- fix(mobile): cancel share download when dialog is dismissed by [@cmdPromptCritical](https://github.com/cmdPromptCritical) in [#25466](immich-app/immich#25466)
- fix: album dto docs by [@jrasm91](https://github.com/jrasm91) in [#25873](immich-app/immich#25873)
- fix: null validation by [@jrasm91](https://github.com/jrasm91) in [#25891](immich-app/immich#25891)
- fix(server): deleting stacked assets by [@jrasm91](https://github.com/jrasm91) in [#25874](immich-app/immich#25874)
- fix: close tag modal after tagging assets by [@michelheusschen](https://github.com/michelheusschen) in [#25884](immich-app/immich#25884)
- fix: correctly sync shared link download with metadata toggle by [@michelheusschen](https://github.com/michelheusschen) in [#25885](immich-app/immich#25885)
- fix: date time picker text color in dark mode by [@alextran1502](https://github.com/alextran1502) in [#25883](immich-app/immich#25883)
- fix: allow null tagIds in search dto by [@michelheusschen](https://github.com/michelheusschen) in [#25920](immich-app/immich#25920)
- fix: improve asset editor exit handling by [@michelheusschen](https://github.com/michelheusschen) in [#25917](immich-app/immich#25917)
- fix: make switch labels properly clickable by [@michelheusschen](https://github.com/michelheusschen) in [#25898](immich-app/immich#25898)
- fix: ensure theme stays in sync with [@immich/ui](https://github.com/immich/ui) by [@michelheusschen](https://github.com/michelheusschen) in [#25922](immich-app/immich#25922)
- fix: preserve hidden people state across pagination by [@michelheusschen](https://github.com/michelheusschen) in [#25886](immich-app/immich#25886)
- fix: file name search label by [@alextran1502](https://github.com/alextran1502) in [#25916](immich-app/immich#25916)
- fix(mobile): mtls on native clients by [@mertalev](https://github.com/mertalev) in [#25802](immich-app/immich#25802)
- fix: time zone upserts by [@danieldietzler](https://github.com/danieldietzler) in [#25889](immich-app/immich#25889)
- fix(web): Ensure profile picture is cropped to 1:1 ratio by [@aditya-ai-architect](https://github.com/aditya-ai-architect) in [#25892](immich-app/immich#25892)
- fix(mobile): reset asset index on timeline refresh by [@uhthomas](https://github.com/uhthomas) in [#25729](immich-app/immich#25729)
- fix: timezone in timeline bucketing by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#25894](immich-app/immich#25894)
- fix(mobile): Update preview and PageController position when the asset count decreases while the last item is selected by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#25563](immich-app/immich#25563)
- fix(server): use provided database username for restore & ensure name is not mangled by [@insertish](https://github.com/insertish) in [#25679](immich-app/immich#25679)
- fix: image download complete notification shows an extra {file\_name} template tag by [@romoisverycool](https://github.com/romoisverycool) in [#25936](immich-app/immich#25936)
- fix: face and edit handling by [@bwees](https://github.com/bwees) in [#25738](immich-app/immich#25738)
- fix: queue assets missing fullsize files for thumbnail regeneration by [@midzelis](https://github.com/midzelis) in [#25794](immich-app/immich#25794)
- fix: dedupe version announcement modal by [@jrasm91](https://github.com/jrasm91) in [#25946](immich-app/immich#25946)
- fix(cli): suppress startup messages for immich-admin by [@VahantSharma](https://github.com/VahantSharma) in [#25928](immich-app/immich#25928)

##### 📚 Documentation

- docs: update manual backup/restore to match the automatic process by [@insertish](https://github.com/insertish) in [#25924](immich-app/immich#25924)
- fix(docs): add missing --json-output arg to CLI example by [@Xiol](https://github.com/Xiol) in [#25870](immich-app/immich#25870)
- docs: remove writeTimeout on traefik example by [@kaysond](https://github.com/kaysond) in [#25837](immich-app/immich#25837)

##### 🌐 Translations

- chore(web): update translations by [@weblate](https://github.com/weblate) in [#25585](immich-app/immich#25585)

##### New Contributors

- [@aditya-ai-architect](https://github.com/aditya-ai-architect) made their first contribution in [#25892](immich-app/immich#25892)
- [@VahantSharma](https://github.com/VahantSharma) made their first contribution in [#25927](immich-app/immich#25927)
- [@Xiol](https://github.com/Xiol) made their first contribution in [#25870](immich-app/immich#25870)
- [@cmdPromptCritical](https://github.com/cmdPromptCritical) made their first contribution in [#25466](immich-app/immich#25466)
- [@romoisverycool](https://github.com/romoisverycool) made their first contribution in [#25936](immich-app/immich#25936)
- [@didekoning](https://github.com/didekoning) made their first contribution in [#25937](immich-app/immich#25937)

**Full Changelog**: <immich-app/immich@v2.5.3...v2.5.5>

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

##### What's Changed

##### 🐛 Bug fixes

- chore: remove random code snippet by [@jrasm91](https://github.com/jrasm91) in [#25677](immich-app/immich#25677)
- fix: reset and unsaved change states in editor by [@bwees](https://github.com/bwees) in [#25588](immich-app/immich#25588)
- fix: no notification if release check is disabled by [@jrasm91](https://github.com/jrasm91) in [#25688](immich-app/immich#25688)
- fix(mobile): hide latest version if disabled by [@uhthomas](https://github.com/uhthomas) in [#25691](immich-app/immich#25691)
- fix(web): enable asset viewer navigation across memory boundaries by [@midzelis](https://github.com/midzelis) in [#25741](immich-app/immich#25741)
- fix: upload progress bar flickering by [@alextran1502](https://github.com/alextran1502) in [#25829](immich-app/immich#25829)
- fix: prevent stale values in edit user form after save by [@michelheusschen](https://github.com/michelheusschen) in [#25859](immich-app/immich#25859)
- fix: prevent album page get rebuilt when resuming app by [@alextran1502](https://github.com/alextran1502) in [#25862](immich-app/immich#25862)
- fix: prevent backspace from accidentally triggering delete modals by [@michelheusschen](https://github.com/michelheusschen) in [#25858](immich-app/immich#25858)
- fix: metadata extraction race condition by [@danieldietzler](https://github.com/danieldietzler) in [#25866](immich-app/immich#25866)
- fix: reset zoom when navigating between assets by [@michelheusschen](https://github.com/michelheusschen) in [#25863](immich-app/immich#25863)

##### 📚 Documentation

- docs(openapi): Add descriptions to OpenAPI specification by [@timonrieger](https://github.com/timonrieger) in [#25185](immich-app/immich#25185)
- fix(docs): clarify supported vector version  by [@mmomjian](https://github.com/mmomjian) in [#25753](immich-app/immich#25753)

**Full Changelog**: <immich-app/immich@v2.5.2...v2.5.3>
renovate bot added a commit to sdwilsh/ansible-playbooks that referenced this pull request Feb 19, 2026
##### [\`v2.5.6\`](https://github.com/immich-app/immich/releases/tag/v2.5.6)

##### v2.5.6

This patch release addresses the following issues

- Fixed an issue where thumbnail generation runs every night when `full-size image generation` option is enabled.
- Fixed an issue where iOS is slow to start in some cases.
- Fixed an issue where Android device cannot delete asset using Free Up Space feature if it has more than a few thousand assets

<!-- Release notes generated using configuration in .github/release.yml at v2.5.6 -->

##### 🐛 Bug fixes

- fix: enhance album sorting functionality with order handling by [@LeLunZ](https://github.com/LeLunZ) in [#24816](immich-app/immich#24816)
- fix: add missing translations for image editor by [@michelheusschen](https://github.com/michelheusschen) in [#25957](immich-app/immich#25957)
- fix: image and video download complete notification shows "file\_name" by [@romoisverycool](https://github.com/romoisverycool) in [#25975](immich-app/immich#25975)
- fix: user profile refetched each time on opening app dialog by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#25992](immich-app/immich#25992)
- fix: improve albums page load time on firefox by [@michelheusschen](https://github.com/michelheusschen) in [#26025](immich-app/immich#26025)
- fix: reduce queue graph jitter and include paused count by [@michelheusschen](https://github.com/michelheusschen) in [#26023](immich-app/immich#26023)
- fix(web): toast fixed location by [@YarosMallorca](https://github.com/YarosMallorca) in [#25966](immich-app/immich#25966)
- fix: scroll jump when opening show & hide people by [@michelheusschen](https://github.com/michelheusschen) in [#25932](immich-app/immich#25932)
- fix(web): display storage unit next to value instead of absolute positioning in admin user page by [@K0lin](https://github.com/K0lin) in [#25985](immich-app/immich#25985)
- fix: iOS slow start by [@alextran1502](https://github.com/alextran1502) in [#26043](immich-app/immich#26043)
- fix: profile dialog auto dismiss after opening on iPad by [@alextran1502](https://github.com/alextran1502) in [#26046](immich-app/immich#26046)
- fix(web): prevent context menu from overflowing viewport by [@ttpss930141011](https://github.com/ttpss930141011) in [#26041](immich-app/immich#26041)
- fix: slideshow setting dropdown overflow by [@michelheusschen](https://github.com/michelheusschen) in [#26066](immich-app/immich#26066)
- fix: free up space using small batch size to reliably work on Android by [@alextran1502](https://github.com/alextran1502) in [#26047](immich-app/immich#26047)
- fix(web): removing a person in an asset, doesn't remove the asset in … by [@dolfje](https://github.com/dolfje) in [#26068](immich-app/immich#26068)
- fix(mobile): handle image stream completion when no image is emitted by [@LeLunZ](https://github.com/LeLunZ) in [#25984](immich-app/immich#25984)
- fix: evict image from cache on error during image loading by [@LeLunZ](https://github.com/LeLunZ) in [#26078](immich-app/immich#26078)
- fix(server): thumbnail queueing by [@mertalev](https://github.com/mertalev) in [#26077](immich-app/immich#26077)
- fix: create face exif orientation handling by [@bwees](https://github.com/bwees) in [#26108](immich-app/immich#26108)
- fix(web): refresh text by [@jrasm91](https://github.com/jrasm91) in [#26071](immich-app/immich#26071)
- fix: correctly cancel select all assets by [@michelheusschen](https://github.com/michelheusschen) in [#26067](immich-app/immich#26067)
- fix: person thumbnail generation on edited assets by [@bwees](https://github.com/bwees) in [#26112](immich-app/immich#26112)
- fix: local date time group fall back by [@alextran1502](https://github.com/alextran1502) in [#26110](immich-app/immich#26110)

##### 📚 Documentation

- feat(docs): version policy by [@mmomjian](https://github.com/mmomjian) in [#25979](immich-app/immich#25979)
- feat(deployment): rootless compose file  by [@mmomjian](https://github.com/mmomjian) in [#25931](immich-app/immich#25931)
- docs: update ml-hardware-acceleration.md by [@cmrtdev](https://github.com/cmrtdev) in [#25755](immich-app/immich#25755)

##### 🌐 Translations

- chore(web): update translations by [@weblate](https://github.com/weblate) in [#25947](immich-app/immich#25947)

##### New Contributors

- [@ttpss930141011](https://github.com/ttpss930141011) made their first contribution in [#26041](immich-app/immich#26041)
- [@dolfje](https://github.com/dolfje) made their first contribution in [#26068](immich-app/immich#26068)
- [@cmrtdev](https://github.com/cmrtdev) made their first contribution in [#25755](immich-app/immich#25755)
- [@nicosemp](https://github.com/nicosemp) made their first contribution in [#25599](immich-app/immich#25599)

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

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

##### v2.5.5

*`v2.5.4` was in the way of getting out, and we got another annoyance bug fixed, so we rolled it into `v2.5.5`*

Happy Friday! This release addresses more bugs from the `v2.5.0` release. Enjoy!

- Fixed an issue where changing the timezone on the web changes the time instead of the timezone
- Fixed an issue where background task on iOS don't get triggered as often
- Fixes some issues regarding the usage of self-signed certificate and mLTS on the mobile app

##### 🐛 Bug fixes

- fix(mobile): cancel share download when dialog is dismissed by [@cmdPromptCritical](https://github.com/cmdPromptCritical) in [#25466](immich-app/immich#25466)
- fix: album dto docs by [@jrasm91](https://github.com/jrasm91) in [#25873](immich-app/immich#25873)
- fix: null validation by [@jrasm91](https://github.com/jrasm91) in [#25891](immich-app/immich#25891)
- fix(server): deleting stacked assets by [@jrasm91](https://github.com/jrasm91) in [#25874](immich-app/immich#25874)
- fix: close tag modal after tagging assets by [@michelheusschen](https://github.com/michelheusschen) in [#25884](immich-app/immich#25884)
- fix: correctly sync shared link download with metadata toggle by [@michelheusschen](https://github.com/michelheusschen) in [#25885](immich-app/immich#25885)
- fix: date time picker text color in dark mode by [@alextran1502](https://github.com/alextran1502) in [#25883](immich-app/immich#25883)
- fix: allow null tagIds in search dto by [@michelheusschen](https://github.com/michelheusschen) in [#25920](immich-app/immich#25920)
- fix: improve asset editor exit handling by [@michelheusschen](https://github.com/michelheusschen) in [#25917](immich-app/immich#25917)
- fix: make switch labels properly clickable by [@michelheusschen](https://github.com/michelheusschen) in [#25898](immich-app/immich#25898)
- fix: ensure theme stays in sync with [@immich/ui](https://github.com/immich/ui) by [@michelheusschen](https://github.com/michelheusschen) in [#25922](immich-app/immich#25922)
- fix: preserve hidden people state across pagination by [@michelheusschen](https://github.com/michelheusschen) in [#25886](immich-app/immich#25886)
- fix: file name search label by [@alextran1502](https://github.com/alextran1502) in [#25916](immich-app/immich#25916)
- fix(mobile): mtls on native clients by [@mertalev](https://github.com/mertalev) in [#25802](immich-app/immich#25802)
- fix: time zone upserts by [@danieldietzler](https://github.com/danieldietzler) in [#25889](immich-app/immich#25889)
- fix(web): Ensure profile picture is cropped to 1:1 ratio by [@aditya-ai-architect](https://github.com/aditya-ai-architect) in [#25892](immich-app/immich#25892)
- fix(mobile): reset asset index on timeline refresh by [@uhthomas](https://github.com/uhthomas) in [#25729](immich-app/immich#25729)
- fix: timezone in timeline bucketing by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#25894](immich-app/immich#25894)
- fix(mobile): Update preview and PageController position when the asset count decreases while the last item is selected by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#25563](immich-app/immich#25563)
- fix(server): use provided database username for restore & ensure name is not mangled by [@insertish](https://github.com/insertish) in [#25679](immich-app/immich#25679)
- fix: image download complete notification shows an extra {file\_name} template tag by [@romoisverycool](https://github.com/romoisverycool) in [#25936](immich-app/immich#25936)
- fix: face and edit handling by [@bwees](https://github.com/bwees) in [#25738](immich-app/immich#25738)
- fix: queue assets missing fullsize files for thumbnail regeneration by [@midzelis](https://github.com/midzelis) in [#25794](immich-app/immich#25794)
- fix: dedupe version announcement modal by [@jrasm91](https://github.com/jrasm91) in [#25946](immich-app/immich#25946)
- fix(cli): suppress startup messages for immich-admin by [@VahantSharma](https://github.com/VahantSharma) in [#25928](immich-app/immich#25928)

##### 📚 Documentation

- docs: update manual backup/restore to match the automatic process by [@insertish](https://github.com/insertish) in [#25924](immich-app/immich#25924)
- fix(docs): add missing --json-output arg to CLI example by [@Xiol](https://github.com/Xiol) in [#25870](immich-app/immich#25870)
- docs: remove writeTimeout on traefik example by [@kaysond](https://github.com/kaysond) in [#25837](immich-app/immich#25837)

##### 🌐 Translations

- chore(web): update translations by [@weblate](https://github.com/weblate) in [#25585](immich-app/immich#25585)

##### New Contributors

- [@aditya-ai-architect](https://github.com/aditya-ai-architect) made their first contribution in [#25892](immich-app/immich#25892)
- [@VahantSharma](https://github.com/VahantSharma) made their first contribution in [#25927](immich-app/immich#25927)
- [@Xiol](https://github.com/Xiol) made their first contribution in [#25870](immich-app/immich#25870)
- [@cmdPromptCritical](https://github.com/cmdPromptCritical) made their first contribution in [#25466](immich-app/immich#25466)
- [@romoisverycool](https://github.com/romoisverycool) made their first contribution in [#25936](immich-app/immich#25936)
- [@didekoning](https://github.com/didekoning) made their first contribution in [#25937](immich-app/immich#25937)

**Full Changelog**: <immich-app/immich@v2.5.3...v2.5.5>

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

##### What's Changed

##### 🐛 Bug fixes

- chore: remove random code snippet by [@jrasm91](https://github.com/jrasm91) in [#25677](immich-app/immich#25677)
- fix: reset and unsaved change states in editor by [@bwees](https://github.com/bwees) in [#25588](immich-app/immich#25588)
- fix: no notification if release check is disabled by [@jrasm91](https://github.com/jrasm91) in [#25688](immich-app/immich#25688)
- fix(mobile): hide latest version if disabled by [@uhthomas](https://github.com/uhthomas) in [#25691](immich-app/immich#25691)
- fix(web): enable asset viewer navigation across memory boundaries by [@midzelis](https://github.com/midzelis) in [#25741](immich-app/immich#25741)
- fix: upload progress bar flickering by [@alextran1502](https://github.com/alextran1502) in [#25829](immich-app/immich#25829)
- fix: prevent stale values in edit user form after save by [@michelheusschen](https://github.com/michelheusschen) in [#25859](immich-app/immich#25859)
- fix: prevent album page get rebuilt when resuming app by [@alextran1502](https://github.com/alextran1502) in [#25862](immich-app/immich#25862)
- fix: prevent backspace from accidentally triggering delete modals by [@michelheusschen](https://github.com/michelheusschen) in [#25858](immich-app/immich#25858)
- fix: metadata extraction race condition by [@danieldietzler](https://github.com/danieldietzler) in [#25866](immich-app/immich#25866)
- fix: reset zoom when navigating between assets by [@michelheusschen](https://github.com/michelheusschen) in [#25863](immich-app/immich#25863)

##### 📚 Documentation

- docs(openapi): Add descriptions to OpenAPI specification by [@timonrieger](https://github.com/timonrieger) in [#25185](immich-app/immich#25185)
- fix(docs): clarify supported vector version  by [@mmomjian](https://github.com/mmomjian) in [#25753](immich-app/immich#25753)

**Full Changelog**: <immich-app/immich@v2.5.2...v2.5.3>

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
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.

6 participants