Commit graph

2083 commits

Author SHA1 Message Date
Jordan Brock
79c4c00f70
feat(web): tag renaming v2 (#27909)
* implement updated rename tag feature

* Fix tag update handler

* Ensure toast displays updated tag name

* Ensure toast displays updated tag name

* Handle updates to tag closure table, prevent slash in API filename, test case updates

* delete child tags on parent delete

* Update frontend for better handling of nested tags

* pr checklist fixes

* fix unit test for tag controller

* Hide path for top-level tags

* regenerate SQL files

* name updates optional for tag update operations

* e2e tests for new tag api changes

* changes from code review, additional test coverage

* test fixes, web component refactor

* test assets

* test asset updates

* open-api rebuild

* update unit tests

* fix tag dto tests

* Update web/src/lib/modals/TagEditModal.svelte

Fix missing color bug

Co-authored-by: Ray <3608878+Pecacheu@users.noreply.github.com>

* fix tag e2e test

* remove closure table bug fixes

* remove nullish from tag name update schema

* regenerate openapi and sql

* fix test and e2e test

* simplify tag repository update process

* minor fix and sql regenerate

* fix tests, regen open-api, update dto

* Remove unused function

* Remove accidental test asset ref

* re-add test assets

* pin submodule to main branch commit

* Update test cases based on feedback

* Server fixes based on feedback

* regenerate sql

---------

Co-authored-by: Ray <3608878+Pecacheu@users.noreply.github.com>
2026-08-21 14:55:11 -04:00
Jason Rasmussen
caea849fee
feat: asset file apis (#25900)
* feat: asset file endpoints

* Update server/src/controllers/asset-file.controller.ts

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

* Update server/src/controllers/asset-file.controller.ts

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-08-21 13:55:25 +00:00
Daniel Dietzler
8ae98f2a04
fix: quote database owner in restore (#30905) 2026-08-21 15:11:20 +02:00
Holegots
57ce9b2221
fix(server): correct asset dimensions from exif metadata (#29244)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-21 13:32:17 +02:00
Patryk Gęborys
8ce6b18563
fix(server): library exclusion patterns can soft-delete assets outside their directory (#30850)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-21 12:28:12 +02:00
Diogo Correia
c9776fb990
fix(web): download archives via html POST forms (#30021)
* fix: download archives via html POST forms

* refactor: fix css of download panel, add translations and toasts

* style: run lint, formatter, check

* chore: generate open-api specs

* refactor(web): simplify download manager, use SvelteMap

* refactor(server): parse fields from x-www-form-urlencoded request

* refactor: move content-disposition to ImmichReadStream

* Pass asset ids as a comma-separated string

This fixes a bug where the 1000 parameter limit is being hit when
downloading 1000+ assets.

* Add download controller test

* Fix lint warnings
2026-08-20 20:58:41 -04:00
Sacha Brouté
c7f6197e75
feat: add oauth account management url (#30873) 2026-08-20 21:31:34 +00:00
Jason Rasmussen
11b1aa5ecf
feat: cluster groups (#30739)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-20 20:03:00 +02:00
Jason Rasmussen
e529557160
feat: new config endpoints (#30881)
* refactor: config endpoints

* chore: pr feedback
2026-08-20 11:46:17 -04:00
Jason Rasmussen
47c5a3dbf6
refactor: api key response dto (#30887) 2026-08-20 11:23:12 -04:00
Yaros
7165eb61eb
fix(server): unicode email validation (#30871) 2026-08-19 16:40:10 -04:00
renovate[bot]
bd2cbb751b
fix(deps): update sharp to ^0.35.3 (#29132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-19 15:49:10 -04:00
Jason Rasmussen
7cd0a7d30c
refactor: e2e tests (#30870) 2026-08-19 14:31:57 -04:00
Jason Rasmussen
db3b31709d
refactor: library controller tests (#30863) 2026-08-19 09:54:08 -04:00
Timon
3c279983bc
fix(server): Sort stacked assets by creation date (#24033)
* feat: add ordering by file creation date in asset and stack repositories

* refactor: update asset aggregation to include JSON formatting and ordering by creation date

* refactor: add ordering by file creation date in asset aggregation queries

* fix: types

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-08-18 21:38:58 +00:00
Chandan P
17d4e39af3
fix(server): do not throw on unparsable DB_URL when building backup arguments (#30759)
Closes #30331

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-08-18 17:17:47 -04:00
Brandon Wees
93d2d30fe0
feat: rotate an API key (#30801)
* feat: rotate an API key

* fix: test response

* chore: create new api key scope

* chore: code review
2026-08-18 16:07:39 -04:00
Daniel Dietzler
03da1ba108
chore: single line block comments (#30852) 2026-08-18 17:55:26 +02:00
Yaros
80a90fabf3
fix(server): update ocr & faces after asset edit (#29303)
* fix: update ocr & faces after asset edit

* chore: remove client-side refresh

* fix(server): sync asset OCR visibility changes

* chore: prettier format

* test: missing updatedAt

* chore: remove comment

* chore: fix test

* chore: update migration timestamp

* chore(server): AssetOcrSyncReset

* chore: migration timestamps

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-18 14:32:21 +00:00
enol5423
618dc0d397
fix(server): respect backpressure in the sync stream (#30764)
Co-authored-by: enol5423 <your-email@example.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-18 13:30:23 +00:00
Priyanshu
b0a9468da7
fix(server): guard createAll against empty values list (#30837)
Co-authored-by: priyanshuANDcoad <priyanshu23154050@akgec.ac.in>
2026-08-18 13:56:37 +02:00
renovate[bot]
11755e5a53
chore(deps): update dependency eslint-plugin-unicorn to v73 (#30844)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-18 12:00:16 +02:00
Ben Beckford
f9c05af45f
fix(server): migration order (#30774) 2026-08-14 21:10:28 +00:00
Jason Rasmussen
14241ac7bc
chore(server): remove unused code (#30772)
chore(server): remove unnused code
2026-08-14 16:58:14 -04:00
Daniel Dietzler
6a61901e79
fix: shared link create validation (#30762) 2026-08-14 22:04:32 +02:00
Ben Beckford
447cc40a50
feat: workflow logging (#29878)
* feat: workflow logging

* chore: update sql and openapi patch

* chore: include id in workflow log entries

* chore(server): update sql and lint

* chore(mobile): remove openapi files

* chore(web): lint

* chore: clean up workflow logging

* chore(server): add runId to workflow logs

* chore(server): store workflow results as enum
2026-08-13 19:18:24 -07:00
ihmcsm
af33a78d18
fix: typos in debug log messages (#30742) 2026-08-13 09:30:19 +00:00
Ben Beckford
a939561e70
feat: workflow asset tag trigger/filter/action (#29043)
* feat: workflow asset tag trigger and filter

* feat(web): show tag names in workflow editor

* fix(web): tag picker in schema config editor

* fix: invalid plugin manifest

* chore: update workflow method wrapper type

* chore: update tag filter method declaration

* feat: workflow action to add tags to assets
2026-08-12 16:26:03 -07:00
Daniel Dietzler
199723261c
fix: owner cascade delete album (#30692) 2026-08-11 23:05:18 +02:00
Daniel Dietzler
a55dc80a56
chore: enforce strict equality checks (#30718) 2026-08-11 13:15:51 -04:00
Jason Rasmussen
1b8cbaab97
refactor(server): migrate e2e auth/validation tests to controller specs (#30715)
Co-authored-by: Claude (thor) <claude@thor.local>
2026-08-11 11:02:14 -04:00
Jason Rasmussen
ee525f159b
refactor: queue in batches (#30698) 2026-08-11 10:01:42 -04:00
Jason Rasmussen
927b4d0ea2
refactor: find or fail (#30697) 2026-08-11 09:27:35 -04:00
Daniel Dietzler
5ad1e4e0f7
fix: medium tests dependencies (#30612) 2026-08-07 11:36:20 +02:00
Daniel Dietzler
0d7147dcec
fix: metadata extraction as LensModel can be a float (#30512) 2026-08-03 18:18:24 +02:00
Santo Shakil
cee08a2320
fix(server): remove the asset row when an upload fails after creating it (#30349) 2026-08-03 14:59:05 +02:00
Gueye Papa Djadji
04453b7206
fix(server): reject invalid or deleted user when creating a partner (#30431) 2026-08-03 12:56:00 +02:00
bo0tzz
f1a90b7f36
feat: log hint about downgrades when migration is missing (#30493) 2026-08-03 11:06:38 +02:00
renovate[bot]
36cb86c886
fix(deps): update dependency js-yaml to v5 [security] (#30440)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-31 13:24:39 +02:00
Jason Rasmussen
0f4dddaf84
fix: migration order (#30424) 2026-07-30 15:55:21 -04:00
Giacomo Pinato
6b6058c463
feat: store null instead of empty string for album.description (#30123)
Addresses the first column of issue #28832: album.description now stores
and returns null instead of an empty string.

Co-authored-by: Giacomo Pinato <giacomo.pinato@gmail.com>
2026-07-30 19:41:49 +00:00
Devesh Kolte
9732bebb55
fix(server): store null instead of empty string for user password (#30223) 2026-07-30 15:19:58 -04:00
bo0tzz
a316ba35ca
fix: shared check for server setup availability (#30311)
* fix: shared check for server setup availability

* chore: add medium test

* feat: require @Authenticated decorator everywhere

* fix: lints
2026-07-30 15:12:25 -04:00
bo0tzz
b468459b1a
chore: add test for admin controller permissions (#30316) 2026-07-28 15:44:51 +02:00
Daniel Dietzler
f68815e35f
fix: calendar heatmap api key permissions (#30314) 2026-07-28 12:16:59 +02:00
Daniel Dietzler
6c86d39f6d
fix: calendar heatmap permissions (#30310) 2026-07-28 11:33:10 +02:00
bo0tzz
3606144190
chore: clarify MediaRepository extract logging (#30249) 2026-07-26 13:02:57 -04:00
bo0tzz
4a5f13d0e5
fix: don't skip person thumbnail generation if ML is disabled (#30194) 2026-07-24 10:06:32 -04:00
Jason Rasmussen
acc7e6b299
fix: min faces user preference (#30177) 2026-07-23 17:06:09 -04:00
Timon
f24a128319
feat(server): new search schemas and query builders (#28686) 2026-07-22 22:33:23 +00:00