Daniel Dietzler
50cb08f35d
chore: migrate server import sorting back to prettier ( #32994 )
2026-11-05 20:34:42 +03:00
Zack Pollard
f5f154f2d8
fix(server): single library exclusion matcher ( #32081 )
...
(cherry picked from commit c3dee6f98b7a231adc3d0716a287c4b47bc69d3e)
2026-10-31 07:23:13 +03:00
Paul Makles
925aaed54c
feat: backups ( #32268 )
...
Signed-off-by: izzy <me@insrt.uk >
Co-authored-by: Zack Pollard <zack@futo.org >
(cherry picked from commit 177b57b689be293bad96b8092e473dc03e068e9c)
2026-10-31 07:21:01 +03:00
Valentin Agachi
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
bo0tzz
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
renovate[bot]
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
bo0tzz
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
bo0tzz
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
bo0tzz
ad9b368cb8
fix(server): exclude partners' locked assets from legacy search ( #32604 )
...
(cherry picked from commit 8dab52c7491c79cba742315dea8d7f5212915875)
2026-10-22 05:25:45 +03:00
Jason Rasmussen
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
bo0tzz
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
Mert
4c89b0f7df
perf(server): more efficient person queries ( #32523 )
...
(cherry picked from commit 38a2ce4daa678615561d2b87a8f2bb30f70fdc53)
2026-10-22 05:20:19 +03:00
renovate[bot] and Daniel Dietzler
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
renovate[bot] and Daniel Dietzler
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
bo0tzz
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
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
immich-push-o-matic[bot] and Mees Frensel
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
immich-push-o-matic[bot] and Jonathan Jogenfors
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
immich-push-o-matic[bot] and Jason Rasmussen
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
immich-push-o-matic[bot] and Daniel Dietzler
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
bo0tzz and Daniel Dietzler
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
Jordan Brock and Daniel Dietzler
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
Alex
d6d0947383
feat: birthday memories ( #30831 )
2026-09-22 04:30:43 -05:00
Jason Rasmussen
99fd561144
chore: transition to nullable user.oauthId ( #31560 )
2026-09-15 09:33:15 -04:00
Daniel Dietzler
7b51c50a96
feat: people merge improvements ( #31456 )
2026-09-14 19:10:25 +02:00
Daniel Dietzler
221ddd31c4
feat: server imports linting ( #31537 )
2026-09-14 14:51:31 +02:00
Daniel Dietzler
2a62622041
feat: NestJS 12 and ESM ( #31237 )
2026-09-10 13:22:29 +02:00
Daniel Dietzler
399217bf5f
fix: face detection of edited assets ( #31240 )
2026-09-03 15:40:30 +02:00
Daniel Dietzler
0628f8b966
fix: do not move faces of users other than the current owner ( #31145 )
2026-08-31 16:11:04 +02:00
Timon
8b3d6b320b
feat(server): new search API ( #30179 )
2026-08-27 20:39:55 +02:00
Daniel Dietzler
c7d24321bf
feat: allow users to re-run facial recognition for their group ( #30965 )
2026-08-27 16:38:07 +02:00
shenlong and shenlong-tanwen
6b7b0fe3a6
fix: remove partner assets from existing memories ( #28950 )
...
* fix: remove partner assets from existing memories
* move tests to be medium tests
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-24 14:55:47 +00:00
Jason Rasmussen
2f48a8aab4
refactor: memory e2e ( #30906 )
2026-08-21 12:15:17 -04:00
Holegots and Daniel Dietzler
57ce9b2221
fix(server): correct asset dimensions from exif metadata ( #29244 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-08-21 13:32:17 +02:00
Jason Rasmussen
4c26a7ca76
refactor: activity e2e ( #30896 )
2026-08-21 12:57:50 +02:00
Jason Rasmussen
c7531a36f9
refactor: partner e2e ( #30895 )
2026-08-20 17:32:51 -04:00
Jason Rasmussen and Daniel Dietzler
11b1aa5ecf
feat: cluster groups ( #30739 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-08-20 20:03:00 +02:00
Jason Rasmussen
7cd0a7d30c
refactor: e2e tests ( #30870 )
2026-08-19 14:31:57 -04:00
Jason Rasmussen
c63824bcea
refactor: library e2e ( #30867 )
2026-08-19 11:49:41 -04:00
Jason Rasmussen
d2759ec41e
refactor: library e2e ( #30865 )
2026-08-19 10:36:35 -04:00
Jonathan Jogenfors and Jason Rasmussen
2018e4f8c4
chore(server): migrate library e2e tests ( #27277 )
...
* migrate library e2e tests
* fix: real storage repo
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-08-19 13:14:40 +00:00
Brandon Wees
93d2d30fe0
feat: rotate an API key ( #30801 )
...
* feat: rotate an API key
* fix: test response
* chore: create new api key scope
* chore: code review
2026-08-18 16:07:39 -04:00
Yaros and Daniel Dietzler
80a90fabf3
fix(server): update ocr & faces after asset edit ( #29303 )
...
* fix: update ocr & faces after asset edit
* chore: remove client-side refresh
* fix(server): sync asset OCR visibility changes
* chore: prettier format
* test: missing updatedAt
* chore: remove comment
* chore: fix test
* chore: update migration timestamp
* chore(server): AssetOcrSyncReset
* chore: migration timestamps
---------
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-08-18 14:32:21 +00:00
Jason Rasmussen
342a9472c4
refactor: duplicate e2e ( #30773 )
2026-08-14 21:00:13 +00:00
Daniel Dietzler
199723261c
fix: owner cascade delete album ( #30692 )
2026-08-11 23:05:18 +02:00
Jason Rasmussen
00d10dab63
refactor: e2e user tests ( #30716 )
2026-08-11 12:39:25 -04:00
Daniel Dietzler
0d7147dcec
fix: metadata extraction as LensModel can be a float ( #30512 )
2026-08-03 18:18:24 +02:00