Commit Graph

11231 Commits

Author SHA1 Message Date
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
Mees Frensel 383f23ef19 fix(i18n): remove unused translation (#32184) 2026-10-08 10:58:08 -04:00
yuhuan417 4444ca7e3f docs: document persistent QNAP database storage (#32222) 2026-10-08 10:56:19 -04:00
bo0tzz 655bfdb34f fix(ml): move logging config to code (#32220)
This lets it be applied earlier on, so the initializing [version] log
line actually works.
2026-10-08 14:41:09 +00:00
Daniel Dietzler 5fa7789e26 fix: include partner shared assets for people even without showInTimeline (#32219) 2026-10-08 16:13:16 +02:00
Lee, Hyo jun 02481deb14 fix(mobile): format year filter chip without thousands separator (#32159) 2026-10-08 16:03:38 +05:30
Peter Ombodi 6f042bad92 fix(mobile): prevent timeline bucket selection provider leak (#32100)
Co-authored-by: Peter Ombodi <peter.ombodi@gmail.com>
2026-10-08 16:01:42 +05:30
Santo Shakil c0d1dc923e chore(mobile): one thumbhash decoder in the native core (#31367)
* chore(mobile): rust native core

* chore(mobile): move the android byte buffer into the native core

* chore(mobile): move the raw photo rotation into the native core

* move the rotation into immich_core, the jni side only wraps it

* use the pointer loop in rotate again, the bounds checked writes were slower on a pixel 5

* chore(mobile): move the 10 bit conversion into the native core

* move the 10 bit conversion into immich_core, neon for 32 bit arm

* chore(mobile): one thumbhash decoder in the native core

* decode the thumbhash straight into the returned buffer, its jni entry sits next to the c export

* chore(mobile): move the 10 bit conversion into the native core

* move the 10 bit conversion into immich_core, neon for 32 bit arm
2026-10-08 12:02:39 +06:00
Santo Shakil b08a8fb56c chore(mobile): move the 10 bit conversion into the native core (#31363)
* chore(mobile): move the 10 bit conversion into the native core

* move the 10 bit conversion into immich_core, neon for 32 bit arm

* move the android rust flags into native/.cargo/config.toml
2026-10-08 04:53:04 +06:00
Santo Shakil 003670d013 chore(mobile): move the raw photo rotation into the native core (#31362)
* chore(mobile): move the raw photo rotation into the native core

* move the rotation into immich_core, the jni side only wraps it

* use the pointer loop in rotate again, the bounds checked writes were slower on a pixel 5
2026-10-08 03:31:37 +06:00
Santo Shakil 4c51bfed1d chore(mobile): move the android byte buffer into the native core (#31361) 2026-10-08 03:08:36 +06:00
Santo Shakil 8a02a91ee9 chore(mobile): rust native core (#31254) 2026-10-08 02:42:15 +06:00
Daniel Dietzler 7e7a1de3fd refactor: migrate to native set operations (#32186) 2026-10-07 19:33:21 +02:00
Jason Rasmussen b620efba38 feat: custom release notes (#32172) 2026-10-07 13:27:29 -04:00
Santo Shakil 26b8e3d400 fix(mobile): start the session when a link opens the app (#32181) 2026-10-07 19:00:19 +06:00
Peter Ombodi b94afdb468 fix(mobile): decouple delete action messages from context (#31093)
* fix(mobile): decouple delete action messages from context

* fix(mobile): finish local cleanup after action disposal

* fix(mobile): revert redundant changes

* fix(mobile): revert rest of redundant changes

---------

Co-authored-by: Peter Ombodi <peter.ombodi@gmail.com>
2026-10-07 16:06:09 +05:30
bo0tzz 6962412c0b fix(server): read ISO values above 65535 (#32182) 2026-10-07 10:03:07 +02:00
Santo Shakil 86fed468a7 fix(mobile): keep memories full screen while swiping (#32171) 2026-10-06 18:17:51 +00:00
renovate[bot] 461d038abe chore(deps): update github-actions (#32126) 2026-10-06 18:09:59 +00:00
Joep Admiraal 3f8cfe0b70 fix(web): show face name label above box when it would be hidden (#32088) 2026-10-06 14:25:24 +00:00
Daniel Dietzler 8d377bfef5 fix: memories mobile sync for older clients (#32150)
Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com>
2026-10-06 15:48:29 +02:00
Jason Rasmussen e49a5bb8c9 fix: memory upcoming query (#32164) 2026-10-06 09:46:16 -04:00
Alex 82cfc4b28b feat: birthday memory on mobile (#32113)
* feat: birthday memory on mobile

* chore: remove yellow bg colors

* pr feedback
2026-10-06 13:34:40 +00:00
Alex 22a5af0ee9 chore: milder birthday memory text (#32124)
* chore: better birthday memories style

* chore: flame animation

* multicolor cake
2026-10-06 08:19:57 -05:00
bo0tzz 99822d91c8 fix: use readonly HF_TOKEN in ML test workflows (#32154) 2026-10-06 07:54:14 -04:00