11255 Commits

Author SHA1 Message Date
Dag Stuan e5094d54e9 fix(mobile): Keep asset viewer controls hidden if they were hidden before zooming. (#31832) 2026-10-16 14:57:44 +06:00
Lee, Hyo jun 83594a0cee fix(mobile): sort time zones by name within the same offset (#32087) 2026-10-16 14:57:13 +06:00
Santo Shakil 3ae7111741 fix(mobile): save typed coordinates in the location picker (#32460) 2026-10-15 23:57:39 +06:00
renovate[bot] c43573bb2e fix(deps): update dependency intl-messageformat to v12 (#31918)
* fix(deps): update dependency intl-messageformat to v12

* fix: pnpmfile checksum

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-10-15 11:50:53 +00:00
renovate[bot] 93d376ac51 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>
2026-10-15 13:21:46 +02:00
renovate[bot] 9bb78b30fb 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>
2026-10-15 12:45:11 +02:00
renovate[bot] 9755f64684 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>
2026-10-15 11:58:34 +02:00
Luis Nachtigall 2a8f8324e4 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>
2026-10-15 04:03:41 +06:00
renovate[bot] 03f75b50b1 chore(deps): update rust crate libc to v0.2.190 (#32390)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com>
2026-10-15 03:52:00 +06:00
Lee, Hyo jun 3d07c061a3 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
2026-10-15 03:40:01 +06:00
bo0tzz b2a13cf542 chore: add auto-closed:translations label (#32451) 2026-10-14 20:17:48 +00:00
Luis Nachtigall 0d1e1ffecd 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
2026-10-14 10:34:29 -07:00
renovate[bot] cace887201 fix(deps): update typescript-projects (#32128)
* fix(deps): update typescript-projects

* fix: downgrade zod

* chore: update lockfile

* fix: update mise lockfile

* chore: pin supported mise platforms

* fix: linting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-10-14 19:12:34 +02:00
renovate[bot] 62ce1b9f4b chore(deps): update ghcr.io/jdx/mise docker tag to v2026.10.9 (#32131)
* chore(deps): update ghcr.io/jdx/mise docker tag to v2026.10.9

* fix: lockfile

* chore: upgrade mise lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-10-14 18:11:15 +02:00
Zack Pollard 6b79a82800 perf(server): improve people query performance (#32405)
fix(server): slow people query
2026-10-14 17:02:26 +02:00
renovate[bot] 8352299f26 chore(deps): update github-actions (#32389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-14 17:01:43 +02:00
bo0tzz 48631ee363 chore: keep mise java on OpenJDK (#32439) 2026-10-14 16:25:52 +02:00
Luis Nachtigall b246fa7c8a 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
2026-10-14 07:01:32 -07:00
Jason Rasmussen cc1e236365 feat: server feature level (#32178)
* feat: server feature level

* fix: correctly compute feature level
2026-10-14 09:56:49 -04:00
Jason Rasmussen 9d8435973e fix: medium test (#32418) 2026-10-14 09:56:47 -04:00
Will 83c7ec5005 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>
2026-10-14 15:10:26 +05:30
bo0tzz 9ba71d908d chore(ci): drop setup-java and setup-uv in favour of mise (#32400) 2026-10-14 00:06:10 -04:00
bo0tzz ac453b5557 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 |
2026-10-13 18:39:08 -04:00
bo0tzz 2a4e876ec9 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
2026-10-13 18:36:20 -04:00
bo0tzz bb024c8626 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>
2026-10-13 18:33:29 -04:00
renovate[bot] aec0dd1e6b chore(deps): update base-image to v202610131110 (#32410)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-13 16:57:07 +02:00
DawidKrynski d519140a6c fix(web): update album start date when the album changes (#32242)
Co-authored-by: Dawid Krynski <188586034+DawidKrynski@users.noreply.github.com>
2026-10-13 09:41:19 -04:00
Mees Frensel 60c5aa1f25 fix(web): event manager forgetting subscribed callbacks (#32217)
* fix(web): event manager forgetting subscribed callbacks

* fix: asset viewer manager

* fix PR feedback
2026-10-13 09:40:09 -04:00
renovate[bot] 8c76ef2ade chore(deps): update base-image to v202610061109 (#32392)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-13 14:57:40 +02:00
bo0tzz 5380498deb 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
2026-10-13 10:02:04 +02:00
Santo Shakil 024e8e7696 chore(mobile): hide the database export in release builds (#32285) 2026-10-13 13:11:22 +06:00
Adi Čaušević cc7fd67197 fix(web): don't swallow Escape in sidebar (#32364) 2026-10-12 11:22:05 +02:00
Luis Nachtigall 8cfee782bd fix(i18n): remove unused load preview translations (#32343) 2026-10-11 21:33:33 -05:00
sevtdy c673a608d0 fix(web): round top corners of queue status badge (#32360) 2026-10-12 02:33:29 +00:00
Luis Nachtigall 795507cfec refactor(mobile): cleanup image providers (#31824)
* refactor(mobile): remove redundant cancellation checks in image providers

* refactor(mobile): extract request helpers in full image providers
2026-10-11 11:49:29 -07:00
bo0tzz 2685234ed3 chore: set ml revision in default compose (#32289) 2026-10-09 21:16:30 -04:00
Ștefan Muraru b4f35cb43d fix(ml): Round OCR max resolution up to a multiple of 32 (#32263)
fix(ml): round ocr max resolution up to a multiple of 32
2026-10-09 11:05:02 -04:00
Brandon Richardson d8454261cd fix(logging): avoid multiline logging of feature flags in server service (#32275)
When logging feature flags at startup, avoid stringifying the features
in pretty format. Multiline log messages clutter logs and make it harder
to ingest and parse in log aggregation systems like loki, graylog or
logz.io.
2026-10-09 09:46:16 -04:00
Santo Shakil 116a9436ad fix(mobile): show the memories date in every app language (#32259) 2026-10-09 14:47:44 +06:00
Weblate (bot) 8906941744 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

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:01:50 +00:00
Alex 108a3cadbf fix: show date on memories page (#32206)
* fix: show date on memories page

* Clean up API

* Drop imports

---------

Co-authored-by: Adam Gastineau <adam@agg.im>
2026-10-08 20:26:36 +00:00
infocus13 56319b76fc fix: run workflow steps in their configured order (#32240)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-10-08 21:39:38 +02:00
Jason Rasmussen 9971dade1b fix: include unamed people in otherPeople (#32237) 2026-10-08 14:47:51 -04:00
Daniel Dietzler a3c52d1396 feat: shared person indicator (#32223)
* feat: shared person indicator

* fix: styles

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-10-08 14:47:33 -04:00
Adam Gastineau 9640d9f5d2 fix(mobile): prevent rapid toggling and rerendering of cells (#32200)
* fix(mobile): prevent rapid toggling and rerendering of cells

* Apply Shakil's fix
2026-10-08 11:01:00 -07:00
Santo Shakil 0e63715394 chore(mobile): rename the native core crates and package (#31986) 2026-10-08 23:10:59 +06:00
Santo Shakil 135aba5d82 fix(mobile): stop long images squishing on android (#32213) 2026-10-08 23:10:40 +06:00
Shaquille_Oatmeal 96970cfba6 docs: Add MACHINE_LEARNING_MODEL_REVISION variable to docs (#32221)
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 19:05:58 +02:00
Jason Rasmussen ce2cf6612d fix: clarify people sharing does not share assets (#32231) 2026-10-08 18:41:52 +02:00
Daniel Dietzler 481a7bf3ae chore: mark people users endpoints as beta (#32232) 2026-10-08 15:58:16 +00:00