Commit Graph
1030 Commits
Author SHA1 Message Date
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]andDaniel 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]andDaniel 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]andbo0tzz 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]andDaniel 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]andJonathan 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]andJonathan 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]andJason 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