bo0tzz and GitHub
4a5f13d0e5
fix: don't skip person thumbnail generation if ML is disabled ( #30194 )
2026-07-24 10:06:32 -04:00
Jason Rasmussen and GitHub
b9f6c4aaf2
feat: password invalidate sessions ( #30125 )
2026-07-22 12:09:05 -04:00
Aditya Raj Singh and GitHub
a0c7b81142
fix(server): dissolve stack when its non-primary assets are deleted ( #29354 )
2026-07-22 13:00:52 +02:00
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 and GitHub
5d7283e44d
fix: album update event emitting ( #30120 )
2026-07-21 19:43:27 +00:00
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 and GitHub
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
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
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
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 and GitHub
77091b0107
fix: search statistics locked folder permissions ( #30063 )
...
fix; search statistics locked folder permissions
2026-07-20 20:08:42 -04:00
Daniel Dietzler and GitHub
4c754f2999
fix: timebuckets locked permissions ( #30066 )
2026-07-20 20:07:56 -04:00
cevdet and GitHub
f73c53c563
chore(seo): remove redundant twitter metadata tags ( #29801 )
2026-07-16 12:29:38 +02:00
Andreas Heinz and GitHub
e7f773197f
fix(server/workflow): add trigger for external libraries AssetCreate ( #29597 )
2026-07-15 19:30:33 +02:00
Mert and GitHub
89b0d906e8
fix(server): set hvc1 tag when using hwa ( #29908 )
...
fix hvc1 check
2026-07-14 11:03:30 -04:00
Daniel Dietzler and GitHub
35fcca6254
fix: locked visibility in search random endpoint ( #29887 )
2026-07-13 20:03:20 +00:00
Daniel Dietzler and GitHub
84dff19ca9
fix: unauthorized album owner update ( #29883 )
2026-07-13 11:46:18 -05:00
Daniel Dietzler and GitHub
fea0db02f3
fix: emit album update event when uploading assets through shared link ( #29757 )
2026-07-09 15:21:16 +02:00
Daniel Dietzler and GitHub
66e30d5fa1
fix: missing files integrity checks ( #29737 )
2026-07-08 14:53:46 -05:00
Daniel Dietzler and GitHub
655cd01d57
fix: search metadata for album shared links ( #29742 )
2026-07-08 20:32:20 +02:00
Daniel Dietzler and GitHub
7a9b9e01be
feat: user agnostic database restore ( #29512 )
2026-07-07 21:16:48 +02:00
Daniel Dietzler and GitHub
704b287bba
fix: integrity checks checksum pagination ( #29516 )
2026-07-07 18:42:14 +02:00
Daniel Dietzler and GitHub
f8e78792b8
fix: oauth account linking ( #29624 )
2026-07-07 11:21:27 -05:00
Mert and GitHub
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 and GitHub
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 and GitHub
deeb042a9e
feat: honor album access permissions in search endpoints ( #29352 )
2026-06-29 22:27:22 +02:00
Daniel Dietzler and GitHub
b4cc406a3f
fix!: search endpoints visibility can be omitted ( #29385 )
2026-06-29 22:00:02 +02:00
Padhai_Kaneer and GitHub
df383c1ead
fix(server): face region coordinates parsing ( #29333 )
2026-06-29 17:05:20 +02:00
953ef5c047
feat: webhook workflow action ( #29258 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-06-26 16:08:45 +02:00
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 and GitHub
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 and GitHub
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
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 and GitHub
430a2bbfd3
chore(server): add switch case exhaustiveness lint ( #29029 )
2026-06-17 12:04:41 +02:00
Daniel Dietzler and GitHub
e70a1163f3
fix: too strict cron expression validation ( #29138 )
2026-06-16 13:20:40 +00:00
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 and GitHub
b633cc4f04
fix(server): hide partner archived asset locations from map ( #29028 )
2026-06-15 16:30:52 +02:00
Daniel Dietzler and GitHub
43b2d04e2c
fix: version tests ( #29032 )
2026-06-12 15:54:42 +00:00
Mert and GitHub
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
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 and GitHub
4ead3e697d
chore(server): update asset not ready error messages ( #28968 )
2026-06-10 20:23:17 +02:00
bo0tzz and GitHub
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 and GitHub
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
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
Timon and GitHub
474efd39f8
refactor(server): prevent sharing album with owner by filtering out user from albumUsers ( #28891 )
...
fix(server): prevent sharing album with owner by filtering out user from albumUsers
2026-06-07 17:46:26 -04:00
Yaros and GitHub
733373c0ca
feat(mobile): ocr support ( #26523 )
2026-06-05 04:29:03 +05:30
b3d49045de
feat: user upload heatmap ( #28593 )
...
* Feat - Heatmap
* Implemented Comments to prettify and code cleanup
* fixing code to pass cases.
* fixing errors for OpenAPI Clients
* Improving the code.
* Fix code
* Rerun generated client check
* Rerun generated client
* feat: command for user pages (#28554 )
* fix(web): timeline stuttering with many assets in 1 day (#28509 )
* fix(web): timeline stuttering with many assets in 1 day
* cache isInOrNearViewport per day
* skip inOrNearViewport check on first run
* chore(ml): allow insightface 1.x (#28595 )
* chore(ml): allow insightface 1.x
The new insightface 1.0 release appears to have no breaking code changes nor relevant license changes ([before](https://github.com/deepinsight/insightface/blob/2a78baec428354883e0cda39c54b555a5ed8358a/README.md ), [after](https://github.com/deepinsight/insightface/blob/70f3269ea628d0658c5723976944c9de414e96f8/README.md ), c.f. https://github.com/immich-app/immich/blob/fd7ddfef54cdf2b6256c4fc08bc5ff3f86176775/machine-learning/README.md ), and it works on my machine.
* Update uv.lock
* please excuse my incompetence
* Triggering the actions.
* bad merge
* Fix code
* Code clear
* Resolve conflict
* Resolve conflict
* Resolve conflict
* Resolve errors
* Resolve errors
* Resolve errors more
* chore: clean up
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
Co-authored-by: Ben Beckford <ben@benjaminbeckford.com >
Co-authored-by: Aaron Liu <aaronliu0130@gmail.com >
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-06-04 15:36:09 -04:00
99281de6ab
refactor!: disallow star rating < 1 ( #27896 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
Co-authored-by: timonrieger <mail@timonrieger.de >
2026-06-04 17:06:28 +00:00
e2de8c7c53
refactor(server)!: remove changeExpiryTime ( #28816 )
...
* fix(mobile): clear shared link password
* fix(mobile): clear shared link description
* fix(mobile): clear shared link expiry
* refactor(server)!: remove changeExpiryTime
* fix(mobile): clear shared link expiry
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-06-04 08:35:45 +00:00
Timon and GitHub
e94e22f3f8
fix(server): respect timezone in iso date string encoding ( #28810 )
2026-06-03 19:00:10 -04:00