Commit Graph
11502 Commits
Author SHA1 Message Date
Jason Rasmussen 03ff181af3 fix(web): tag navigation from a missing path (#33052)
(cherry picked from commit f42c393d05a26aa5d0f8890aa8fc474f85a73fd8)
2026-11-07 21:31:44 +03:00
Jason Rasmussen cca2dd7ece chore: add regression tests for tags (#33051)
(cherry picked from commit 7b7b5b8c5a1c13f65bb5696e7e06908b41a00e59)
2026-11-07 21:31:44 +03:00
Jason Rasmussen 12b2c6ac0a refactor: web search queries (#33050)
(cherry picked from commit e4f120e4bbc5e98b074a340b75fa02fd6d6d9468)
2026-11-07 21:31:44 +03:00
Jason Rasmussen 8b6e4940f4 fix(web): search for unknown city (#33047)
(cherry picked from commit ce21de370a516b92afcee5188fda6b9055949b98)
2026-11-07 21:31:44 +03:00
Jason Rasmussen 865da219c9 chore: add regression tests for search (#33044)
* chore: add regression tests for search

* chore: add search filter and people rename tests

* chore: add search, explore, location and person tests

(cherry picked from commit 635f908c84d0f7b471d85f60aa4ead2cc8580316)
2026-11-07 21:31:44 +03:00
Jason Rasmussen d68c988981 refactor: web queue queries (#33042)
(cherry picked from commit 0cb2ab23b8c1669cc0a39e2247c62bdaceb0150d)
2026-11-07 21:31:44 +03:00
Codex c8c6fc3837 fix(android): keep native decoder within local texture bound 2026-11-06 22:41:20 +03:00
Codex f378567c6c test: make backup paths portable and wait for duplicate navigation 2026-11-06 22:03:34 +03:00
Codex c08c9d9205 chore: prepare local.8 and preserve local defaults 2026-11-06 21:48:15 +03:00
Jason Rasmussen 6520f7820b refactor: web activity queries (#33038) 2026-11-06 21:37:35 +03:00
Jason Rasmussen a8786e5f17 chore: test activity of trashed assets (#33036) 2026-11-06 21:37:34 +03:00
Paul Makles 457776898c feat(server): use Immich database for backups state (#33028)
* feat(server): run FUTO Backups on the Immich database

Assisted-by: AI

* chore(server): ignore FUTO Backups tables in schema checks

Assisted-by: AI

* feat(web): finish maintenance once FUTO Backups restores the database

Assisted-by: AI

* chore: bump backups

* fix: restore is part of backups now
2026-11-06 21:37:34 +03:00
Jason Rasmussen 8077424a53 chore: add regression tests for activity (#33035) 2026-11-06 21:36:57 +03:00
Jason Rasmussen 4138ce749d refactor: web stack queries (#33031)
* refactor: web stack queries

* fix: unstack bug
2026-11-06 21:36:57 +03:00
Jason Rasmussen 094d65c4bc chore: add regression tests for recent stack bugs (#33020) 2026-11-06 21:36:57 +03:00
Santo Shakil 06c41fdcac fix(mobile): show memories right after the first login (#33030) 2026-11-06 21:36:57 +03:00
shenlongandshenlong-tanwen d25a353d94 chore: pump flutter to 3.47.9 (#33006)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-11-06 21:36:57 +03:00
Kevin Park 11eb6eaff3 feat(server): count finished jobs per queue in telemetry (#33025) 2026-11-06 21:35:53 +03:00
Jason Rasmussen 57c45dbb72 fix(web): isolate unit test storage (#33021) 2026-11-06 21:35:53 +03:00
Stellan Sun a5678e0d24 fix(mobile): prevent spam taps in memories viewer (#32869)
* fix(mobile): improve memory tap navigation

* fix(mobile): preserve memory animations and simplify tap locking
2026-11-06 21:35:53 +03:00
Santo Shakilandmertalev b3414d7595 feat(mobile): avif decoder (#32809)
* feat(mobile): avif decoder

* decode avif in the core first on android, tone-map hdr like jxl and support premultiplied alpha

* decode avif with rav1d's safe api

* use rav1d's assembly

* thread avif decodes by their tile count

* convert colour-managed avif in bands

* use the codec dependencies' simd kernels

* free avif pictures before resizing

* map avif alpha through a table

* premultiply avif while writing alpha

* drop the avif container after decoding

* use core avif decoder on ios

* fall back to imageio on ios when the core can't decode an avif

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2026-11-06 21:35:53 +03:00
Jason Rasmussen 012eef2a80 fix: add name to .github package.json (#33019)
Workspace tooling requires every workspace package to have a name.
2026-11-06 21:35:07 +03:00
Jason Rasmussen 7fb3de7bde ci: retry registry rate limit (#33018) 2026-11-06 21:35:07 +03:00
Jason Rasmussen c0170f4abf chore: add tests for admin and map page regressions (#33017) 2026-11-06 21:35:07 +03:00
Jason Rasmussen 4fdc9b69fa chore: add web workflow regression tests (#33016) 2026-11-06 21:35:07 +03:00
Jason Rasmussen 7459863a87 chore: tests for web regressions (#33015) 2026-11-06 21:35:07 +03:00
Jason Rasmussen 2196435a9e chore: never gc public queries (#33014) 2026-11-06 21:35:07 +03:00
renovate[bot] ef96d6cb84 chore(mise): update tool restic (0.19.0 → 0.19.1) (#32892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-11-06 21:35:07 +03:00
Santo Shakil a3d2cf5b04 fix(mobile): delete leftover share files when the app starts (#32989)
* fix(mobile): delete leftover share files when the app starts

A share's downloaded file is deleted when the share sheet closes. If the
app is killed with the sheet still open, that never runs and the file
stays in the temp folder for good.

* clean up share downloads from the downloader's records

* build the share folder list with Future.wait
2026-11-06 21:35:07 +03:00
Jason Rasmussen b3d8c1bc43 refactor: sync response check (#33010) 2026-11-06 21:35:07 +03:00
Daniel Dietzler d569e28d01 fix: web import ordering (#32995) 2026-11-06 21:34:27 +03:00
renovate[bot]andDaniel Dietzler 768dbe8259 chore(deps): update node.js to v26.13.0 (#32914)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-11-06 21:33:59 +03:00
renovate[bot]andDaniel Dietzler 27ce131134 chore(npm): update node (major) (#32918)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-11-06 21:33:21 +03:00
renovate[bot] f16e6c753a chore(deps): update machine-learning (#32885)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-11-06 21:33:04 +03:00
Codex 3248d24d28 style: format browser date helper 2026-11-05 21:40:23 +03:00
Codex 197f575673 test: isolate browser preferences and normalize date input 2026-11-05 21:32:12 +03:00
Codex 3b157096fd test: align passkey environment and browser regression checks 2026-11-05 21:05:51 +03:00
Codex 062ae648d7 feat: support local Android passkeys and prepare local.7 2026-11-05 21:00:26 +03:00
Jason Rasmussen 8e77a8c6f8 refactor: web tests (#32983)
* refactor: web tests

* fix: e2e ratelimits

* fix: prefer data-testid

* chore: pr feedback
2026-11-05 20:36:37 +03:00
Jason Rasmussen 9776c0f4f4 refactor: storage medium tests (#33007) 2026-11-05 20:35:55 +03:00
Daniel Dietzler 0908d1af7b chore: kysely safe null comparison plugin (#32990) 2026-11-05 20:35:38 +03:00
renovate[bot] 08d9ef733c chore(npm): update dependency exiftool-vendored (39.0.1 → 39.1.0) (#32899)
* chore(npm): update dependency exiftool-vendored (39.0.1 → 39.1.0)

* fix: lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
# Conflicts:
#	pnpm-lock.yaml
2026-11-05 20:35:38 +03:00
renovate[bot] 6851091403 chore(mise): update tool java (21.0.2 → 21.0.13+9.0.lts) (#32891)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-11-05 20:35:17 +03:00
Santo Shakil 11e9a4b4da fix(mobile): clear the app's cookies on logout (#32965) 2026-11-05 20:35:16 +03:00
renovate[bot] 9b5e1aae5b chore(container): update image grafana/grafana (13.2.4-ubuntu → 13.3.0-ubuntu) (#32896)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-11-05 20:35:16 +03:00
Santo Shakil 7aba6c3f88 feat(mobile): delete passkeys (#32785)
* feat(mobile): delete passkeys

* fix(mobile): refresh the passkey list from the store after a delete
2026-11-05 20:35:16 +03:00
Santo Shakil f727e8edb4 feat(mobile): rename passkeys (#32784)
* feat(mobile): rename passkeys

* fix(mobile): refresh the passkey list from the store after a rename

* fix(mobile): skip the name dialog after creating a passkey
2026-11-05 20:35:16 +03:00
Santo Shakil cfa416e612 feat(mobile): list passkeys (#32783)
* feat(mobile): list passkeys

* fix(mobile): show the passkey list as the server's passkeys

* fix(mobile): reword and align the passkey list, refresh it from the store
2026-11-05 20:35:16 +03:00
Santo Shakil 22e7b20d3e feat(mobile): login with passkey (#32782)
* feat(mobile): login with passkey

* feat(mobile): use the server feature level on the login page

* refactor(mobile): share the steps after a login

* password, OAuth and passkey logins end with one finishLogin
* OAuth now also connects the websocket, like the password login

* fix(mobile): passkey login through the shared login steps

* fix(mobile): build the login response through its constructor
2026-11-05 20:35:16 +03:00
Santo Shakil 28a52948a9 feat(mobile): passkeys page with new passkey (#32781)
* feat(mobile): passkeys page with new passkey

* feat(mobile): passkeys entry under settings

* show it in settings when logged in and passkeys are on
* remove it from the profile menu

* feat(mobile): use the server feature level for passkeys

* hide passkeys below the passkeys feature level, without asking the server
* keep the server's feature level on ServerVersion

* fix(mobile): passkeys as a settings section through the store

* fix(mobile): filter the settings sections in SettingSection

* fix(mobile): remove the passkeys description and use the settings padding
2026-11-05 20:35:16 +03:00