763 Commits
Author SHA1 Message Date
Daniel DietzlerandCodex f2e05e9d98 chore: migrate oauth claim validation to zod (#32373)
(cherry picked from commit 0808f24a37cf376a509f1b4046cd52fd2d72b20d)
2026-10-29 20:43:01 +03:00
renovate[bot]andCodex 568a9d977e chore(deps): update dependency @immich/ui to v0.91.1 (#32798)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
(cherry picked from commit d5918c00420601f1ec97e6d67425c81958b3eb80)
2026-10-29 20:42:12 +03:00
Valentin AgachiandCodex c3933169de feat(server): add OCR extraction workflow filter (#32464)
feat(server): add OCR workflow filter

(cherry picked from commit 2e0eb35e93dcf8468398d7015daa5ab231c7dd9c)
2026-10-29 20:41:01 +03:00
austinmdillowandCodex dc5553b239 feat: workflow filter by missing EXIF property (#32713)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
(cherry picked from commit a1a80cb1c416d3a480963a78d7b9df329d867bf6)
2026-10-28 20:41:41 +03:00
bo0tzzandCodex 8f2bfa099e fix(server): scope duplicate group resolution to the caller's assets (#32603)
(cherry picked from commit 7bb91afbe15e82502f8f6c92b61edb3865ce76f3)
2026-10-28 20:41:28 +03:00
bo0tzzandCodex 07083aec22 fix(server): anchor the folder view path match (#32612)
(cherry picked from commit c76e1517321df98df6e9b2f856493ac49ec05877)
2026-10-28 20:41:28 +03:00
renovate[bot]andCodex 7fb7699c06 chore(deps): update dependency eslint-plugin-unicorn to v78 (#32588)
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
(cherry picked from commit 72e2bc8b0bc4a7e0a84ac16c0bde7f5e538729fb)
2026-10-28 20:41:28 +03:00
bo0tzzandCodex 9669f7cc6e perf(server): use a createdAt range for "recently added" time buckets (#32434)
(cherry picked from commit cf719e733e6250e0fcd8f45d2e2c46f166d3557d)
2026-10-25 16:23:45 +03:00
bo0tzzandCodex b3bd5d1fd1 feat(server): remove deprecated password field from update-me (#32623)
* feat(server): remove deprecated password field from update-me

* fix: tests for removed password field

(cherry picked from commit 3f6a071203187681b6c06b977665dc624c431336)
2026-10-22 05:25:45 +03:00
bo0tzzandCodex ad9b368cb8 fix(server): exclude partners' locked assets from legacy search (#32604)
(cherry picked from commit 8dab52c7491c79cba742315dea8d7f5212915875)
2026-10-22 05:25:45 +03:00
Jonathan JogenforsandCodex 42dffaa0c8 fix(server): dont follow symlinks (#32614)
(cherry picked from commit 10e216b8385ac40e6aa150f75fc4730c4e8a7494)
2026-10-22 05:24:55 +03:00
Jason RasmussenandCodex b12be9119f feat: passkeys (#32194)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
(cherry picked from commit 6233a79bf7e4cec11e9ea1094908ff3b228fcbe0)
2026-10-22 05:23:22 +03:00
bo0tzzandCodex f80be1030b fix(server): restrict partner timeline requests to timeline assets (#32565)
* fix(server): restrict partner timeline requests to timeline assets

* test(server): update medium timeline tests for consolidated check

(cherry picked from commit e9fb180f466a687cebda9b7e17cef403de4b81fa)
2026-10-22 05:21:00 +03:00
MertandCodex 4c89b0f7df perf(server): more efficient person queries (#32523)
(cherry picked from commit 38a2ce4daa678615561d2b87a8f2bb30f70fdc53)
2026-10-22 05:20:19 +03:00
743e555a1b fix(deps): update dependency bullmq to v6 (#31914)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-10-19 20:31:26 +03:00
0207d48035 chore(deps): update vitest monorepo to v5 (#31912)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-10-19 20:27:42 +03:00
Codex ca7766fcd6 Show on-this-day memories from the last 20 years with automatic playback 2026-10-18 19:00:06 +03:00
Codex d25c946c29 test(local): cover shared link access and video readiness; fix lint dependency 2026-10-14 21:37:42 +03:00
bo0tzzandCodex 4fe7d42cfc perf(server): stop aggregating every album asset when loading a shared link (#32412)
SharedLinkRepository.get (shared link page load, /shared-links/me, and the
OpenGraph tags rendered for /share/:key) json_agg'd every asset of the
album, with its full exif row, ordered by fileCreatedAt. The only things
used from it are the asset count and the first/last localDateTime.

Load the album without assets and fill assetCount/startDate/endDate from
getMetadataForIds, which is what GET /albums/:id already uses. The counts
now also respect the default visibility filter, and the dates are
formatted the same as on /albums/:id.

150k-asset album link, PG 14:

|                        | before          | after  |
|------------------------|-----------------|--------|
| query                  | 4.2-6.5 s       | ~0.26 s (metadata aggregate) |
| JSON built by postgres | 261 MB          | -      |
| GET /shared-links/me   | -               | 0.28 s, 961 B |

(cherry picked from commit ac453b5557e42ad45962d3079a4e4450671053e9)
2026-10-14 21:24:13 +03:00
5b2a3a52be fix: run workflow steps in their configured order (#32241)
fix: run workflow steps in their configured order (#32240)



(cherry picked from commit 56319b76fc60d7e3bd57a2275ac908da42665e5f)

Co-authored-by: infocus13 <74890563+infocus13@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-10-08 19:48:52 +00:00
d806bc002c fix: person without assets (#32117)
fix: person without assets (#32114)

(cherry picked from commit c0506fe723995808f4effd8d40d0235fcaf104b5)

Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-10-06 08:38:24 +00:00
6e5a4fdf00 fix: assetTagFilter any matching (#32027)
fix: assetTagFilter any matching (#32008)

(cherry picked from commit 28e375c0585f8ee69f80257dc0be073a2b114cdf)

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-10-02 15:50:49 +00:00
843051f0f5 fix(server): include album owner for album shared links (#31990)
fix(server): include album owner for album shared links (#31837)

(cherry picked from commit fd97f3e5a62a4af1a8e17d2e766eb952eefae24a)

Co-authored-by: Mees Frensel <33722705+meesfrensel@users.noreply.github.com>
2026-10-01 17:06:45 +00:00
84fb51a110 fix(server): make library exclusion matching consistently case-insensitive (#31973)
fix(server): make library exclusion matching consistently case-insensitive (#31970)

(cherry picked from commit de6dcf669c498192ce73b181ec6d5de5d844b03a)

Co-authored-by: Jonathan Jogenfors <jonathan@jogenfors.se>
2026-10-01 10:26:56 +00:00
f32a891d40 feat: bulk person management (#31960)
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-09-30 23:39:14 +02:00
b20bc5ed82 feat: auto-sync name changes to connected users (#31931)
feat: auto-sync name changes to connected users (#31923)

* feat: auto-sync name changes to connected users

* fix: rename to faceId

* fix: pr feedback

* fix: mobile build

(cherry picked from commit aec7c0d97bd6679b2b300e72e870b83c5ef13c85)

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-09-30 07:53:02 +00:00
ceea058662 fix: person management ids validation and permissions (#31902)
fix: person management ids validation and permissions (#31898)

(cherry picked from commit 4408f49d15d5b38eb2fbfa40b68cf697a0e16ca8)

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-09-29 16:22:56 +00:00
76c08fa230 fix: library watcher should respect ignore patterns (#31418)
* fix: chokidar should respect ignore patterns

* fix: chokidar mock

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-09-28 15:51:19 -04:00
c12d5e6d35 feat: people management (#31620)
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-28 21:29:15 +02:00
Mees FrenselandGitHub 5f0c9a5996 fix(server): emit sidecarwrites and assetupdates consequently (#31777)
* fix(server): emit sidecarwrites and assetupdates consequently

* fix medium test
2026-09-28 14:36:05 -04:00
8ede1d54d8 fix(server): exclude hidden assets from large files search (#31479)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-09-28 18:21:44 +02:00
54987c764a fix(server): write tag updates to exif table (#31425)
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-09-28 15:52:25 +00:00
aa02337847 fix(server): use GeoNames for reverse-geocoded country names (#30199)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-09-28 11:06:30 +00:00
fabxyzandGitHub d1faeb8199 fix(server): incorrect scaling of rotated videos when transcoding (#31473) 2026-09-26 10:07:24 -04:00
AlexandGitHub d6d0947383 feat: birthday memories (#30831) 2026-09-22 04:30:43 -05:00
Jason RasmussenandGitHub 54e7ffa4e6 feat: asset face v3 (#31591) 2026-09-16 16:27:01 -04:00
Jason RasmussenandGitHub 99fd561144 chore: transition to nullable user.oauthId (#31560) 2026-09-15 09:33:15 -04:00
Daniel DietzlerandGitHub 7b51c50a96 feat: people merge improvements (#31456) 2026-09-14 19:10:25 +02:00
Daniel DietzlerandGitHub ef9718e93d fix: feature face update ignores soft-deleted faces (#31533) 2026-09-14 09:47:02 -04:00
Daniel DietzlerandGitHub 221ddd31c4 feat: server imports linting (#31537) 2026-09-14 14:51:31 +02:00
Jason RasmussenandGitHub 9abb605b62 fix: sync client disconnect (#31461) 2026-09-11 14:48:55 -04:00
MertandGitHub e039168e4a fix(server): vacuum after migrations, concurrent reindex (#31424) 2026-09-11 10:27:04 -04:00
bo0tzzandGitHub 72f1034c58 fix: only run version check in production env (#31443) 2026-09-11 10:19:45 -04:00
Daniel DietzlerandGitHub 2a62622041 feat: NestJS 12 and ESM (#31237) 2026-09-10 13:22:29 +02:00
Daniel DietzlerandGitHub 399217bf5f fix: face detection of edited assets (#31240) 2026-09-03 15:40:30 +02:00
Daniel DietzlerandGitHub 0628f8b966 fix: do not move faces of users other than the current owner (#31145) 2026-08-31 16:11:04 +02:00
TimonandGitHub 8b3d6b320b feat(server): new search API (#30179) 2026-08-27 20:39:55 +02:00
1db4677cf8 feat: same-second photos now sub-sort by filename (#29528)
* Update sorting

Updates the sorting to sort
1. First by timeCreatedAt, but then
2. By filename.

* Push tsts

* Sync SQL

* Formatting fixes

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-08-27 13:46:10 -04:00
Daniel DietzlerandGitHub c7d24321bf feat: allow users to re-run facial recognition for their group (#30965) 2026-08-27 16:38:07 +02:00
Jordan BrockandGitHub 1b3aa9cd51 fix(server): correct tag create operations (#30877) 2026-08-24 17:57:32 +02:00