Daniel Dietzler
50cb08f35d
chore: migrate server import sorting back to prettier ( #32994 )
2026-11-05 20:34:42 +03:00
Codex
93f60cd2dc
chore: prepare local.6 and regenerate API clients
2026-11-04 21:11:35 +03:00
bo0tzz
9ec66cbe79
fix(server): validate motion photo video range before extraction ( #32931 )
2026-11-04 20:47:08 +03:00
Snowknight26
1d6947b512
fix(server): read only valid ISO values ( #32938 )
...
* fix(server): read only valid ISO values
* Add an extra test case
* Add extra test cases with undefined values
2026-11-04 20:47:08 +03:00
Daniel Dietzler
f3f56bb5e8
fix: oauth regressions ( #32934 )
2026-11-04 20:46:33 +03:00
Codex
18e5e1f75d
fix: preserve OCR search and align album sort labels
2026-11-01 14:50:46 +03:00
Codex
2800192c76
feat: add private file storage for web and Android
2026-10-31 23:07:09 +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
Zack Pollard
abfb6c0a0e
fix(server): keep user motion files on embedded motion replace ( #32079 )
...
(cherry picked from commit ddb799e0a44d112ecacc4867780f31bb8f71dc4f)
2026-10-31 07:22:45 +03:00
Zack Pollard
92cf23b642
fix(server): compress database backups on 75% of the cores, up to 32 ( #32823 )
...
(cherry picked from commit 02c0d4d392217b02b670afb0b4ce9941330120ec)
2026-10-31 07:22:45 +03:00
arno0392
276d5620fd
fix(server): convert to nv12 before hwupload for VAAPI with software decoding ( #32474 )
...
* fix(server): convert to nv12 before hwupload for VAAPI with software decoding
* test(server): cover nv12 conversion for VAAPI sw decode
* output nv12 directly
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
(cherry picked from commit 4bdc4480b2771a5a0dfed26e1149d680f6c204d9)
2026-10-31 07:22:45 +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
Zack Pollard
79ea67f6be
feat(server): compress database backups with pigz when it is installed ( #32806 )
...
(cherry picked from commit 97af09ca3cbd7f08ea033f176e777c9a9de8fdb5)
2026-10-29 20:43:01 +03:00
Baneina
79b175465e
fix(server): normalize bounding boxes when matching detected faces to existing faces ( #32486 )
...
(cherry picked from commit 5583cd7857a414f10039a9fb5bf03867bd4390c8)
2026-10-29 20:43:01 +03:00
Daniel Dietzler
f2e05e9d98
chore: migrate oauth claim validation to zod ( #32373 )
...
(cherry picked from commit 0808f24a37cf376a509f1b4046cd52fd2d72b20d)
2026-10-29 20:43: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
Daniel Dietzler
72f96701f0
feat: cluster group admin permission for regenerate people ( #32787 )
...
(cherry picked from commit 9f273a604d5bdbd9583758c3a79d2fc0141c7a77)
2026-10-28 20:41:41 +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
Yaros
1f422ea4c4
fix(server): add album-shared assets to albums ( #32609 )
...
Co-authored-by: Jason Rasmussen <jason@rasm.me >
(cherry picked from commit 37c34343e1b98edf07dc3ff34c5da461de03c746)
2026-10-28 20:40:53 +03:00
Mert
db411a4497
feat(server): add jxl as target format ( #32732 )
...
(cherry picked from commit 9560989cb97fb93cd6ab74f7811acce133a9b768)
2026-10-27 23:12:52 +03:00
bo0tzz
1707635743
fix(server): require update access on the motion video when linking a live photo ( #32606 )
...
* fix(server): require update access on the motion video when linking a live photo
* chore: allow linking with existing shared link assets
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
(cherry picked from commit a7afb4c9e9d2f099f9204a41f62e17b54fca3b17)
2026-10-27 23:12:41 +03:00
Maximilian Rink
d8030f3d14
fix(server): index edited assets in smart search ( #32300 )
...
(cherry picked from commit adca900fe277bd6dff93b96b6a7841a8632ce62b)
2026-10-27 23:12:13 +03:00
Santo Shakil
6569aad605
feat(server): accept the iOS app origin for mobile passkeys ( #32733 )
...
(cherry picked from commit 1119e9c7a7c9f5ad657aa4e893b897772f75a124)
2026-10-27 23:11:30 +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
renovate[bot]
689105c949
fix(deps): update dependency exiftool-vendored to v39 ( #31917 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
(cherry picked from commit bb9f18a1d007d530fcf477a0fa56528fdfa91dd0)
2026-10-22 05:25:45 +03:00
renovate[bot]
235e57bf77
fix(deps): update dependency cookie to v2 ( #31916 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
(cherry picked from commit e505e5113b43177ad215d075dca25dc056dd1a40)
2026-10-22 05:23:59 +03:00
bo0tzz
e2864b6664
fix(server): do not expose album members to shared link viewers ( #32607 )
...
(cherry picked from commit 380f3e74e622938b6b6c450859df8655be4e21ba)
2026-10-22 05:23:22 +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
59be6583b8
fix(server): only serve edited assets to shared links in archive downloads ( #32562 )
...
(cherry picked from commit cd47ee30676e8575a5048d12cde2ee86fc02b965)
2026-10-22 05:21:00 +03:00
bo0tzz
aeefb962d4
fix(server): sanitize EXIF template variables and tighten storage path check ( #32566 )
...
(cherry picked from commit 6141f8bdbf6d21a14558d9f7d7325918023d1037)
2026-10-22 05:21:00 +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
bo0tzz
d92248c664
fix(server): require upload access for checksum duplicate check ( #32559 )
...
* fix(server): require upload access for checksum duplicate check
* fix(server): use the upload access check for the checksum short circuit
(cherry picked from commit 5c02b17495947d7332cce13273226082bd8ae2a1)
2026-10-22 05:21:00 +03:00
bo0tzz
67152772d2
fix(server): anchor plugin allowedHosts matching ( #32560 )
...
(cherry picked from commit 4acf935ba3ee7b6171e3965cb3ce47b2ba9bad1a)
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
bo0tzz
43848a7d68
fix: locking around concurrency-1 jobs ( #28410 )
...
* fix: locking around concurrency-1 jobs
* fix: no lock on queue duplicates
(cherry picked from commit 477452b5c51ca71ecdf74205e0004eaec4e18874)
2026-10-22 05:19:10 +03:00
bo0tzz
c4c5b8ae3a
fix(server): apply shared link metadata visibility in asset mapper ( #32561 )
2026-10-19 20:31:26 +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
Jason Rasmussen
c318714fdc
feat: server feature level ( #32178 )
...
* feat: server feature level
* fix: correctly compute feature level
(cherry picked from commit cc1e2363651eaff63848baad2c7932923ca66554)
2026-10-14 21:24:14 +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
bo0tzz
1978b77a40
perf(server): stop loading every album asset to build album responses ( #32413 )
...
* perf(server): stop loading every album asset to build album responses
Album create, update (rename, description, cover, sort order, activity
toggle) and add-users json_agg'd every asset of the album with its exif
row, only for mapAlbum to read the count and the first/last
localDateTime. Use getMetadataForIds for those fields, as GET /albums/:id
already does, and drop the now unused withAssets option from getById.
The responses now carry the same date format and lastModifiedAssetTimestamp
as GET /albums/:id.
PATCH /albums/:id on a 150k-asset album, PG 14 (response is ~900 B either
way): 3.4-3.6 s -> 0.13-0.16 s.
* refactor(server): share album metadata mapping
(cherry picked from commit 2a4e876ec990a4a8d5fdca00291cbeebd3d1bccf)
2026-10-14 21:24:13 +03:00
immich-push-o-matic[bot] and Daniel Dietzler
28bd3a550b
fix: include partner shared assets for people even without showInTimeline ( #32226 )
...
fix: include partner shared assets for people even without showInTimeline (#32219 )
(cherry picked from commit 5fa7789e2672350c76b9b026f2b8c2bc3ffdf7c4)
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
2026-10-08 14:23:17 +00:00
immich-push-o-matic[bot] and bo0tzz
c6c8e516d7
fix(server): read ISO values above 65535 ( #32183 )
...
fix(server): read ISO values above 65535 (#32182 )
(cherry picked from commit 6962412c0be35bf21c87d6a5935035adc7ae94e2)
Co-authored-by: bo0tzz <git@bo0tzz.me >
2026-10-07 08:16:22 +00:00
ed3073624b
fix: memories mobile sync for older clients ( #32167 )
...
fix: memories mobile sync for older clients (#32150 )
(cherry picked from commit 8d377bfef5a0c9d840bf2c19d155f9779387baeb)
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com >
2026-10-06 14:10:38 +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
immich-push-o-matic[bot] and Daniel Dietzler
6fbb4d9642
fix: improper filename sanitizing ( #32028 )
...
fix: improper filename sanitizing (#32009 )
(cherry picked from commit f652f55ffda784e87c8f681f797f4b2cb708d96b)
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
2026-10-02 16:02:39 +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 Jonathan Jogenfors
7c102be619
fix(server): dont queue unneeded jobs when no xmp file exists ( #31936 )
...
fix(server): dont queue unneeded jobs when no xmp file exists (#31927 )
(cherry picked from commit 32e3239ba32f3f89b1b0b996c103333927b3324a)
Co-authored-by: Jonathan Jogenfors <jonathan@jogenfors.se >
2026-09-30 09:44:01 +00: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