Skip to content

fix(deps): update typescript-projects#26812

Merged
danieldietzler merged 1 commit intomainfrom
renovate/typescript-projects
Mar 11, 2026
Merged

fix(deps): update typescript-projects#26812
danieldietzler merged 1 commit intomainfrom
renovate/typescript-projects

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Mar 10, 2026

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@nestjs/common (source) 11.1.1411.1.16 age confidence
@nestjs/core (source) 11.1.1411.1.16 age confidence
@nestjs/platform-express (source) 11.1.1411.1.16 age confidence
@nestjs/platform-socket.io (source) 11.1.1411.1.16 age confidence
@nestjs/testing (source) 11.1.1411.1.16 age confidence
@nestjs/websockets (source) 11.1.1411.1.16 age confidence
@opentelemetry/context-async-hooks (source) 2.5.12.6.0 age confidence
@opentelemetry/exporter-prometheus (source) ^0.212.0^0.213.0 age confidence
@opentelemetry/instrumentation-http (source) ^0.212.0^0.213.0 age confidence
@opentelemetry/instrumentation-ioredis (source) ^0.60.0^0.61.0 age confidence
@opentelemetry/instrumentation-nestjs-core (source) ^0.58.0^0.59.0 age confidence
@opentelemetry/instrumentation-pg (source) ^0.64.0^0.65.0 age confidence
@opentelemetry/resources (source) 2.5.12.6.0 age confidence
@opentelemetry/sdk-metrics (source) 2.5.12.6.0 age confidence
@opentelemetry/sdk-node (source) ^0.212.0^0.213.0 age confidence
@sveltejs/kit (source) 2.53.32.53.4 age confidence
@swc/core (source) 1.15.131.15.18 age confidence
@types/multer (source) 2.0.02.1.0 age confidence
@types/pg (source) 8.16.08.18.0 age confidence
@types/sanitize-html (source) 2.16.02.16.1 age confidence
@vitest/coverage-v8 (source) 4.0.144.0.18 age confidence
bullmq (source) 5.70.15.70.4 age confidence
class-validator ^0.14.0^0.15.0 age confidence
globals 17.3.017.4.0 age confidence
happy-dom 20.7.020.8.3 age confidence
ioredis 5.9.35.10.0 age confidence
pg (source) 8.19.08.20.0 age confidence
pg-connection-string (source) 2.11.02.12.0 age confidence
prettier-plugin-svelte 3.5.03.5.1 age confidence
rollup-plugin-visualizer 6.0.56.0.11 age confidence
svelte (source) 5.53.55.53.7 age confidence
svelte-check 4.4.34.4.4 age confidence
svelte-eslint-parser 1.5.11.6.0 age confidence
vitest (source) 4.0.144.0.18 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

nestjs/nest (@​nestjs/common)

v11.1.16

Compare Source

v11.1.16 (2026-03-05)

Bug fixes
  • microservices
Dependencies
Committers: 2

v11.1.15

Compare Source

What's Changed

New Contributors

Full Changelog: nestjs/nest@v11.1.14...v11.1.15

open-telemetry/opentelemetry-js (@​opentelemetry/context-async-hooks)

v2.6.0

Compare Source

