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
shenlong and shenlong-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.mp3 and Daniel 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-lin and Daniel 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
Priyanshu and priyanshuANDcoad
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