Codex
9c76f93015
chore(deps): resolve reviewed upgrades against the local release lockfile
2026-10-15 14:45:01 +03:00
renovate[bot] and Codex
3effae72a7
fix(deps): update dependency nestjs-cls to v7 ( #31920 )
...
* fix(deps): update dependency nestjs-cls to v7
* fix: pnpmfile checksum
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
(cherry picked from commit 93d376ac5119510b10f34945c0b04e4116266425)
2026-10-15 14:33:11 +03:00
renovate[bot] and Codex
cd6421be4b
chore(deps): update dependency @types/node to ^24.19.2 ( #32129 )
...
* chore(deps): update dependency @types/node to ^24.19.2
* fix: pnpmfile checksum
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
(cherry picked from commit 9bb78b30fbb374157146f3bede657d293cda508f)
2026-10-15 14:33:10 +03:00
renovate[bot] and Codex
c36be7692c
fix(deps): update dependency react-email to v6 ( #32143 )
...
* fix(deps): update dependency react-email to v6
* fix: move all react email imports to react-email
* fix: linting
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
(cherry picked from commit 9755f64684de63f1e9c5d14d31d00f599f8925b9)
2026-10-15 14:33:10 +03:00
Luis Nachtigall and Codex
3ca0d0c7db
fix(mobile): update share quality option text from "Thumbnail" to "Preview" ( #32340 )
...
fix(translations): update share preview text
Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com >
(cherry picked from commit 2a8f8324e43487f29fd475832107f279da1c39c3)
2026-10-15 14:32:48 +03:00
Lee, Hyo jun and Codex
42c84fdb2c
fix(mobile): render random widget images at the widget's display resolution ( #32215 )
...
* fix(mobile): render random widget images at the widget's display resolution
* fix(mobile): cap widget image decode size for panoramas
(cherry picked from commit 3d07c061a38275f8b0d406e1ecc67446497be0e2)
2026-10-15 14:32:48 +03:00
Codex
3b04c1c4dc
test(mobile): mock wakelock binary transport for video regression checks
2026-10-14 21:42:22 +03:00
Codex
d25c946c29
test(local): cover shared link access and video readiness; fix lint dependency
2026-10-14 21:37:42 +03:00
Codex
a06a589936
fix(local): translate expanded mobile tags control
2026-10-14 21:25:19 +03:00
Luis Nachtigall and Codex
57b2b007a8
fix(mobile): show play instead of replay button for unplayed videos ( #32307 )
...
* fix(mobile): show play instead of replay button for unplayed videos
* fix(video): clarify comment for playback status handling
(cherry picked from commit 0d1e1ffecd5df8793ee020f90ddb10d6252dd5d8)
2026-10-14 21:24:14 +03:00
Luis Nachtigall and Codex
645f333d04
feat(mobile): limit max zoom by image pixel size ( #32423 )
...
* fix(mobile): limit max zoom by visible image pixels
* fix(mobile): limit max zoom by image pixel size
(cherry picked from commit b246fa7c8a458da2d89c0efa2b2a8db85182ea9c)
2026-10-14 21:24:14 +03:00
Jason Rasmussen and Codex
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
Will and Codex
1daf922555
feat(mobile): mobile tags ( #30753 )
...
* feat(mobile): mobile tags
* fix(mobile); refactoring, replaced hook
* tag provider through asset service
* make search use a tag set
* use tag action directly
* use notification listener
* untag action
* handle untag response
* fix tests and add untag action test
* fix material error from tag picker dialog
* fix(mobile): clip tag picker tiles and update tag overflow
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com >
(cherry picked from commit 83c7ec50056bbefa10869c78457f8882c72275e2)
2026-10-14 21:24:13 +03:00
bo0tzz and Codex
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 and Codex
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
bo0tzz and Codex
c7a5ac3d11
perf(server): check shared link asset access without scanning the album ( #32411 )
...
* perf(server): check shared link asset access without scanning the album
checkSharedLinkAccess runs on every thumbnail, preview, playback and asset
info request made through a shared link. It joined every asset of the
link's album and only then filtered on an array overlap across four
outer-joined columns, so each request cost O(album size).
Split it into two branches (link assets, album assets) that find the
requested ids through the asset pkey / livePhotoVideoId index and then
probe the album_asset pkey.
Median per request, PG 14, 1.36M-asset instance:
| album behind the link | before | after |
|-----------------------|--------|---------|
| 290 assets | 2.1 ms | 0.17 ms |
| 150k assets | 296 ms | 0.19 ms |
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
(cherry picked from commit bb024c862609c9e2baffc08fef795cfa3418df16)
2026-10-14 21:24:13 +03:00
Codex
5d204f646f
Merge tag 'v3.3.3' into codex/immich-release-20261014
...
# Conflicts:
# mobile/pubspec.yaml
2026-10-14 21:24:13 +03:00
immich-push-o-matic[bot]
d2dac658fe
chore: version v3.3.3
2026-10-14 16:30:09 +00:00
ea1bfcf248
perf(server): improve people query performance ( #32441 )
...
perf(server): improve people query performance (#32405 )
fix(server): slow people query
(cherry picked from commit 6b79a82800cb984a755b163bca0cf689b486ad9a)
Co-authored-by: Zack Pollard <zack@futo.org >
2026-10-14 16:27:32 +00:00
immich-push-o-matic[bot]
3dcaa05cd7
chore: version v3.3.2
2026-10-14 16:23:04 +00:00
Codex
6f313cbef9
chore: prepare local.3 release and test event subscriptions
2026-10-13 21:59:09 +03:00
renovate[bot] and Codex
6bfd311ad4
chore(deps): update base-image to v202610131110 ( #32410 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit aec0dd1e6ba44d172b83cf6f3422211961aff99d)
2026-10-13 21:49:29 +03:00
DawidKrynski and Codex
4d4a4622cd
fix(web): update album start date when the album changes ( #32242 )
...
Co-authored-by: Dawid Krynski <188586034+DawidKrynski@users.noreply.github.com >
(cherry picked from commit d519140a6c4d9bc8c392e08a29679ddf3326d917)
2026-10-13 21:49:29 +03:00
Mees Frensel and Codex
f1c02f1766
fix(web): event manager forgetting subscribed callbacks ( #32217 )
...
* fix(web): event manager forgetting subscribed callbacks
* fix: asset viewer manager
* fix PR feedback
(cherry picked from commit 60c5aa1f252c97d3d40cf21ee7e017072d005b32)
2026-10-13 21:49:29 +03:00
renovate[bot] and Codex
0d824e7826
chore(deps): update base-image to v202610061109 ( #32392 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 8c76ef2adead8abb453b37cfa6d42d3ceb684df3)
2026-10-13 21:49:29 +03:00
bo0tzz and Codex
49cf2fdff2
chore: add compose textarea description to issue template ( #32402 )
...
Hopefully this stops people from just dropping "n/a" when they're using an unsupported deployment
(cherry picked from commit 5380498debd853191d46a8cf5322778d0c0d1b5c)
2026-10-13 21:49:29 +03:00
Santo Shakil and Codex
def46cae2f
chore(mobile): hide the database export in release builds ( #32285 )
...
(cherry picked from commit 024e8e769624c953982957d4886368dcae838a18)
2026-10-13 21:49:29 +03:00
f6b4699d29
chore(deps): update base-image to v202610131110 ( #32414 )
...
chore(deps): update base-image to v202610131110 (#32410 )
(cherry picked from commit aec0dd1e6ba44d172b83cf6f3422211961aff99d)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-13 15:07:24 +00:00
4aca0ebdf1
chore(deps): update base-image to v202610061109 ( #32407 )
...
chore(deps): update base-image to v202610061109 (#32392 )
(cherry picked from commit 8c76ef2adead8abb453b37cfa6d42d3ceb684df3)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-13 13:11:55 +00:00
Codex
4fdcfb7ed9
chore: prepare local web and Android release 3.3.1-local.2
2026-10-12 21:01:23 +03:00
Adi Čaušević and Codex
60327b2665
fix(web): don't swallow Escape in sidebar ( #32364 )
...
(cherry picked from commit cc7fd671973085baf2a0dfba4e2b0a86cab17e6c)
2026-10-12 20:39:12 +03:00
Luis Nachtigall and Codex
142593b529
fix(i18n): remove unused load preview translations ( #32343 )
...
(cherry picked from commit 8cfee782bde77424c36a962511fe3450d05f4653)
2026-10-12 20:39:12 +03:00
sevtdy and Codex
00900cc902
fix(web): round top corners of queue status badge ( #32360 )
...
(cherry picked from commit c673a608d08e2aa798805c423eb4175759fab740)
2026-10-12 20:39:12 +03:00
Luis Nachtigall and Codex
d63fc2088f
refactor(mobile): cleanup image providers ( #31824 )
...
* refactor(mobile): remove redundant cancellation checks in image providers
* refactor(mobile): extract request helpers in full image providers
(cherry picked from commit 795507cfec262f8a6a9bd3ddd6f5647781e605ca)
2026-10-12 20:39:12 +03:00
762748f9ea
fix(mobile): show the memories date in every app language ( #32262 )
...
fix(mobile): show the memories date in every app language (#32259 )
(cherry picked from commit 116a9436ad1f8164d9dee904551e5067d724be99)
Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com >
2026-10-09 09:04:03 +00:00
immich-push-o-matic[bot]
db6e11ecc8
chore: version v3.3.1
2026-10-08 21:21:16 +00:00
fe8a3c4f23
docs: Add MACHINE_LEARNING_MODEL_REVISION variable to docs ( #32247 )
...
docs: Add MACHINE_LEARNING_MODEL_REVISION variable to docs (#32221 )
(cherry picked from commit 96970cfba6c74773260ff44a9700fd863bc234df)
Co-authored-by: Shaquille_Oatmeal <github@shaq-oatmeal.dev >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-10-08 21:18:09 +00:00
+40
0f3ef0689c
chore(web): update translations ( #32246 )
...
chore(web): update translations (#32029 )
Translate-URL: https://hosted.weblate.org/projects/immich/immich/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/be/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/bg/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/bn/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ca/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/cs/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/da/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/de/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/el/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/eo/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/es/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/et/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/fi/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/fr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ga/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/he/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/hu/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/id/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/it/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ja/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ka/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/lv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nb/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ro/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ru/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sk/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/tr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/vi/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_Hans/
Translation: Immich/immich
(cherry picked from commit 89069417448f1fded8ef54c4416c865a43348992)
Co-authored-by: Weblate (bot) <hosted@weblate.org >
Co-authored-by: Adam Havránek <adamhavra@seznam.cz >
Co-authored-by: Aidar Nizamov <aidar.nizamov141@gmail.com >
Co-authored-by: Aindriú Mac Giolla Eoin <aindriu80@gmail.com >
Co-authored-by: Alessandro Mandelli <mandelli.alessandro@ngi.it >
Co-authored-by: Andrei “Talkerbox” Audzei <bigtalkerbox@gmail.com >
Co-authored-by: Arif Budiman <arifpedia@gmail.com >
Co-authored-by: Azharul Haque <haque@azharul.com >
Co-authored-by: BenWen <Benjamin.wensky@de.abb.com >
Co-authored-by: Céleste C. <clst04@proton.me >
Co-authored-by: DevServs <bonov@mail.ru >
Co-authored-by: Eduard Ereza Martínez <eduard@ereza.cat >
Co-authored-by: Gabriel <jellyfin.sensitize624@passmail.net >
Co-authored-by: Gonçalo Guedes <goncalo.manuelguedes@gmail.com >
Co-authored-by: Hans Cats <hanscats@gmail.com >
Co-authored-by: Happy <59247878+happy2452354@users.noreply.github.com >
Co-authored-by: Haru Ijima <haruijimakun@gmail.com >
Co-authored-by: Hurricane_32 <rodrigorimo@hotmail.com >
Co-authored-by: Hồ Nhất Duy <axicenia@gmail.com >
Co-authored-by: Idan <idan062@gmail.com >
Co-authored-by: Indrek Haav <indrekhaav@users.noreply.hosted.weblate.org >
Co-authored-by: Ivan Dimitrov <idimitrov08@gmail.com >
Co-authored-by: Jozef Gaal <preklady@mayday.sk >
Co-authored-by: KecskeTech <teonyitas@gmail.com >
Co-authored-by: Lars Winkelmann <lars@winkelmaenner.com >
Co-authored-by: Levan Makaradze <levanluk77@gmail.com >
Co-authored-by: Luis Fernando Illapa <moxb@outlook.es >
Co-authored-by: MarcSerraPeralta <marcserraperalta@gmail.com >
Co-authored-by: Matjaž T. <matjaz@moj-svet.si >
Co-authored-by: Mees Frensel <meesfrensel@gmail.com >
Co-authored-by: Mārtiņš Bruņenieks <martinsb@gmail.com >
Co-authored-by: Nagy Krisztián <nkgy17@gmail.com >
Co-authored-by: Nicola Bortoletto <translate@nicolabortoletto.com >
Co-authored-by: Oğuz Ersen <oguz@ersen.moe >
Co-authored-by: Rika <spurdl@users.noreply.hosted.weblate.org >
Co-authored-by: Spiros Vlachos <vitaspiros@gmail.com >
Co-authored-by: Sylvain Pichon <service@spichon.fr >
Co-authored-by: Tamás <sztom313@proton.me >
Co-authored-by: Tim Morley <weblate.3919org@timsk.org >
Co-authored-by: Télio R <telio_rq@proton.me >
Co-authored-by: User 123456789 <user123456789@users.noreply.hosted.weblate.org >
Co-authored-by: Yoshi <yyyyyoshihoko@gmail.com >
Co-authored-by: aws <antonws2@gmail.com >
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl >
Co-authored-by: heizelnut <git@heiz.cc >
Co-authored-by: pyccl <changcongliang@163.com >
Co-authored-by: ruflas <juan75555@gmail.com >
Co-authored-by: waclaw66 <waclaw66@seznam.cz >
2026-10-08 21:18:04 +00:00
f6fc530734
fix: show date on memories page ( #32245 )
...
fix: show date on memories page (#32206 )
* fix: show date on memories page
* Clean up API
* Drop imports
---------
(cherry picked from commit 108a3cadbfe3b3e4305c04d8e4217aafb445f626)
Co-authored-by: Alex <alex.tran1502@gmail.com >
Co-authored-by: Adam Gastineau <adam@agg.im >
2026-10-08 20:38:58 +00: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
f607b886f0
feat: shared person indicator ( #32238 )
...
feat: shared person indicator (#32223 )
* feat: shared person indicator
* fix: styles
---------
(cherry picked from commit a3c52d13962c1c404a58a1ace20107625a4be618)
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-10-08 18:59:47 +00:00
3b53f1b4bb
fix: include unamed people in otherPeople ( #32239 )
...
fix: include unamed people in otherPeople (#32237 )
(cherry picked from commit 9971dade1b2db76a5a79d287eb2d725152cb0323)
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-10-08 18:57:55 +00:00
f7dd3ccdc6
fix(mobile): prevent rapid toggling and rerendering of cells ( #32236 )
...
fix(mobile): prevent rapid toggling and rerendering of cells (#32200 )
* fix(mobile): prevent rapid toggling and rerendering of cells
* Apply Shakil's fix
(cherry picked from commit 9640d9f5d2b3cc2e0fab441401be54c0c03de4f5)
Co-authored-by: Adam Gastineau <adam@agg.im >
2026-10-08 18:16:57 +00:00
139b62cdc8
fix: clarify people sharing does not share assets ( #32234 )
...
fix: clarify people sharing does not share assets (#32231 )
(cherry picked from commit ce2cf6612dce5d20ae4021bca6ec21535be2fce2)
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-10-08 17:02:42 +00:00
5a7e65fac3
chore: mark people users endpoints as beta ( #32233 )
...
chore: mark people users endpoints as beta (#32232 )
(cherry picked from commit 481a7bf3ae0d2c2613100d74b028463117e44a39)
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
2026-10-08 17:02:27 +00:00
f892a5485d
docs: document persistent QNAP database storage ( #32229 )
...
docs: document persistent QNAP database storage (#32222 )
(cherry picked from commit 4444ca7e3f9878686938d22726fb7f9b3972980e)
Co-authored-by: yuhuan417 <huan.yu@gmail.com >
2026-10-08 14:58:51 +00:00
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
1c284cd4ef
feat: custom release notes ( #32191 )
...
feat: custom release notes (#32172 )
(cherry picked from commit b620efba388bf4a85081e1d07fc86f80d4d4b83c)
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-10-07 22:29:42 +02:00
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
e9f171c441
fix(mobile): keep memories full screen while swiping ( #32174 )
...
fix(mobile): keep memories full screen while swiping (#32171 )
(cherry picked from commit 86fed468a7f625c759072cb07a0d82accb74cf5e)
Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com >
2026-10-07 06:52:13 +00:00