Commit Graph
10931 Commits
Author SHA1 Message Date
Jason Rasmussen 2c53b76400 chore: require number format (#31222) 2026-09-02 12:33:22 -04:00
Jason Rasmussen a68937cee7 fix: fdroid link (#31219) 2026-09-02 10:14:42 -04:00
Santo Shakil 7211efa6cb chore(mobile): log app resume and pause (#31207) 2026-09-02 04:28:06 -07:00
shenlongandshenlong-tanwen 1c7f9a4f24 chore: asset page zoom test overrides (#31201)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-01 16:31:16 +00:00
Jason Rasmussen 44f1c5ad3a chore: add backport label to backported prs (#31195) 2026-09-01 15:58:21 +02:00
Aditya Raj Singh c1f2756f62 fix(server): never unlink an untracked-file path that an asset now references (#31074) 2026-09-01 15:50:07 +02:00
bo0tzz 9e1e595939 fix: add discussions perm to release publish token (#31167) 2026-09-01 15:41:42 +02:00
Alex 1c2bee9986 chore: remove stars chart from readme (#31175) 2026-09-01 08:02:21 -05:00
bo0tzz 935c32e54a fix: workflows write perm on backport job (#31191) 2026-09-01 14:58:01 +02:00
Matthew Momjian bca4bd6dd3 chore(docs): deprecate outlook SMTP (#31139)
deprecation warning
2026-09-01 08:50:33 -04:00
renovate[bot] 40e6abc4b8 chore(deps): update github-actions (#31182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-01 08:49:48 -04:00
renovate[bot] d441795a0e chore(deps): update ghcr.io/jdx/mise docker tag to v2026.8.16 (#31177) 2026-09-01 12:31:31 +02:00
renovate[bot]andDaniel Dietzler 5fcfb63980 chore(deps): update typescript-projects (#31183)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-09-01 12:25:41 +02:00
bo0tzz 5666d57f15 fix: open an announcement discussion for each release line (#31101) 2026-08-31 20:32:11 +02:00
Alex 9dead7857f fix(web): interaction with some filter elements closes the search panel (#31107) 2026-08-31 19:58:57 +02:00
Ray 06f6104e1a fix: Build SDK in dev container (#31096) 2026-08-31 18:28:58 +02:00
Ufuk 9e5dcc598f fix(server): allow an empty assetIds array when creating an album shared link (#31098) 2026-08-31 17:31:47 +02:00
Daniel Dietzler 0628f8b966 fix: do not move faces of users other than the current owner (#31145) 2026-08-31 16:11:04 +02:00
Santo Shakil c17a119735 fix(mobile): refresh server info when the websocket connects (#31144)
refresh the server features and config when the websocket connects
2026-08-31 19:09:35 +06:00
Santo Shakil 006e7fd0d5 fix(mobile): keep the original filename when sharing downloaded assets (#30267)
* fix(mobile): keep the original filename when sharing downloaded assets

* use ordinal suffixes for duplicate share filenames

* rename display name maps to totals and duplicates seen

* drop the display name totals map and keep the first copy name clean

* fold the ordinal suffix into the share display name derivation

* resolve share names after download and test through the public flow

* use the renamed store repository in the share tests

* add docstrings to the share file helpers

* simplify the share name resolver to a single set

* note the share_plus cache folder behavior on the resolver

* drop the version pin from the resolver comment

* pin the share_plus version in the resolver comment

* undo the accidental reformat, keep the version pin

* explain the test harness and cut the teardown and wait noise

* say why the storage is stubbed, drop the platform override and busy wait for the share cleanup

* spy on the cleanup in the share tests instead of waiting for it
2026-08-31 19:05:00 +06:00
Alex 015e5f20d7 chore: tune map icon size (#31108) 2026-08-31 08:58:05 -04:00
renovate[bot] 1fd3d87492 chore(deps): update base-image to v202608300913 (#31128) 2026-08-30 11:35:21 +02:00
bo0tzz 469a870a22 fix: generate release notes from the previous release on the line (#31080) 2026-08-28 16:56:12 +02:00
Adam Gastineau dc813e2816 fix(mobile): handle transient loading states for map timelines (#29735)
* fix(mobile): handle transient loading states for map timelines

* fix(mobile): handle transient loading states for map timelines

* Add support for new method

* Rewrote map options notifier to be more Riverpody
2026-08-28 06:06:10 -07:00
bo0tzz 6b478924b2 fix(e2e): wait out the duplicate #asset-grid during navigation (#31088) 2026-08-28 12:45:13 +02:00
bo0tzz 1a8fcf1b9f fix(web): face editor coordinates on a not-yet-loaded video (#31083) 2026-08-28 09:20:54 +00:00
Aditya Raj Singh c1a88dd9a3 fix(ml): read CLIP model configs as UTF-8 (#31075) 2026-08-27 23:04:40 -04:00
bo0tzz 762f93798d chore: drop backport description header (#31067) 2026-08-27 22:53:14 +02:00
bo0tzz 8a00ecda43 chore: drop backport label description (#31062) 2026-08-27 22:52:41 +02:00
bo0tzz b912dcfab8 fix: avoid a concurrency deadlock when drafting a release (#31069) 2026-08-27 20:31:02 +00:00
bo0tzz bbf201d16b fix: run codeql and weblate checks on release branches (#31065) 2026-08-27 20:17:42 +00:00
bo0tzz 5baf181409 fix: build release branch images instead of re-tagging main (#31063) 2026-08-27 22:01:31 +02:00
immich-push-o-matic[bot] e61312084b chore: version v3.2.0-rc.0 2026-08-27 19:43:45 +00:00
bo0tzz b8400dfe30 fix: check out the branch tip when preparing a release (#31061) 2026-08-27 21:40:55 +02:00
+81 7078734df8 chore(web): update translations (#30296)
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/de/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/de_CH/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/en_GB/
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/eu/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/fa/
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/gl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/hr/
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/km/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/kn/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ko/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/lt/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/lv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ml/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/mn/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ms/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ne/
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/sq/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/th/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/tl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/tr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/uk/
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/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_Hant/
Translation: Immich/immich

Co-authored-by: 4liceD <4liced@4liced.com>
Co-authored-by: 4liceD <aliced@digital-rabbithole.com>
Co-authored-by: Adam Havránek <adamhavra@seznam.cz>
Co-authored-by: Aindriú Mac Giolla Eoin <aindriu80@gmail.com>
Co-authored-by: Akhil Raj <89210430+akhi07rx@users.noreply.github.com>
Co-authored-by: Arco <codingarco@gmail.com>
Co-authored-by: Ardev Prisec <prisecardev@gmail.com>
Co-authored-by: Arif Budiman <arifpedia@gmail.com>
Co-authored-by: Arkaitz Ortega <arkaitz_ortega@hotmail.com>
Co-authored-by: Arnie97 <arnie97@gmail.com>
Co-authored-by: Arseniy <67965122+ArsenijN@users.noreply.github.com>
Co-authored-by: Azharul Haque <haque@azharul.com>
Co-authored-by: Bat-Uyanga Batdelger <batuyanga@gmail.com>
Co-authored-by: Brady87 <thomasbrard87@gmail.com>
Co-authored-by: Brian <brianlch465@gmail.com>
Co-authored-by: Bruno Silva <brunosilvapaz@gmail.com>
Co-authored-by: Colin <colin-moess@mail.de>
Co-authored-by: CoolAEW <alf.einar.walso@gmail.com>
Co-authored-by: Denis Pacquier <denis.pacquier@gmail.com>
Co-authored-by: DevServs <bonov@mail.ru>
Co-authored-by: Eduard Ereza Martínez <eduard@ereza.cat>
Co-authored-by: Emil Warelius <emilwarelius@gmail.com>
Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: Frank Paul Silye <frankps@gmail.com>
Co-authored-by: HackingAll <hacking.all.YT@gmail.com>
Co-authored-by: Hans Cats <hanscats@gmail.com>
Co-authored-by: Happy <59247878+happy2452354@users.noreply.github.com>
Co-authored-by: Henry Wong <dewongway@gmail.com>
Co-authored-by: Hurricane_32 <rodrigorimo@hotmail.com>
Co-authored-by: Håkon Antonsen <haakon@antons1.net>
Co-authored-by: Hồ Nhất Duy <axicenia@gmail.com>
Co-authored-by: Indrek Haav <indrekhaav@users.noreply.hosted.weblate.org>
Co-authored-by: Ivan Dimitrov <idimitrov08@gmail.com>
Co-authored-by: Izoret <izoret@proton.me>
Co-authored-by: Jonatan Nyberg <nickwick@users.noreply.hosted.weblate.org>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Kanchnak Khorn <Kanchnakkhorn@gmail.com>
Co-authored-by: Klenner Martins Barros <klenne.al@gmail.com>
Co-authored-by: Leo Bottaro <github@leobottaro.com>
Co-authored-by: Li-Sheng Chou <choupeanut@gmail.com>
Co-authored-by: Linas Samuchovas <linsamuchovas@gmail.com>
Co-authored-by: Liviu Roman <contact@liviuroman.com>
Co-authored-by: Lucas Pinto <github@lucks.pt>
Co-authored-by: Luis Fernando Illapa <moxb@outlook.es>
Co-authored-by: Marco C. <cavenati.marco@gmail.com>
Co-authored-by: Matjaž T. <matjaz@moj-svet.si>
Co-authored-by: Michal Šmahel <48548230+ceskyDJ@users.noreply.github.com>
Co-authored-by: Mārtiņš Bruņenieks <martinsb@gmail.com>
Co-authored-by: Nagy Krisztián <nkgy17@gmail.com>
Co-authored-by: Natale Daniele Musumeci <ndmusumeci@gmail.com>
Co-authored-by: Nicola Bortoletto <nicola.bortoletto@live.com>
Co-authored-by: Olaf Nielsen <solluh@mail.de>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: PIRANY <paul@kunad.eu>
Co-authored-by: PPNplus <ppnplus@protonmail.com>
Co-authored-by: PalmyreB <palmyre.baroth@live.fr>
Co-authored-by: Pavel Borecki <pavel.borecki@gmail.com>
Co-authored-by: Pavel Miniutka <pavel.miniutka@gmail.com>
Co-authored-by: Radoslav <radoslavorlov@gmail.com>
Co-authored-by: Shawn <xiaxinx@gmail.com>
Co-authored-by: Shayan <shayanvonduering@gmail.com>
Co-authored-by: Simone Ognibene <ognibene2001@gmail.com>
Co-authored-by: Skanda <skillwiz94@gmail.com>
Co-authored-by: Syahmi Azhar <prsyahmi@gmail.com>
Co-authored-by: Sylvain Pichon <service@spichon.fr>
Co-authored-by: Tacyd <matkob1002@gmail.com>
Co-authored-by: Thiago S. Marcelino <thiagodsmarcelino@gmail.com>
Co-authored-by: Tim Morley <weblate.3919org@timsk.org>
Co-authored-by: Timon Fiedler <fiedlertimon@gmail.com>
Co-authored-by: Tom Haelbich <haelbito@outlook.com>
Co-authored-by: Tomislav Renić <trenic@gmail.com>
Co-authored-by: User 123456789 <user123456789@users.noreply.hosted.weblate.org>
Co-authored-by: Usinouv <alexandre@dhont.me>
Co-authored-by: Yoshi <yyyyyoshihoko@gmail.com>
Co-authored-by: Yusaku Mizobuchi <yusakum1311@gmail.com>
Co-authored-by: Zadkiel AHARONIAN <zadkiel.aharonian@gmail.com>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: deva <devaxiv254@applamos.com>
Co-authored-by: hunnguye <nm_hung93@yahoo.de>
Co-authored-by: lanew <pro.daisy173@passinbox.com>
Co-authored-by: muziqaz <muziqaz@users.noreply.hosted.weblate.org>
Co-authored-by: noob translator <nzbnoob.overdress150@passinbox.com>
Co-authored-by: reducedradius <137701630+flytothehighest@users.noreply.github.com>
Co-authored-by: rubes <mail@armd.one>
Co-authored-by: santhosh kumar <santhoshbhandari3008@gmail.com>
Co-authored-by: tikg <tikg@users.noreply.hosted.weblate.org>
Co-authored-by: tulioveneno <tulioveneno@gmail.com>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
Co-authored-by: zurachu <zurachu@gmail.com>
Co-authored-by: 정동걸 <i.jdk.dev@gmail.com>
2026-08-27 19:24:48 +00:00
shenlongandshenlong-tanwen 22a56a79f2 fix: ios map settings sheet (#31060)
fix: ios map settings

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-28 00:27:02 +05:30
Timon 8b3d6b320b feat(server): new search API (#30179) 2026-08-27 20:39:55 +02:00
rickytrevor 25c60ef99e feat(web): view assets in map viewport (#27492) 2026-08-27 20:39:32 +02:00
andy.mp3andDaniel Dietzler 1db4677cf8 feat: same-second photos now sub-sort by filename (#29528)
* Update sorting

Updates the sorting to sort
1. First by timeCreatedAt, but then
2. By filename.

* Push tsts

* Sync SQL

* Formatting fixes

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-08-27 13:46:10 -04:00
Mimi 91d362eb9f fix: external library statistics for excluded assets (#28462)
Fix external library statistics for excluded assets
2026-08-27 17:34:10 +00:00
Aviatorpaal 48b5f9c6a6 docs: update remote-machine-learning.md (#28728)
Update remote-machine-learning.md

To include the default URL, should someone need it (as the default entry is not easily recreated otherwise).
2026-08-27 13:29:19 -04:00
Jason Rasmussen b3eb0b59ee fix(web): map (#31056)
* fix(web): map without set start/end dates

* fix(web): invalid timeline map options
2026-08-27 13:24:33 -04:00
brn-linandDaniel Dietzler 84adce7d43 fix(web): misleading toast notification (#30976)
* Added the proper toast for each scenario in the if/else statement instead of only having toastManager.primary() for all scenarios.

* Created a test file for album.service.ts.

* chore: cleanup

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-27 13:08:54 -04:00
Aditya Raj Singh dc3d6eeec4 fix(server): kill pg_dump when a backup fails so it stops holding table locks (#30851)
* fix(server): kill the child process when a spawned duplex stream is destroyed

A failed database backup left pg_dump running. The stream was destroyed but
the child was not, so the dump sat idle in transaction holding AccessShareLock
on every table until someone terminated it by hand. One report had it survive
five days and block DDL from another application on the same Postgres.

Destroying the duplex now kills the child, which also covers pipeline()
tearing every stream down when one of them fails.

The backup service additionally holds references to the streams it spawns so
the error path can destroy them. createWriteStream can throw before pipeline()
takes ownership, which is how the reported ENOENT on an unmounted backup volume
left nothing referencing the running pg_dump.

* chore(server): drop the explanatory comments from the backup teardown fix

Requested in review. The reasoning lives in the commit message and the PR
body, which is where it belongs.
2026-08-27 12:15:45 -04:00
Daniel Dietzler 302270a3b3 fix: draggable Immich logo (#31055) 2026-08-27 17:52:53 +02:00
renovate[bot] 8178a01522 chore(deps): update ghcr.io/immich-app/base-server-dev docker tag to v202608251107 (#31054) 2026-08-27 15:29:36 +00:00
PriyanshuandpriyanshuANDcoad f16fdafefc fix(web): preserve slideshow pause state when viewing video slides (#30278)
Co-authored-by: priyanshuANDcoad <priyanshu23154050@akgec.ac.in>
2026-08-27 16:54:44 +02:00
bo0tzz 2ba343e138 fix: only run backport for labelled pull requests (#31052) 2026-08-27 14:39:55 +00:00
Daniel Dietzler c7d24321bf feat: allow users to re-run facial recognition for their group (#30965) 2026-08-27 16:38:07 +02:00
Zlendy 6eb1c93882 fix(web): do not play memory video if the MemoryVideoViewer element is not visible (#30947) 2026-08-27 15:27:27 +02:00