💥 Breaking Changes
  • fix(resources): update OTEL_RESOURCE_ATTRIBUTES parsing to match spec changes (open-telemetry/opentelemetry-specification#4856) #​6261 @​jacksonweber
    • Important: This fix is included in the "breaking changes" section because it can be breaking for some edge case usage of OTEL_RESOURCE_ATTRIBUTES:
      • export OTEL_RESOURCE_ATTRIBUTES=foo=bar,spam will now be fully ignored, because the spam entry is invalid (missing =). Per spec, any parsing error results in ignoring the entire environment variable.
      • export OTEL_RESOURCE_ATTRIBUTES='wat=" spaces "' will now result in {"wat": "\" spaces \""} with the double-quotes included in the value. Before this change the implementation included brittle double-quoting to allow leading and trailing whitespace in the value. To support leading or trailing whitespace now, you must percent-encode the whitespace. Internal whitespace still works without encoding, e.g. export OTEL_RESOURCE_ATTRIBUTES='green=eggs and ham'.
🚀 Features
🐛 Bug Fixes
open-telemetry/opentelemetry-js-contrib (@​opentelemetry/instrumentation-ioredis)

v0.61.0

Compare Source

Features
Dependencies
open-telemetry/opentelemetry-js-contrib (@​opentelemetry/instrumentation-nestjs-core)

v0.59.0

Compare Source

Features
open-telemetry/opentelemetry-js-contrib (@​opentelemetry/instrumentation-pg)

v0.65.0

Compare Source

Features
Dependencies
sveltejs/kit (@​sveltejs/kit)

v2.53.4

Compare Source

Patch Changes
  • fix: avoid Vite warning about unknown codeSplitting option (#​15451)
swc-project/swc (@​swc/core)

v1.15.18

Compare Source

Bug Fixes
Documentation
Features
Ci

v1.15.17

Compare Source

Documentation
Features
vitest-dev/vitest (@​vitest/coverage-v8)

v4.0.18

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.0.17

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.0.16

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.15

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub
taskforcesh/bullmq (bullmq)

v5.70.4

Compare Source

Bug Fixes

v5.70.3

Compare Source

Bug Fixes
  • otel: use job timestamps for process span attributes (#​3832) (450253c)

v5.70.2

Compare Source

Bug Fixes
  • auto-remove: remove orphaned jobs when auto-remove is enabled (#​3853) (504b536)
typestack/class-validator (class-validator)

v0.15.1

Compare Source

BREAKING CHANGES
  • Added options argument to IsIBAN validator (#​2618), which breaks any existing usage of this decorator that pass an argument to the decorator, e.g. @IsIBAN({forbidUnknownValues: false})
Fixed
  • Updated lockfile to patch vulnerabilities (#​2669)
  • Fixed a small grammatical error in the docs (#​2596)
Added
sindresorhus/globals (globals)

v17.4.0

Compare Source

capricorn86/happy-dom (happy-dom)

v20.8.3

Compare Source

👷‍♂️ Patch fixes

v20.8.2

Compare Source

👷‍♂️ Patch fixes
  • Resets Event.cancelBubble and Event.defaultPrevented when calling Event.initEvent() - By @​capricorn86 in task #​2090

v20.8.1

Compare Source

👷‍♂️ Patch fixes

v20.8.0

Compare Source

v20.7.2

Compare Source

👷‍♂️ Patch fixes
  • Properly decode CSS escape sequences in attribute selector values - By @​silverwind

v20.7.1

Compare Source

luin/ioredis (ioredis)

v5.10.0

Compare Source

Features

5.9.3 (2026-02-12)

Bug Fixes
  • autopipelining to route writes to masters with scaleReads (#​2072) (8adb1ae)
  • fix issue with moved command for replicas (#​2064) (de4eed4)
  • types: optional properties on RedisOptions allow explicit undefined (#​2066) (0a1a898)

5.9.3 (2026-02-12)

Bug Fixes
  • autopipelining to route writes to masters with scaleReads (#​2072) (8adb1ae)
  • fix issue with moved command for replicas (#​2064) (de4eed4)
  • types: optional properties on RedisOptions allow explicit undefined (#​2066) (0a1a898)

5.9.2 (2026-01-15)

Bug Fixes
Reverts

5.9.1 (2026-01-08)

Bug Fixes
brianc/node-postgres (pg)

v8.20.0

Compare Source

  • Add onConnect callback to pg.Pool constructor options allowing for async initialization of newly created & connected pooled clients.
brianc/node-postgres (pg-connection-string)

v2.12.0

Compare Source

sveltejs/prettier-plugin-svelte (prettier-plugin-svelte)

v3.5.1

Compare Source

btd/rollup-plugin-visualizer (rollup-plugin-visualizer)

v6.0.11

Compare Source

  • Identical to 6.0.5 to have latest v6 that is not deprecated

v6.0.8

Compare Source

  • Not published (rolled back, moved to 7.0.0)
sveltejs/svelte (svelte)

v5.53.7

Compare Source

Patch Changes
  • fix: correctly add __svelte_meta after else-if chains (#​17830)

  • perf: cache element interactivity and source line splitting in compiler (#​17839)

  • chore: avoid rescheduling effects during branch commit (#​17837)

  • perf: optimize CSS selector pruning (#​17846)

  • fix: preserve original boundary errors when keyed each rows are removed during async updates (#​17843)

  • perf: avoid O(n²) name scanning in scope generate and unique (#​17844)

  • fix: preserve each items that are needed by pending batches (#​17819)

v5.53.6

Compare Source

Patch Changes
  • perf: optimize parser hot paths for faster compi

Configuration

📅 Schedule: Branch creation - "before 9am on tuesday" (UTC), Automerge - At any time (no schedule defined).

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

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

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


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from danieldietzler as a code owner March 10, 2026 05:12
@renovate renovate bot added changelog:skip dependencies Pull requests that update a dependency file renovate labels Mar 10, 2026
@renovate renovate bot force-pushed the renovate/typescript-projects branch 4 times, most recently from b9fe5ca to 2054fb5 Compare March 11, 2026 14:53
@renovate renovate bot force-pushed the renovate/typescript-projects branch from 2054fb5 to 99af1ee Compare March 11, 2026 15:23
@danieldietzler danieldietzler merged commit 0f2fe65 into main Mar 11, 2026
56 checks passed
@danieldietzler danieldietzler deleted the renovate/typescript-projects branch March 11, 2026 15:40
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Mar 13, 2026
* fix(mobile): inconsistent asset details background (immich-app#26634)

The background of the photo view does not extend below the height of the
viewport, and so the asset details fade in over black with the photo
view, and the standard surface colour scheme of the scaffold for the
rest. This leads to a janky animation. We can't change the background of
the scaffold to black, as it in turn makes the iOS bouncing scroll
physics cut off incorrectly. The best fix is to remove background
decoration from the photo view, and defer to the parent to colour the
background.

Co-authored-by: Alex <alex.tran1502@gmail.com>

* fix: playback style migration (immich-app#26718)

* feat(mobile): SyncAssetEditV1 (immich-app#26518)

* feat(mobile): SyncAssetEditV1

* fix: websocket handling

* fix: server version requirement

* fix: revert pubspec changes

* refactor(web): add --font-sans CSS variable for primary font (immich-app#26730)

* feat(web): toggle zoom on double-click in photo viewer (immich-app#26732)

* fix(mobile): incorrect asset dimensions in search (immich-app#26725)

Search results use a different provider than the main timeline, and they
appear appear to have diverged a bit. This means that assets can
sometimes look wrong or different in search compared to the main
timeline or albums.

* fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails (immich-app#26741)

* feat(android): enhance playback style detection using MIME type, reducing glide exposure (immich-app#26747)

* feat(android): enhance playback style detection using MIME type

* feat(android): improve playback style detection for GIF and WebP formats

* fix(android): make playback style detection faster

* refactor(android): simplify XMP reading logic for API 29 and below

* update playback style detection documentation

* use DefaultImageHeaderParser instead of all available ones for webp playbackStyle type detection

* fix(mobile): correct local asset dimensions (immich-app#26677)

* fix(mobile): correct local asset dimensions

We are constraining the size of videos so that they play nicely with
hero animations, and don't stretch in weird ways. This however caused a
regression as we are not account for local assets on Android which have
un-oriented dimensions.

* post-orientation width and height in local sync

* migration

* no need to handle it in asset viewer

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>

* fix(server): opus handling as accepted audio codec in transcode policy (immich-app#26736)

* Fix opus handling as accepted audio codec in transcode policy

Fix the issue when opus is among accepted audio codecs in transcode policy
(which is default) but it still triggers transcoding because the codec name
from ffprobe (opus) does not match `libopus` literal in Immich.

Make a distinction between a codec name and encoder:
- codec name: switch to `opus` as the audio codec name. This matches what ffprobe
returns for a media file with opus audio.
- encoder: continue using the `libopus` encoder in ffmpeg.

* Add unit tests for accepted audio codecs and for libopus encoder

* Add db migration for ffmpeg.targetAudioCodec opus

* backward compatibility

* tweak

* noisy logs

* full mapping

* make check happy

* mark deprecated

* update api

* indexOf

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>

* feat(ml): enable openvino for cpu (immich-app#22948)

* Enable OpenVINO CPU acceleration in Immich

* Remove unnecessary debug log

* Removing checking for device_ids for openvino since cpu will always be available

* Find OpenVINOExecutionProvider index instead of assuming index 0

* Fix openvino tests

* Fix failing test mock. OpenVINO expects provider options, but cuda provide doesn't so use that for mocked tests.

* Support empty provider options in OrtSessions in which case ONNXRuntime will use its own defaults

* Use OpenVINOExecutionProvider for test_sets_provider_options_kwarg

* fix mock

* simplify

* unused variable

---------

Co-authored-by: Aleksander <pejcic@adobe.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>

* feat: responsive video duration in thumbnail (immich-app#26770)

* test(e2e): fix flakiness: optimize resetDatabase with TRUNCATE and fix selectDay selector scoping (immich-app#26776)

fix(e2e): optimize resetDatabase with TRUNCATE and fix selectDay selector scoping

* fix(mobile): restrict trashed asset migration to Android platform (immich-app#26726)

* fix(migration): restrict trashed asset migration to Android platform

* playbackStyle migration add different log depending on platform

* fix(web): refresh recent albums sidebar after album changes (immich-app#26757)

* fix(web): show the correct cursor at crop bounds when editing an asset (immich-app#26748)

* fix(web): recalculate face bounding boxes (immich-app#26737)

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>

* fix(web): context menu overflow (immich-app#26760)

* chore: refactor test factories (immich-app#26804)

* chore: remove release-pr workflow (immich-app#26742)

It's not being used right now; can always add it back :P

* fix(web): correct tag rounding in search options (immich-app#26814)

* feat(web): animate zoom toggle with cubicOut easing (immich-app#26731)

* feat(mobile): consolidate video controls (immich-app#26673)

Videos have recently been changed to support zooming, but this can make
the controls in the centre of the screen unergonomic as they will either
stay in the centre when dismissing, or stick to the video when zooming.
Neither is great. We should align the behaviour with other apps which
has the play/pause toggle at the bottom of the screen with the seeker
bar instead.

Co-authored-by: Alex <alex.tran1502@gmail.com>

* chore(deps): update docker.io/valkey/valkey:9 docker digest to 3eeb097 (immich-app#26807)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(web): prevent unrelated assets from appearing in tag view (immich-app#26816)

* chore(deps): update dependency @types/node to ^24.11.0 (immich-app#26808)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(web): add shortcut "p" to open/close the face tag box (immich-app#26826)

* fix(mobile): use tabular figures in backup page (immich-app#26830)

The numbers in the backup page are not monospace, and so changes cause
the layout to shift. Using tabular figures (monospace) will prevent
that.

Refs: immich-app#25021

* fix(mobile): wrap backup error message text (immich-app#26834)

Refs: immich-app#25022

* feat(mobile): use material design 3 slider (immich-app#26829)

* feat(mobile): use material design 3 slider

The new slider is easier to use, and looks more modern.

* chore: add shadow to button and text for better visibility

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>

* fix(web): restore asset update events in asset viewer (immich-app#26845)

* fix(server): use correct day ordering in timeline buckets (immich-app#26821)

* fix(web): sort timeline day groups received from server

* fix(server): use correct day ordering in timeline buckets

* feat: adaptive progressive image loading for photo viewer (immich-app#26636)

* feat(web): adaptive progressive image loading for photo viewer

Replace ImageManager with a new AdaptiveImageLoader that progressively
loads images through quality tiers (thumbnail → preview → original).

New components and utilities:
- AdaptiveImage: layered image renderer with thumbhash, thumbnail,
  preview, and original layers with visibility managed by load state
- AdaptiveImageLoader: state machine driving the quality progression
  with per-quality callbacks and error handling
- ImageLayer/Image: low-level image elements with load/error lifecycle
- PreloadManager: preloads adjacent assets for instant navigation
- AlphaBackground/DelayedLoadingSpinner: loading state UI

Zoom is handled via a derived CSS transform applied to the content
wrapper in AdaptiveImage, with the zoom library (zoomTarget: null)
only tracking state without manipulating the DOM directly.

Also adds scaleToCover to container-utils and getAssetUrls to utils.

* fix: don't partially render images in firefox

* add passive loading indicator to asset-viewer

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>

* chore: upgrade to kysely 0.28.11 (immich-app#26744)

* fix(deps): update typescript-projects (immich-app#26812)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: use pokedex-large runner for rocm (immich-app#26823)

* feat(mobile): show animated images in asset viewer (immich-app#26614)

* Add support for showing animated images in AssetViewer with AnimatedImageStreamCompleter

* Add GIF overlay to thumbnail tile for animated assets

* formatting

* require isAnimated parameter in image providers for better asset handling

* feat: refactor AnimatedImageStreamCompleter to use streams for codec loading and initial image handling

* formatting

* add isAnimatedImage property to BaseAsset

* remove ApiService.getRequestHeaders() usage

* fix(mobile): logout on upgrade (immich-app#26827)

* use cookiejar

* cookie duping hook

* remove old pref

* handle network switching on logout

* remove bootstrapCookies

* dead code

* fix cast

* use constants

* use new event name

* update api

* fix(web): exclude emoji from translation string (immich-app#26852)

* fix(server): extract make/model from sony video files (immich-app#26833)

Co-authored-by: Your Name <brendan.ngo@okendo.io>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>

* refactor(web): crop area tool (immich-app#26843)

* fix(web): face selection box position resetting on browser resize (immich-app#26766)

* chore(deps): update dependency exiftool-vendored to v35.13.1 (immich-app#26813)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: more unused release workflow cleanup (immich-app#26817)

* chore(mobile): remove background from asset viewer back button (immich-app#26851)

We recently changed the asset viewer to use a gradient. The circle
button looks out of place now.

* chore: add shadow to video play/pause icon shadow (immich-app#26836)

* fix(web): fix zoom touch event handling  (immich-app#26866)

fix(web): fix zoom touch event handling and add clarifying comments

- Suppress Safari's synthetic dblclick on double-tap which conflicts with zoom-image's touchstart-based zoom
- Add comment explaining pointer-events-none on zoom transform wrapper
- Add comments for touchAction and overflow style overrides

* refactor: clean class (immich-app#26879)

* refactor: external links (immich-app#26880)

* refactor: clean class (immich-app#26885)

* fix(server): restrict individual shared link asset removal to owners (immich-app#26868)

* fix(server): restrict individual shared link asset removal to owners

* make open-api

* refactor: small test factories (immich-app#26862)

* fix: add to shared link (immich-app#26886)

* refactor: move encoded video to asset files table (immich-app#26863)

* refactor: move encoded video to asset files table

* chore: update

* fix: use correct original URL for 360 video panorama playback (immich-app#26831)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: resolve type errors after upstream merge (Kysely 0.28.11, asset files refactor)

* fix: remove unused sharedLinkResponseStub import

* fix: format metadata.service, storage-migration spec, and small.factory

* fix: remove unused LoadingSpinner import from photo-viewer

---------

Co-authored-by: Thomas <9749173+uhthomas@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
Co-authored-by: Min Idzelis <min123@gmail.com>
Co-authored-by: Snowknight26 <Snowknight26@users.noreply.github.com>
Co-authored-by: Luis Nachtigall <31982496+LeLunZ@users.noreply.github.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Sergey Katsubo <skatsubo@gmail.com>
Co-authored-by: Aleksander Pejcic <apejcic@gmail.com>
Co-authored-by: Aleksander <pejcic@adobe.com>
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Andreas Heinz <github@a80.net>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Daniil Suvorov <severecloud@gmail.com>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mees Frensel <33722705+meesfrensel@users.noreply.github.com>
Co-authored-by: Brendan Ngo <107925883+brendanngo@users.noreply.github.com>
Co-authored-by: Your Name <brendan.ngo@okendo.io>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: luis15pt <100942871+luis15pt@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Mar 13, 2026
* fix(mobile): inconsistent asset details background (immich-app#26634)

The background of the photo view does not extend below the height of the
viewport, and so the asset details fade in over black with the photo
view, and the standard surface colour scheme of the scaffold for the
rest. This leads to a janky animation. We can't change the background of
the scaffold to black, as it in turn makes the iOS bouncing scroll
physics cut off incorrectly. The best fix is to remove background
decoration from the photo view, and defer to the parent to colour the
background.

Co-authored-by: Alex <alex.tran1502@gmail.com>

* fix: playback style migration (immich-app#26718)

* feat(mobile): SyncAssetEditV1 (immich-app#26518)

* feat(mobile): SyncAssetEditV1

* fix: websocket handling

* fix: server version requirement

* fix: revert pubspec changes

* refactor(web): add --font-sans CSS variable for primary font (immich-app#26730)

* feat(web): toggle zoom on double-click in photo viewer (immich-app#26732)

* fix(mobile): incorrect asset dimensions in search (immich-app#26725)

Search results use a different provider than the main timeline, and they
appear appear to have diverged a bit. This means that assets can
sometimes look wrong or different in search compared to the main
timeline or albums.

* fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails (immich-app#26741)

* feat(android): enhance playback style detection using MIME type, reducing glide exposure (immich-app#26747)

* feat(android): enhance playback style detection using MIME type

* feat(android): improve playback style detection for GIF and WebP formats

* fix(android): make playback style detection faster

* refactor(android): simplify XMP reading logic for API 29 and below

* update playback style detection documentation

* use DefaultImageHeaderParser instead of all available ones for webp playbackStyle type detection

* fix(mobile): correct local asset dimensions (immich-app#26677)

* fix(mobile): correct local asset dimensions

We are constraining the size of videos so that they play nicely with
hero animations, and don't stretch in weird ways. This however caused a
regression as we are not account for local assets on Android which have
un-oriented dimensions.

* post-orientation width and height in local sync

* migration

* no need to handle it in asset viewer

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>

* fix(server): opus handling as accepted audio codec in transcode policy (immich-app#26736)

* Fix opus handling as accepted audio codec in transcode policy

Fix the issue when opus is among accepted audio codecs in transcode policy
(which is default) but it still triggers transcoding because the codec name
from ffprobe (opus) does not match `libopus` literal in Immich.

Make a distinction between a codec name and encoder:
- codec name: switch to `opus` as the audio codec name. This matches what ffprobe
returns for a media file with opus audio.
- encoder: continue using the `libopus` encoder in ffmpeg.

* Add unit tests for accepted audio codecs and for libopus encoder

* Add db migration for ffmpeg.targetAudioCodec opus

* backward compatibility

* tweak

* noisy logs

* full mapping

* make check happy

* mark deprecated

* update api

* indexOf

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>

* feat(ml): enable openvino for cpu (immich-app#22948)

* Enable OpenVINO CPU acceleration in Immich

* Remove unnecessary debug log

* Removing checking for device_ids for openvino since cpu will always be available

* Find OpenVINOExecutionProvider index instead of assuming index 0

* Fix openvino tests

* Fix failing test mock. OpenVINO expects provider options, but cuda provide doesn't so use that for mocked tests.

* Support empty provider options in OrtSessions in which case ONNXRuntime will use its own defaults

* Use OpenVINOExecutionProvider for test_sets_provider_options_kwarg

* fix mock

* simplify

* unused variable

---------

Co-authored-by: Aleksander <pejcic@adobe.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>

* feat: responsive video duration in thumbnail (immich-app#26770)

* test(e2e): fix flakiness: optimize resetDatabase with TRUNCATE and fix selectDay selector scoping (immich-app#26776)

fix(e2e): optimize resetDatabase with TRUNCATE and fix selectDay selector scoping

* fix(mobile): restrict trashed asset migration to Android platform (immich-app#26726)

* fix(migration): restrict trashed asset migration to Android platform

* playbackStyle migration add different log depending on platform

* fix(web): refresh recent albums sidebar after album changes (immich-app#26757)

* fix(web): show the correct cursor at crop bounds when editing an asset (immich-app#26748)

* fix(web): recalculate face bounding boxes (immich-app#26737)

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>

* fix(web): context menu overflow (immich-app#26760)

* chore: refactor test factories (immich-app#26804)

* chore: remove release-pr workflow (immich-app#26742)

It's not being used right now; can always add it back :P

* fix(web): correct tag rounding in search options (immich-app#26814)

* feat(web): animate zoom toggle with cubicOut easing (immich-app#26731)

* feat(mobile): consolidate video controls (immich-app#26673)

Videos have recently been changed to support zooming, but this can make
the controls in the centre of the screen unergonomic as they will either
stay in the centre when dismissing, or stick to the video when zooming.
Neither is great. We should align the behaviour with other apps which
has the play/pause toggle at the bottom of the screen with the seeker
bar instead.

Co-authored-by: Alex <alex.tran1502@gmail.com>

* chore(deps): update docker.io/valkey/valkey:9 docker digest to 3eeb097 (immich-app#26807)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(web): prevent unrelated assets from appearing in tag view (immich-app#26816)

* chore(deps): update dependency @types/node to ^24.11.0 (immich-app#26808)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(web): add shortcut "p" to open/close the face tag box (immich-app#26826)

* fix(mobile): use tabular figures in backup page (immich-app#26830)

The numbers in the backup page are not monospace, and so changes cause
the layout to shift. Using tabular figures (monospace) will prevent
that.

Refs: immich-app#25021

* fix(mobile): wrap backup error message text (immich-app#26834)

Refs: immich-app#25022

* feat(mobile): use material design 3 slider (immich-app#26829)

* feat(mobile): use material design 3 slider

The new slider is easier to use, and looks more modern.

* chore: add shadow to button and text for better visibility

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>

* fix(web): restore asset update events in asset viewer (immich-app#26845)

* fix(server): use correct day ordering in timeline buckets (immich-app#26821)

* fix(web): sort timeline day groups received from server

* fix(server): use correct day ordering in timeline buckets

* feat: adaptive progressive image loading for photo viewer (immich-app#26636)

* feat(web): adaptive progressive image loading for photo viewer

Replace ImageManager with a new AdaptiveImageLoader that progressively
loads images through quality tiers (thumbnail → preview → original).

New components and utilities:
- AdaptiveImage: layered image renderer with thumbhash, thumbnail,
  preview, and original layers with visibility managed by load state
- AdaptiveImageLoader: state machine driving the quality progression
  with per-quality callbacks and error handling
- ImageLayer/Image: low-level image elements with load/error lifecycle
- PreloadManager: preloads adjacent assets for instant navigation
- AlphaBackground/DelayedLoadingSpinner: loading state UI

Zoom is handled via a derived CSS transform applied to the content
wrapper in AdaptiveImage, with the zoom library (zoomTarget: null)
only tracking state without manipulating the DOM directly.

Also adds scaleToCover to container-utils and getAssetUrls to utils.

* fix: don't partially render images in firefox

* add passive loading indicator to asset-viewer

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>

* chore: upgrade to kysely 0.28.11 (immich-app#26744)

* fix(deps): update typescript-projects (immich-app#26812)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: use pokedex-large runner for rocm (immich-app#26823)

* feat(mobile): show animated images in asset viewer (immich-app#26614)

* Add support for showing animated images in AssetViewer with AnimatedImageStreamCompleter

* Add GIF overlay to thumbnail tile for animated assets

* formatting

* require isAnimated parameter in image providers for better asset handling

* feat: refactor AnimatedImageStreamCompleter to use streams for codec loading and initial image handling

* formatting

* add isAnimatedImage property to BaseAsset

* remove ApiService.getRequestHeaders() usage

* fix(mobile): logout on upgrade (immich-app#26827)

* use cookiejar

* cookie duping hook

* remove old pref

* handle network switching on logout

* remove bootstrapCookies

* dead code

* fix cast

* use constants

* use new event name

* update api

* fix(web): exclude emoji from translation string (immich-app#26852)

* fix(server): extract make/model from sony video files (immich-app#26833)

Co-authored-by: Your Name <brendan.ngo@okendo.io>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>

* refactor(web): crop area tool (immich-app#26843)

* fix(web): face selection box position resetting on browser resize (immich-app#26766)

* chore(deps): update dependency exiftool-vendored to v35.13.1 (immich-app#26813)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: more unused release workflow cleanup (immich-app#26817)

* chore(mobile): remove background from asset viewer back button (immich-app#26851)

We recently changed the asset viewer to use a gradient. The circle
button looks out of place now.

* chore: add shadow to video play/pause icon shadow (immich-app#26836)

* fix(web): fix zoom touch event handling  (immich-app#26866)

fix(web): fix zoom touch event handling and add clarifying comments

- Suppress Safari's synthetic dblclick on double-tap which conflicts with zoom-image's touchstart-based zoom
- Add comment explaining pointer-events-none on zoom transform wrapper
- Add comments for touchAction and overflow style overrides

* refactor: clean class (immich-app#26879)

* refactor: external links (immich-app#26880)

* refactor: clean class (immich-app#26885)

* fix(server): restrict individual shared link asset removal to owners (immich-app#26868)

* fix(server): restrict individual shared link asset removal to owners

* make open-api

* refactor: small test factories (immich-app#26862)

* fix: add to shared link (immich-app#26886)

* refactor: move encoded video to asset files table (immich-app#26863)

* refactor: move encoded video to asset files table

* chore: update

* fix: use correct original URL for 360 video panorama playback (immich-app#26831)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(web): disable drag and drop for internal items (immich-app#26897)

* fix(mobile): video auth (immich-app#26887)

* fix video auth

* update commit

* fix(web): keep header fixed on individual shared links (immich-app#26892)

* fix: SMTP over TLS (immich-app#26893)

Final step on immich-app#22833

PReq immich-app#22833 is about adding support for SMTP-over-TLS rather than just STARTTLS when sending emails. That PReq adds almost everything; it just forgot to actually pass the flag to Nodemailer at the end.

This adds that last line of code and makes it work correctly (for me, anyways!).

Co-authored-by: Nathaniel <I@nathaniel.land>

* feat: require pull requests to follow template (immich-app#26902)

* feat: require pull requests to follow template

* fix: persist-credentials: false

---------

Co-authored-by: Thomas <9749173+uhthomas@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
Co-authored-by: Min Idzelis <min123@gmail.com>
Co-authored-by: Snowknight26 <Snowknight26@users.noreply.github.com>
Co-authored-by: Luis Nachtigall <31982496+LeLunZ@users.noreply.github.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Sergey Katsubo <skatsubo@gmail.com>
Co-authored-by: Aleksander Pejcic <apejcic@gmail.com>
Co-authored-by: Aleksander <pejcic@adobe.com>
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Andreas Heinz <github@a80.net>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Daniil Suvorov <severecloud@gmail.com>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mees Frensel <33722705+meesfrensel@users.noreply.github.com>
Co-authored-by: Brendan Ngo <107925883+brendanngo@users.noreply.github.com>
Co-authored-by: Your Name <brendan.ngo@okendo.io>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: luis15pt <100942871+luis15pt@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Nathaniel Hourt <nat.hourt@gmail.com>
Co-authored-by: Nathaniel <I@nathaniel.land>
brucethomax pushed a commit to brucethomax/immich that referenced this pull request Mar 19, 2026
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

Labels

changelog:skip dependencies Pull requests that update a dependency file renovate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant