Daniel Dietzler
0d7147dcec
fix: metadata extraction as LensModel can be a float ( #30512 )
2026-08-03 18:18:24 +02:00
Santo Shakil
cee08a2320
fix(server): remove the asset row when an upload fails after creating it ( #30349 )
2026-08-03 14:59:05 +02:00
Gueye Papa Djadji
04453b7206
fix(server): reject invalid or deleted user when creating a partner ( #30431 )
2026-08-03 12:56:00 +02:00
renovate[bot]
36cb86c886
fix(deps): update dependency js-yaml to v5 [security] ( #30440 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-31 13:24:39 +02:00
Giacomo Pinato
6b6058c463
feat: store null instead of empty string for album.description ( #30123 )
...
Addresses the first column of issue #28832 : album.description now stores
and returns null instead of an empty string.
Co-authored-by: Giacomo Pinato <giacomo.pinato@gmail.com>
2026-07-30 19:41:49 +00:00
bo0tzz
a316ba35ca
fix: shared check for server setup availability ( #30311 )
...
* fix: shared check for server setup availability
* chore: add medium test
* feat: require @Authenticated decorator everywhere
* fix: lints
2026-07-30 15:12:25 -04:00
bo0tzz
4a5f13d0e5
fix: don't skip person thumbnail generation if ML is disabled ( #30194 )
2026-07-24 10:06:32 -04:00
Jason Rasmussen
b9f6c4aaf2
feat: password invalidate sessions ( #30125 )
2026-07-22 12:09:05 -04:00
Aditya Raj Singh
a0c7b81142
fix(server): dissolve stack when its non-primary assets are deleted ( #29354 )
2026-07-22 13:00:52 +02:00
Imperator Ruscal
a560e08693
fix: re-evaluate OIDC role claim on every login and support array values ( #29991 )
...
* fix(server): re-evaluate OIDC role claim on every login and support array values
Previously the OIDC role claim (immich_role) was only read at user
auto-registration time and only accepted as a scalar string, so admin
status never updated after the first login and array-valued role/group
claims (common with Keycloak, Entra ID, etc.) were silently ignored.
Now the role claim is normalized from either a string or an array of
strings, and existing users have their isAdmin flag synced from the
claim on every login, keeping the IdP as the source of truth for
privileges while leaving isAdmin untouched when the claim is blank.
* fix(server): use .includes() instead of .some() for role claim check
Satisfies unicorn/prefer-includes lint rule flagged by CI.
* fix(server): resolve missing role claim to standard user and fix test mock
Default the OIDC role claim to 'user' when the IdP omits it so
auto-registration doesn't crash, and add the missing getAdmin mock in the
auth.service test so it correctly simulates an existing admin rather than
the first-user-registration path.
* fix: claim sync logic
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2026-07-21 17:21:19 -04:00
Daniel Dietzler
5d7283e44d
fix: album update event emitting ( #30120 )
2026-07-21 19:43:27 +00:00
Lorenzo Rota
73329a8ce8
fix(server): send id_token_hint on OIDC logout ( #29720 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 19:19:13 +02:00
Timon
ee4bd3f833
feat: add album asset event handling ( #29008 )
...
* feat: add album asset event handling
* fix medium tests
* patch medium test
* collapse in AlbumUpdate
2026-07-21 10:55:46 -05:00
renovate[bot]
aa08dad1f5
chore(deps): update dependency eslint-plugin-unicorn to v72 ( #30092 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 15:33:46 +02:00
Rust
1b4d41324e
fix(server): file uploads for files with extension only filenames ( #30024 )
...
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 11:57:28 +00:00
renovate[bot]
df970da59e
chore(deps): update dependency eslint-plugin-unicorn to v70 - abandoned ( #29684 )
...
* chore(deps): update dependency eslint-plugin-unicorn to v70
* fix: linting
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-20 23:47:14 -04:00
Daniel Dietzler
77091b0107
fix: search statistics locked folder permissions ( #30063 )
...
fix; search statistics locked folder permissions
2026-07-20 20:08:42 -04:00
Daniel Dietzler
4c754f2999
fix: timebuckets locked permissions ( #30066 )
2026-07-20 20:07:56 -04:00
cevdet
f73c53c563
chore(seo): remove redundant twitter metadata tags ( #29801 )
2026-07-16 12:29:38 +02:00
Andreas Heinz
e7f773197f
fix(server/workflow): add trigger for external libraries AssetCreate ( #29597 )
2026-07-15 19:30:33 +02:00
Mert
89b0d906e8
fix(server): set hvc1 tag when using hwa ( #29908 )
...
fix hvc1 check
2026-07-14 11:03:30 -04:00
Daniel Dietzler
35fcca6254
fix: locked visibility in search random endpoint ( #29887 )
2026-07-13 20:03:20 +00:00
Daniel Dietzler
84dff19ca9
fix: unauthorized album owner update ( #29883 )
2026-07-13 11:46:18 -05:00
Daniel Dietzler
fea0db02f3
fix: emit album update event when uploading assets through shared link ( #29757 )
2026-07-09 15:21:16 +02:00
Daniel Dietzler
66e30d5fa1
fix: missing files integrity checks ( #29737 )
2026-07-08 14:53:46 -05:00
Daniel Dietzler
655cd01d57
fix: search metadata for album shared links ( #29742 )
2026-07-08 20:32:20 +02:00
Daniel Dietzler
7a9b9e01be
feat: user agnostic database restore ( #29512 )
2026-07-07 21:16:48 +02:00
Daniel Dietzler
704b287bba
fix: integrity checks checksum pagination ( #29516 )
2026-07-07 18:42:14 +02:00
Daniel Dietzler
f8e78792b8
fix: oauth account linking ( #29624 )
2026-07-07 11:21:27 -05:00
Mert
69d568f289
feat(server): hls variant configuration ( #29613 )
...
* configure variants
* openapi
* dynamic level
* unnecessary width/height fields
* add web config
* allow 1440p and 2160p
* more helpful descriptions
* simplify level picker
* formatting
* integer instead of number
2026-07-06 14:57:48 -04:00
Lukas Schaefer
5645149e09
fix: downmix audio to stereo to fix broken channel layout ( #29485 )
...
* fix: downmix audio to stereo to fix broken channel layout
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
* add todo
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
---------
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2026-07-03 10:55:12 -04:00
Daniel Dietzler
deeb042a9e
feat: honor album access permissions in search endpoints ( #29352 )
2026-06-29 22:27:22 +02:00
Daniel Dietzler
b4cc406a3f
fix!: search endpoints visibility can be omitted ( #29385 )
2026-06-29 22:00:02 +02:00
Padhai_Kaneer
df383c1ead
fix(server): face region coordinates parsing ( #29333 )
2026-06-29 17:05:20 +02:00
Ben Beckford
953ef5c047
feat: webhook workflow action ( #29258 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-06-26 16:08:45 +02:00
renovate[bot]
0656e7e231
chore(deps): update dependency typescript to v6 ( #28772 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-06-23 14:01:09 +02:00
Anthony Clerici
c0bf5a4c56
fix(server): use VBR for QSV so the max bitrate is respected ( #29240 )
...
* fix(server): use VBR for QSV so the max bitrate is respected
* update test
2026-06-22 09:56:20 -04:00
Mert
7ef2de6b53
feat(server): add hls playlist hint ( #29150 )
...
* add playlist hint
* update api
* unused import
* update crf in tests
2026-06-17 19:02:10 -04:00
Jeevan Mohan Pawar
a364b56b1c
fix(server): skip existing users when sharing albums ( #28884 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-06-17 15:54:20 +02:00
Mees Frensel
430a2bbfd3
chore(server): add switch case exhaustiveness lint ( #29029 )
2026-06-17 12:04:41 +02:00
Daniel Dietzler
e70a1163f3
fix: too strict cron expression validation ( #29138 )
2026-06-16 13:20:40 +00:00
Timon
cc8d3b4107
fix(server): do not merge metadata when multiple duplicates are kept ( #29035 )
...
* fix(server): do not merge metadata when multiple duplicates are kept
* Update server/src/services/duplicate.service.spec.ts
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-06-15 16:05:04 -04:00
Timon
b633cc4f04
fix(server): hide partner archived asset locations from map ( #29028 )
2026-06-15 16:30:52 +02:00
Daniel Dietzler
43b2d04e2c
fix: version tests ( #29032 )
2026-06-12 15:54:42 +00:00
Mert
aa126e377c
fix(server): add hint header for segment after init.mp4 ( #28867 )
...
* add hint header for segment after init.mp4
* use zod
* actually validate
* update openapi
* linting
2026-06-10 19:18:36 -04:00
Paul Makles
74878628c8
feat: integrity check jobs (missing files, untracked files, checksums) ( #24205 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Signed-off-by: izzy <me@insrt.uk>
2026-06-10 21:02:27 +02:00
Mees Frensel
4ead3e697d
chore(server): update asset not ready error messages ( #28968 )
2026-06-10 20:23:17 +02:00
bo0tzz
d3680871ef
feat: warn if microservices worker is missing ( #28869 )
...
* feat: warn if microservices worker is missing
* fix: ci
2026-06-10 09:31:32 -04:00
Timon
d10153bbc7
fix(server): hide isFavorite from album asset sync stream ( #28923 )
...
* fix(server): hide isFavorite from album asset sync stream
* some tests
* Revert "some tests"
This reverts commit 3242e6961c .
* alter existing test to clear test's intent
* Reapply "some tests"
This reverts commit f1d4c47f5f .
* drop one
* sql
2026-06-09 00:03:03 -04:00
joojoooo
164cda87a3
fix(web): use irot/imir tags for HEIF Orientation ( #27820 )
...
* fix(web): use irot/imir tags for HEIF Orientation
* ignore Exif Orientation for HEIF images per MIAF standard compliance
* add Rotation and Mirroring to exiftool numericTags
* add isHeifBasedImage function to detect HEIF-based image extensions
* add getHeifBasedOrientation method to map irot/imir tags to ExifOrientation
* removed mirroring, simplified code
* Removed "Based" in "heifBased"
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-06-08 09:33:28 -04:00