Zaid Bin Shahab and Codex
62361b67c4
fix(web): update FaceEditor to handle HLS video elements correctly ( #32538 )
2026-10-19 20:27:19 +03:00
MaximAL and Codex
9af9d35040
chore(mobile): Change x to typographically correct × (× in HTML) symbol ( #32518 )
...
Similar to #31304
2026-10-19 20:27:19 +03:00
Codex
8b83c289be
Use scoped browser globals in memory playback
CodeQL / Analyze (javascript) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
Build Mobile / pre-job (push) Canceled after 0s
Docker / pre-job (push) Canceled after 0s
Docs build / pre-job (push) Canceled after 0s
Migration Order / Verify migration ORDER (push) Canceled after 0s
Static Code Analysis / pre-job (push) Canceled after 0s
Test / pre-job (push) Canceled after 0s
Test / ShellCheck (push) Canceled after 0s
Test / OpenAPI Clients (push) Canceled after 0s
Test / SQL Schema Checks (push) Canceled after 0s
Build Mobile / Build and sign Android (push) Canceled after 0s
Build Mobile / Build and sign iOS (push) Canceled after 0s
Docker / Re-Tag ML (armnn, immich-machine-learning, linux/arm64, -armnn) (push) Canceled after 0s
Docker / Re-Tag ML (cpu, immich-machine-learning) (push) Canceled after 0s
Docker / Re-Tag ML (cuda, immich-machine-learning, linux/amd64, -cuda) (push) Canceled after 0s
Docker / Re-Tag ML (openvino, immich-machine-learning, linux/amd64, {"linux/amd64": "pokedex-large"}, -openvino) (push) Canceled after 0s
Docker / Re-Tag ML (rknn, immich-machine-learning, linux/arm64, -rknn) (push) Canceled after 0s
Docker / Re-Tag ML (rocm, immich-machine-learning, linux/amd64, {"linux/amd64": "pokedex-large"}, -rocm) (push) Canceled after 0s
Docker / Re-Tag Server (push) Canceled after 0s
Docker / Build and Push ML (armnn, immich-machine-learning, linux/arm64, -armnn) (push) Canceled after 0s
Docker / Build and Push ML (cpu, immich-machine-learning) (push) Canceled after 0s
Docker / Build and Push ML (cuda, immich-machine-learning, linux/amd64, -cuda) (push) Canceled after 0s
Docker / Build and Push ML (openvino, immich-machine-learning, linux/amd64, {"linux/amd64": "pokedex-large"}, -openvino) (push) Canceled after 0s
Docker / Build and Push ML (rknn, immich-machine-learning, linux/arm64, -rknn) (push) Canceled after 0s
Docker / Build and Push ML (rocm, immich-machine-learning, linux/amd64, {"linux/amd64": "pokedex-large"}, -rocm) (push) Canceled after 0s
Docker / Build and Push Server (push) Canceled after 0s
Docker / Mirror to Docker Hub (armnn, immich-machine-learning, linux/arm64, -armnn) (push) Canceled after 0s
Docker / Mirror to Docker Hub (cpu, immich-machine-learning) (push) Canceled after 0s
Docker / Mirror to Docker Hub (cuda, immich-machine-learning, linux/amd64, -cuda) (push) Canceled after 0s
Docker / Mirror to Docker Hub (immich-server) (push) Canceled after 0s
Docker / Mirror to Docker Hub (openvino, immich-machine-learning, linux/amd64, {"linux/amd64": "pokedex-large"}, -openvino) (push) Canceled after 0s
Docker / Mirror to Docker Hub (rknn, immich-machine-learning, linux/arm64, -rknn) (push) Canceled after 0s
Docker / Mirror to Docker Hub (rocm, immich-machine-learning, linux/amd64, {"linux/amd64": "pokedex-large"}, -rocm) (push) Canceled after 0s
Docker / Docker Build & Push Server Success (push) Canceled after 0s
Docker / Docker Build & Push ML Success (push) Canceled after 0s
Docs build / Docs Build (push) Canceled after 0s
Static Code Analysis / Run Dart Code Analysis (push) Canceled after 0s
Test / Scripts unit tests (push) Canceled after 0s
Test / Test & Lint Server (push) Canceled after 0s
Test / Unit Test CLI (push) Canceled after 0s
Test / Unit Test CLI (Windows) (push) Canceled after 0s
Test / Lint Web (push) Canceled after 0s
Test / Test Web (push) Canceled after 0s
Test / Test i18n (push) Canceled after 0s
Test / End-to-End Lint (push) Canceled after 0s
Test / Medium Tests (Server) (push) Canceled after 0s
Test / End-to-End Tests (Server & CLI) (ubuntu-24.04-arm) (push) Canceled after 0s
Test / End-to-End Tests (Server & CLI) (ubuntu-latest) (push) Canceled after 0s
Test / End-to-End Tests (Web) (ubuntu-24.04-arm) (push) Canceled after 0s
Test / End-to-End Tests (Web) (ubuntu-latest) (push) Canceled after 0s
Test / End-to-End Tests Success (push) Canceled after 0s
Test / Unit Test Mobile (push) Canceled after 0s
Test / Unit Test ML (push) Canceled after 0s
Test / .github Files Formatting (push) Canceled after 0s
2026-10-18 19:03:36 +03:00
Codex
ca7766fcd6
Show on-this-day memories from the last 20 years with automatic playback
2026-10-18 19:00:06 +03:00
Codex
04a7b4104f
test(web): align formatter stub with lint rules
2026-10-17 20:17:24 +03:00
Codex
97609ec6bd
fix(web): avoid formatting a missing user deletion date
2026-10-17 20:09:47 +03:00
Codex
43b94defd9
fix(mobile): use JSON maps for nested config compatibility defaults
2026-10-17 19:47:28 +03:00
Codex
ffb8c84e48
test: provide required user deletion request body
2026-10-17 19:41:22 +03:00
Codex
85820ca45e
test: cover user admin queries and config compatibility for local.4
2026-10-17 19:37:37 +03:00
Jason Rasmussen and Codex
36a6e033aa
fix: public config properties ( #32500 )
...
fix: public config visibility
2026-10-17 19:32:36 +03:00
Jason Rasmussen and Codex
49f65aa3b0
chore: remove unused code ( #32497 )
2026-10-17 19:32:36 +03:00
Jason Rasmussen and Codex
4341a2f34c
fix: smpt email visibility ( #32492 )
2026-10-17 19:32:36 +03:00
Jason Rasmussen and Codex
424c26c697
chore: remove unused feature flag ( #32495 )
2026-10-17 19:32:35 +03:00
Jason Rasmussen and Codex
1b058dbcf3
fix: user admin actions ( #32491 )
2026-10-17 19:32:35 +03:00
Jason Rasmussen and Codex
5351fecc08
refactor: user admin queries ( #32490 )
2026-10-17 19:32:35 +03:00
Codex
5910639efd
test(web): return formatter mock without an unnecessary async function
2026-10-16 21:08:41 +03:00
Codex
4649313c29
chore: prepare local.3 release with query regression coverage
2026-10-16 20:58:44 +03:00
Jason Rasmussen and Codex
ae7cb3192e
refactor: library queries ( #32489 )
...
* refactor: library queries
* fix: mutation options signature
2026-10-16 20:51:29 +03:00
Jason Rasmussen and Codex
2ebe288010
refactor: server endpoints ( #32467 )
2026-10-16 20:51:28 +03:00
Jason Rasmussen and Codex
6adebeda0d
refactor: system config endpoints ( #32457 )
...
* refactor(web): tanstack query
* refactor: use createQuery
* fix: pnpm lockfile
2026-10-16 20:51:28 +03:00
Dag Stuan and Codex
92ab6e9c41
fix(mobile): Keep asset viewer controls hidden if they were hidden before zooming. ( #31832 )
2026-10-16 20:51:28 +03:00
Lee, Hyo jun and Codex
9e89e65d23
fix(mobile): sort time zones by name within the same offset ( #32087 )
2026-10-16 20:51:28 +03:00
Santo Shakil and Codex
12196bef4f
fix(mobile): save typed coordinates in the location picker ( #32460 )
2026-10-16 20:51:28 +03:00
6e89915bc5
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-16 20:51:28 +03:00
Codex
b1a0e38dba
test(web): use typed JSON responses in updater checks
2026-10-15 15:09:20 +03:00
Codex
6665bb4796
feat: add verified Android and web update checks in settings
2026-10-15 14:54:44 +03:00
Codex
9c76f93015
chore(deps): resolve reviewed upgrades against the local release lockfile
2026-10-15 14:45:01 +03:00
renovate[bot] and Codex
3effae72a7
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 >
(cherry picked from commit 93d376ac5119510b10f34945c0b04e4116266425)
2026-10-15 14:33:11 +03:00
renovate[bot] and Codex
cd6421be4b
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 >
(cherry picked from commit 9bb78b30fbb374157146f3bede657d293cda508f)
2026-10-15 14:33:10 +03:00
renovate[bot] and Codex
c36be7692c
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 >
(cherry picked from commit 9755f64684de63f1e9c5d14d31d00f599f8925b9)
2026-10-15 14:33:10 +03:00
Luis Nachtigall and Codex
3ca0d0c7db
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 >
(cherry picked from commit 2a8f8324e43487f29fd475832107f279da1c39c3)
2026-10-15 14:32:48 +03:00
Lee, Hyo jun and Codex
42c84fdb2c
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
(cherry picked from commit 3d07c061a38275f8b0d406e1ecc67446497be0e2)
2026-10-15 14:32:48 +03:00
Codex
3b04c1c4dc
test(mobile): mock wakelock binary transport for video regression checks
2026-10-14 21:42:22 +03:00
Codex
d25c946c29
test(local): cover shared link access and video readiness; fix lint dependency
2026-10-14 21:37:42 +03:00
Codex
a06a589936
fix(local): translate expanded mobile tags control
2026-10-14 21:25:19 +03:00
Luis Nachtigall and Codex
57b2b007a8
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
(cherry picked from commit 0d1e1ffecd5df8793ee020f90ddb10d6252dd5d8)
2026-10-14 21:24:14 +03:00
Luis Nachtigall and Codex
645f333d04
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
(cherry picked from commit b246fa7c8a458da2d89c0efa2b2a8db85182ea9c)
2026-10-14 21:24:14 +03:00
Jason Rasmussen and Codex
c318714fdc
feat: server feature level ( #32178 )
...
* feat: server feature level
* fix: correctly compute feature level
(cherry picked from commit cc1e2363651eaff63848baad2c7932923ca66554)
2026-10-14 21:24:14 +03:00
Will and Codex
1daf922555
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 >
(cherry picked from commit 83c7ec50056bbefa10869c78457f8882c72275e2)
2026-10-14 21:24:13 +03:00
bo0tzz and Codex
4fe7d42cfc
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 |
(cherry picked from commit ac453b5557e42ad45962d3079a4e4450671053e9)
2026-10-14 21:24:13 +03:00
bo0tzz and Codex
1978b77a40
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
(cherry picked from commit 2a4e876ec990a4a8d5fdca00291cbeebd3d1bccf)
2026-10-14 21:24:13 +03:00
bo0tzz and Codex
c7a5ac3d11
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 >
(cherry picked from commit bb024c862609c9e2baffc08fef795cfa3418df16)
2026-10-14 21:24:13 +03:00
Codex
5d204f646f
Merge tag 'v3.3.3' into codex/immich-release-20261014
...
# Conflicts:
# mobile/pubspec.yaml
2026-10-14 21:24:13 +03:00
immich-push-o-matic[bot]
d2dac658fe
chore: version v3.3.3
2026-10-14 16:30:09 +00:00
ea1bfcf248
perf(server): improve people query performance ( #32441 )
...
perf(server): improve people query performance (#32405 )
fix(server): slow people query
(cherry picked from commit 6b79a82800cb984a755b163bca0cf689b486ad9a)
Co-authored-by: Zack Pollard <zack@futo.org >
2026-10-14 16:27:32 +00:00
immich-push-o-matic[bot]
3dcaa05cd7
chore: version v3.3.2
2026-10-14 16:23:04 +00:00
Codex
6f313cbef9
chore: prepare local.3 release and test event subscriptions
2026-10-13 21:59:09 +03:00
renovate[bot] and Codex
6bfd311ad4
chore(deps): update base-image to v202610131110 ( #32410 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit aec0dd1e6ba44d172b83cf6f3422211961aff99d)
2026-10-13 21:49:29 +03:00
DawidKrynski and Codex
4d4a4622cd
fix(web): update album start date when the album changes ( #32242 )
...
Co-authored-by: Dawid Krynski <188586034+DawidKrynski@users.noreply.github.com >
(cherry picked from commit d519140a6c4d9bc8c392e08a29679ddf3326d917)
2026-10-13 21:49:29 +03:00
Mees Frensel and Codex
f1c02f1766
fix(web): event manager forgetting subscribed callbacks ( #32217 )
...
* fix(web): event manager forgetting subscribed callbacks
* fix: asset viewer manager
* fix PR feedback
(cherry picked from commit 60c5aa1f252c97d3d40cf21ee7e017072d005b32)
2026-10-13 21:49:29 +03:00