Commit Graph
10913 Commits
Author SHA1 Message Date
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
bo0tzz b22483de33 feat: backport pull requests to release branches (#31035) 2026-08-27 15:10:07 +02:00
bo0tzz a366db1494 feat: cut releases from release branches (#31033) 2026-08-27 15:10:07 +02:00
bo0tzz 3be6b12292 feat: gate release publishing behind an approval (#31025) 2026-08-27 15:10:07 +02:00
bo0tzz 0179e612a1 feat: split release preparation from drafting (#31024) 2026-08-27 15:10:06 +02:00
Timon 293dd5889c chore: bump openapi-generator version to v7.25 (#30995) 2026-08-27 08:44:49 -04:00
05e84dd5db fix(web): restore timeline scroll when the asset id cannot be resolved (#30916)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-08-27 13:47:09 +02:00
renovate[bot] f46e107d16 chore(deps): update dependency opentofu to v1.12.6 (#30984) 2026-08-27 10:59:03 +00:00
renovate[bot] de04e651b4 chore(deps): update prom/prometheus docker digest to 5ce7540 (#30981) 2026-08-27 12:46:06 +02:00
renovate[bot] 6555fb29ed chore(deps): update grafana/grafana docker tag to v12.4.9-ubuntu (#30986) 2026-08-27 12:45:46 +02:00
renovate[bot] c9be4c4bd3 chore(deps): update dependency github:extism/js-pdk to v1.7.0 (#30987) 2026-08-27 12:45:18 +02:00
bo0tzz 2c0f415a56 feat: only move floating docker tags for the newest release (#31030) 2026-08-27 12:30:39 +02:00
Adam Gastineau c04c81a979 chore(mobile): remove Drift* prefixes from classes and variables (#31038)
* chore(mobile): remove Drift* prefixes from classes and variables

* Remove *Drift* from related mocks
2026-08-26 19:11:12 +00:00
renovate[bot] 093f5c070a chore(deps): update dependency pydantic-settings to v2.14.2 [security] (#29252) 2026-08-26 10:33:23 -04:00
renovate[bot] ef72f1ec5b chore(deps): update dependency pillow to v12.3.0 [security] (#30084) 2026-08-26 10:32:47 -04:00
bo0tzz 291ccdae95 feat: verify migration ORDER on every PR (#30998) 2026-08-26 15:25:00 +02:00
bo0tzz a8c79469e5 feat(server): document and guard migration ORDER maintenance (#30997)
feat(server): add a migrations ORDER manifest
2026-08-26 15:24:59 +02:00
bo0tzz f264573847 fix(server): point the migrations mise task at sql-tools (#30996) 2026-08-26 15:24:59 +02:00
Jason Rasmussen 13562d80a4 chore: bump sql-tools (#31000) 2026-08-26 14:59:47 +02:00