Daniel Dietzler
5ad1e4e0f7
fix: medium tests dependencies ( #30612 )
2026-08-07 11:36:20 +02:00
renovate[bot]
099cb25ce0
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.8.1 ( #30542 )
2026-08-04 20:58:32 +02:00
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
Ben Beckford
fb4a08c17a
chore(server): test assetFileFilter ( #30430 )
2026-08-03 11:55:40 +02:00
bo0tzz
f1a90b7f36
feat: log hint about downgrades when migration is missing ( #30493 )
2026-08-03 11:06:38 +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
renovate[bot]
8e0ad9b2c4
fix(deps): update typescript-projects ( #30305 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-31 12:55:30 +02:00
Jason Rasmussen
0f4dddaf84
fix: migration order ( #30424 )
2026-07-30 15:55:21 -04: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
Devesh Kolte
9732bebb55
fix(server): store null instead of empty string for user password ( #30223 )
2026-07-30 15:19:58 -04:00
bo0tzz
7c44c29a8f
chore: deflake album to asset backfill sync test ( #30417 )
2026-07-30 15:13:44 -04:00
bo0tzz
6e1e79585e
chore: install mise tools from the lockfile in the server image ( #30416 )
2026-07-30 15:13:12 -04: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
Alexander J
0293414abd
fix: minor typos ( #30385 )
2026-07-30 00:05:11 +02:00
bo0tzz
b468459b1a
chore: add test for admin controller permissions ( #30316 )
2026-07-28 15:44:51 +02:00
Daniel Dietzler
f68815e35f
fix: calendar heatmap api key permissions ( #30314 )
2026-07-28 12:16:59 +02:00
renovate[bot]
4225281f9f
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.7.15 ( #30301 )
2026-07-28 11:36:43 +02:00
Daniel Dietzler
6c86d39f6d
fix: calendar heatmap permissions ( #30310 )
2026-07-28 11:33:10 +02:00
github-actions
8aa95c6747
chore: version v3.1.0
2026-07-27 18:20:33 +00:00
bo0tzz
3606144190
chore: clarify MediaRepository extract logging ( #30249 )
2026-07-26 13:02:57 -04:00
Daniel Dietzler
b08f6b9c50
chore: medium tests system config helpers ( #30174 )
2026-07-24 21:27:31 +02: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
acc7e6b299
fix: min faces user preference ( #30177 )
2026-07-23 17:06:09 -04:00
Timon
f24a128319
feat(server): new search schemas and query builders ( #28686 )
2026-07-22 22:33:23 +00: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
Ben Beckford
0f5bf6071f
chore(server): test assetDateFilter workflow method ( #30110 )
2026-07-22 10:48:31 +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
renovate[bot]
ce022233ae
chore(deps): update base-image to v202607211135 ( #30090 )
2026-07-21 13:58:02 +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]
8365cdd59e
chore(deps): update dependency typescript to v7 ( #29903 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 13:36:57 +02:00
renovate[bot]
e918658cc1
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.7.11 ( #30086 )
2026-07-21 12:24:32 +02: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
Ben Beckford
f2c00c107d
fix(server): return workflow steps in ascending order ( #29999 )
2026-07-17 11:30:40 +02:00
renovate[bot]
f18065b3c2
chore(deps): update dependency @types/node to ^24.13.3 ( #29892 )
2026-07-16 20:31:45 +02:00
renovate[bot]
a3dd19cd2f
fix(deps): update typescript-projects ( #29633 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-16 20:14:05 +02:00
Ryan Rockey
80cdfebbc7
fix: zero byte image uploads ( #29426 )
2026-07-16 13:00:07 +02:00
cevdet
f73c53c563
chore(seo): remove redundant twitter metadata tags ( #29801 )
2026-07-16 12:29:38 +02:00
Mert
d2744f52b1
fix(server): disable heif security limit ( #29954 )
...
disable security limit
2026-07-16 04:40:33 -05:00
renovate[bot]
834cc54abc
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.7.7 ( #29893 )
2026-07-15 18:45:35 +00:00
Timon
4c2d2284aa
refactor(server): album user route params ( #29503 )
2026-07-15 18:15:41 +00:00
Andreas Heinz
e7f773197f
fix(server/workflow): add trigger for external libraries AssetCreate ( #29597 )
2026-07-15 19:30:33 +02:00