Alex Tran
b75d9b74b9
feat(plugin-core): add filterByAlbum workflow step
...
Adds a filterByAlbum core plugin method so workflows (e.g. the
AlbumAssetAdded trigger) can be scoped to specific albums. The step
checks the asset's album membership via the searchAlbums host function
and halts the workflow when the asset is not in any of the configured
albums (or, with inverse, when it is).
2026-06-04 04:03:01 +00:00
Alex Tran
72eaba6ee2
refactor(workflow): map AlbumAssetAdded trigger to AssetV1
...
Drop the AssetAlbumV1 workflow type and have the AlbumAssetAdded trigger
reuse the existing asset-aware AssetV1 type, so all current AssetV1
plugin methods work with it out of the box.
2026-06-04 01:51:36 +00:00
Alex Tran
57d77ad5da
Merge branch 'main' of github.com:immich-app/immich into asset-add-to-album-trigger
2026-06-03 20:42:06 -05:00
Timon
e94e22f3f8
fix(server): respect timezone in iso date string encoding ( #28810 )
2026-06-03 19:00:10 -04:00
Timon
2190aa72a8
refactor(server): zod int validation ( #28804 )
2026-06-03 18:21:07 -04:00
Timon
5c33eb3204
refactor(server)!: drop empty string to null conversion ( #28808 )
...
refactor(server): drop empty string to null conversion
2026-06-03 18:16:53 -04:00
Jason Rasmussen
e4352a7817
fix: error log on aborted uploads ( #28806 )
2026-06-03 12:47:38 -04:00
Daniel Dietzler
84c75d95c7
fix: migration order ( #28779 )
2026-06-02 21:33:13 +00:00
Alex Tran
18ec30c3b8
feat(workflow): add trigger for assets added to an album
...
Introduces the AlbumAssetAdded workflow trigger and a new AssetAlbumV1
workflow type that carries album context (id, owner, name, description)
alongside the asset, mirroring AssetPersonV1. A new AlbumAssetAdd event
is emitted from AlbumService when assets are added to an album (both
addAssets and addAssetsToAlbums), and WorkflowExecutionService queues
the workflow trigger with the album id so steps can act on a specific
album.
2026-06-02 20:30:31 +00:00
shenlong
9287fa08c6
fix!: unauthorized face creation ( #28561 )
...
* fix: unauthorized face creation
* review changes
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-06-02 22:44:11 +05:30
renovate[bot]
07f19d2caa
chore(deps): update base-image to v202606021219 ( #28771 )
2026-06-02 18:31:52 +02:00
Tim Jones
368cb7a4ad
feat: minimum face count per user ( #27452 )
...
* add user metadata table and use to filter persons in person.getAllForUser query
* update PersonRepository.getAllForUser query
* remove minFaces from PersonSearchOptions interface
* fix person.getAllForUser query
* update types and openapi specs
* add minFaces field to user settings page
* remove old arg from tests
* add e2e test to verify minimumFace user preference
* add i18n label and description for english
* update default min faces
* fetch minFaces ML default and use as per-user default in frontend
* update e2e tests
* fix bugs in people getAllForUser query
* update person getNumberOfPeople query to reflect correct number of people according to minFaces threshold
* updated mobile openapi specs?
* use subquery in coalesce instead of join
* remove out of scope query update
2026-06-02 18:05:55 +02:00
renovate[bot]
82db8be5ff
chore(deps): update dependency testcontainers to v12 ( #28763 )
2026-06-02 12:05:42 +00:00
renovate[bot]
40983b46c8
chore(deps): update dependency @vitest/coverage-v8 to v4 ( #28761 )
2026-06-02 13:37:34 +02:00
renovate[bot]
5dcdbf04ea
chore(deps): update base-image to v202605121138 ( #28760 )
2026-06-02 11:47:20 +02:00
Mert
138e2d9158
feat(web): hls player ( #28312 )
...
* update e2e
* hls player
* fix transcoding restart on explicit quality selection
* move level filtering to manager
* move init to manager declaration
* refactor commit on release
* these lints...
* fix seek sometimes being ignored
* fix panic downswitch
2026-06-01 15:49:57 -04:00
Mert
7eabac6702
feat(server): hls with real-time transcoding ( #28230 )
...
* hls implementation
* fix stale state after ffmpeg exit
2026-06-01 18:52:29 +00:00
renovate[bot]
412884fce3
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.5.18 ( #28749 )
2026-06-01 19:47:53 +02:00
Daniel Dietzler
c8a1d0e400
feat: release candidate support ( #28665 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-06-01 16:10:07 +02:00
Jason Rasmussen
da8505f61d
feat: more plugin triggers and methods ( #28690 )
2026-05-29 14:02:07 -04:00
Jason Rasmussen
96923f6115
refactor: plugin sdk types ( #28674 )
2026-05-28 22:04:15 +00:00
Jason Rasmussen
8783180cf3
refactor: plugin manifest ( #28673 )
2026-05-28 17:23:49 -04:00
Jason Rasmussen
134c0d4dfb
feat: search by album name and id ( #28672 )
2026-05-28 17:01:47 -04:00
Timon
26714f6bfe
fix(server): prevent locked assets from leaking to partners ( #28652 )
...
* fix(server): prevent locked assets from leaking to partners
* fix tests
2026-05-27 17:33:49 -04:00
Jason Rasmussen
1acc511b5c
chore: install mise in Dockerfile.dev ( #28649 )
2026-05-27 11:43:17 -04:00
Daniel Dietzler
452e88267a
fix: strip metadata from timeline responses for shared links without exif sharing ( #28644 )
2026-05-27 17:29:37 +02:00
Jason Rasmussen
e46f2843f7
refactor: asset create event ( #28647 )
2026-05-27 10:28:02 -04:00
Alex
8682be4774
feat: workflow template ( #28553 )
...
* wip: confirm before existing and disable/enable save button condition
* fix: get correct workflow detail
* wip: add back workflow summary
* wip: add back json editor
* wip: step property badge
* wip: redesign card flow
* wip: redesign card flow
* redesign workflow summary
* wworkflow summary styling
* wip
* drag and drop
* list redesign
* refactor
* refactor
* remove deadcode
* refactor
* insert steps
* push down when dropped
* feat: workflow template
* simplify
* move template to manifest
* feat: hash manifest file
* fix: template column
* fix: migration
* fix: workflow lookup
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-05-26 16:47:05 -04:00
Alex
0546bc900c
chore: workflow UI ( #28536 )
...
* wip: confirm before existing and disable/enable save button condition
* fix: get correct workflow detail
* wip: add back workflow summary
* wip: add back json editor
* wip: step property badge
* wip: redesign card flow
* wip: redesign card flow
* redesign workflow summary
* wworkflow summary styling
* wip
* drag and drop
* list redesign
* refactor
* refactor
* remove deadcode
* refactor
* insert steps
* push down when dropped
* fix: query by workflow id
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-05-26 14:06:20 -04:00
Mees Frensel
073dcc1fbe
chore(server): deprecate total field of asset search response ( #28551 )
2026-05-26 16:20:24 +02:00
Alex
fd7ddfef54
fix: plugin prod build typo ( #28566 )
2026-05-22 11:01:18 -05:00
Daniel Dietzler
0975b1599c
fix: remove stray migration ( #28565 )
2026-05-22 15:20:47 +00:00
renovate[bot]
92b6778d2d
fix(deps): update typescript-projects ( #28371 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-05-20 16:56:27 +02:00
renovate[bot]
85192bb110
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.5.11 ( #28522 )
2026-05-20 14:29:17 +00:00
renovate[bot]
d9ce3d2046
chore(deps): update dependency @types/node to ^24.12.4 ( #28490 )
2026-05-20 12:41:17 +02:00
Timon
4383473ed6
fix: cleanup nestjs-zod properties ( #28447 )
...
* fix: cleanup nestjs-zod properties
* lint
2026-05-18 15:31:08 -04:00
Jason Rasmussen
3d075f2bf8
feat: workflows & plugins ( #26727 )
...
feat: plugins
chore: better types
feat: plugins
2026-05-18 11:09:33 -04:00
Robert Deaton
e91c017dd0
fix(server): dedupe database backup jobs ( #28341 )
...
* fix(server): dedupe database backup jobs via jobId
#27268 shows backup jobs piling up in the queue across upgrades; one pending
backup is always enough.
* fix(tests): Avoid stale backup files from previous test runs being erroneously returned from createBackup
* fix(jobs): Use bullmq's deduplication over jobId to avoid failed jobs from blocking future executions.
---------
Co-authored-by: Robert Deaton <immich@rdeaton.space >
2026-05-14 20:59:15 -04:00
Nojus Gudinavičius
b0c9743d9a
feat(server): allow subpaths for machine learning URL ( #28427 )
...
This allows to use a machine learning server URL under a subpath,
such as "http://example.com/ml-server/ ".
2026-05-14 12:46:31 +00:00
Jason Rasmussen
fcea617313
fix: ignore icc profile make and model ( #28412 )
2026-05-13 12:07:35 -04:00
Jason Rasmussen
ad7aedb843
refactor: move plugins to packages ( #28389 )
2026-05-12 13:28:30 +00:00
renovate[bot]
ce292bdce9
chore(deps): update base-image to v202605051129 ( #28374 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 12:02:43 +02:00
Jason Rasmussen
15f3947ae6
chore: mise scripts ( #28367 )
2026-05-11 17:46:02 -04:00
Ben Beckford
e142e3aca7
feat: recently added assets page ( #28272 )
...
* feat(server): add ordering date option to time buckets
* feat(web): add recently added page
* feat(server): recently created assets in explore data
* feat(web): recently added in explore tab
* fix: recently added assets ordering
* fix(server): failing bucket test
* feat(web): improve recently added preview
* chore: update e2e explore/timeline tests
* chore: rename and refactor timeline ordering dates
* fix(web): invalid timeline option
* feat(mobile): recently added page
* fix(server): sync tests
* fix(mobile): resync assets to get uploadedAt column
* chore: rename assetorderby enum
* chore(mobile): formatting
* minor fixes
* stylings
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-05-11 21:35:10 +00:00
Brandon Wees
38438c8d9a
refactor!: remove asset faces from AssetResponseDto ( #27779 )
...
* refactor!: remove faces from `people` in AssetResposnseDto
* chore: tests
* chore: e2e generator
* chore: code review readonly
* chore: code review changes
* chore: cleanup
* fix: openapi
* chore: format
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-05-11 17:05:40 -04:00
Alex
a278c10c75
fix: mobile upload duration type ( #28362 )
2026-05-11 15:46:00 -05:00
renovate[bot]
2276443c56
fix(deps): update dependency kysely to v0.28.17 [security] ( #28363 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-11 22:38:25 +02:00
Jason Rasmussen
db589455f4
refactor: move cli to package folder ( #28356 )
2026-05-11 14:49:45 -04:00
renovate[bot]
7013cc0904
fix(deps): update dependency @opentelemetry/exporter-prometheus to ^0.217.0 [security] ( #28353 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-11 18:03:30 +00:00
renovate[bot]
dcaf7b4a65
fix(deps): update dependency @opentelemetry/sdk-node to ^0.217.0 [security] ( #28354 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-11 19:48:25 +02:00