Ben Beckford
351be95769
feat: memories view ( #28675 )
...
* wip web memories view
* paginate searchMemories
* improve memories ui
* feat(mobile): memories view
* improve memories web ui
* fix(web): avoid unnecessary memory refreshes
* refactor(web): move timline memory manager filter
* fix(web): memories infinitely loading on 0 results
* fix(web): memories resetting
* feat(web): animated memory previews
* feat(web): memory page dark styling
* chore(mobile): fix failing memory lane tests
* chore(mobile): remove old import
* chore(e2e): fix failing memory lane tests
* chore(server): revert searchMemories changes
* chore(server): lint
* chore(mobile): fix bad merge
* chore(e2e): fix memory ui tests
* chore(web): rename /memory to /memories
* chore(mobile): linting
* chore(web): linting
* fix(web): prevent duplicate memory page loading
* fix(web): lint
* fix(web): memories page improvements
* chore(mobile): lint
* fix(mobile): fix translations
* fix(mobile): build errors
* fix(web): prevent memories from infinitely loading
* chore(e2e)): fix failng memory viewer test
* chore(web): clean up types in memory manager
* chore(web): lint
* feat: update list and detail memory page layouts
* onlyFavorites through drift
* rename to get all
* mobile: use widgetWhen in memory list page
* remove redundant check
* fix: e2e
---------
Co-authored-by: Timon <mail@timonrieger.de>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-24 19:16:33 -05:00
shenlong
6b7b0fe3a6
fix: remove partner assets from existing memories ( #28950 )
...
* fix: remove partner assets from existing memories
* move tests to be medium tests
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-24 14:55:47 +00:00
Timon
2feb889b9c
chore(server): update zod to 4.4.3 and nestjs-zod to 5.5.0 ( #30532 )
2026-08-24 10:59:22 +02: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
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
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
Daniel Dietzler
03da1ba108
chore: single line block comments ( #30852 )
2026-08-18 17:55:26 +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
Jason Rasmussen
14241ac7bc
chore(server): remove unused code ( #30772 )
...
chore(server): remove unnused code
2026-08-14 16:58:14 -04: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
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
a55dc80a56
chore: enforce strict equality checks ( #30718 )
2026-08-11 13:15:51 -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
Timon
f24a128319
feat(server): new search schemas and query builders ( #28686 )
2026-07-22 22:33:23 +00:00
renovate[bot]
aa08dad1f5
chore(deps): update dependency eslint-plugin-unicorn to v72 ( #30092 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 15:33:46 +02:00
Rust
1b4d41324e
fix(server): file uploads for files with extension only filenames ( #30024 )
...
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 11:57:28 +00:00
renovate[bot]
df970da59e
chore(deps): update dependency eslint-plugin-unicorn to v70 - abandoned ( #29684 )
...
* chore(deps): update dependency eslint-plugin-unicorn to v70
* fix: linting
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-20 23:47:14 -04:00
Mert
89b0d906e8
fix(server): set hvc1 tag when using hwa ( #29908 )
...
fix hvc1 check
2026-07-14 11:03:30 -04:00
Daniel Dietzler
053a52aec8
fix: iso date parsing for three digit years ( #29739 )
2026-07-08 14:53:16 -05:00
Mert
69d568f289
feat(server): hls variant configuration ( #29613 )
...
* configure variants
* openapi
* dynamic level
* unnecessary width/height fields
* add web config
* allow 1440p and 2160p
* more helpful descriptions
* simplify level picker
* formatting
* integer instead of number
2026-07-06 14:57:48 -04:00
Lukas Schaefer
5645149e09
fix: downmix audio to stereo to fix broken channel layout ( #29485 )
...
* fix: downmix audio to stereo to fix broken channel layout
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
* add todo
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
---------
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2026-07-03 10:55:12 -04:00
Ben Beckford
237734bb26
feat(web): recently added link in sidebar ( #29039 )
...
* feat(web): recently added link in sidebar
* chore(mobile): update openapi patches
2026-07-01 23:12:50 +00:00
Daniel Dietzler
b4cc406a3f
fix!: search endpoints visibility can be omitted ( #29385 )
2026-06-29 22:00:02 +02:00
Anthony Clerici
c0bf5a4c56
fix(server): use VBR for QSV so the max bitrate is respected ( #29240 )
...
* fix(server): use VBR for QSV so the max bitrate is respected
* update test
2026-06-22 09:56:20 -04:00
Daniel Dietzler
fb798a8f29
chore: remove person workflow elements ( #28974 )
2026-06-10 18:49:33 +02:00
joojoooo
164cda87a3
fix(web): use irot/imir tags for HEIF Orientation ( #27820 )
...
* fix(web): use irot/imir tags for HEIF Orientation
* ignore Exif Orientation for HEIF images per MIAF standard compliance
* add Rotation and Mirroring to exiftool numericTags
* add isHeifBasedImage function to detect HEIF-based image extensions
* add getHeifBasedOrientation method to map irot/imir tags to ExifOrientation
* removed mirroring, simplified code
* Removed "Based" in "heifBased"
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-06-08 09:33:28 -04:00
Jason Rasmussen
9043bc8435
fix: error handling ( #28843 )
2026-06-04 16:19:16 -04:00
Abhijeet Sanjiv Bonde
b3d49045de
feat: user upload heatmap ( #28593 )
...
* Feat - Heatmap
* Implemented Comments to prettify and code cleanup
* fixing code to pass cases.
* fixing errors for OpenAPI Clients
* Improving the code.
* Fix code
* Rerun generated client check
* Rerun generated client
* feat: command for user pages (#28554 )
* fix(web): timeline stuttering with many assets in 1 day (#28509 )
* fix(web): timeline stuttering with many assets in 1 day
* cache isInOrNearViewport per day
* skip inOrNearViewport check on first run
* chore(ml): allow insightface 1.x (#28595 )
* chore(ml): allow insightface 1.x
The new insightface 1.0 release appears to have no breaking code changes nor relevant license changes ([before](2a78baec42/README.md ), [after](70f3269ea6/README.md ), c.f. fd7ddfef54/machine-learning/README.md ), and it works on my machine.
* Update uv.lock
* please excuse my incompetence
* Triggering the actions.
* bad merge
* Fix code
* Code clear
* Resolve conflict
* Resolve conflict
* Resolve conflict
* Resolve errors
* Resolve errors
* Resolve errors more
* chore: clean up
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Ben Beckford <ben@benjaminbeckford.com>
Co-authored-by: Aaron Liu <aaronliu0130@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-06-04 15:36:09 -04:00
Mees Frensel
99281de6ab
refactor!: disallow star rating < 1 ( #27896 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: timonrieger <mail@timonrieger.de>
2026-06-04 17:06:28 +00:00
Timon
e94e22f3f8
fix(server): respect timezone in iso date string encoding ( #28810 )
2026-06-03 19:00:10 -04:00
Jason Rasmussen
e4352a7817
fix: error log on aborted uploads ( #28806 )
2026-06-03 12:47:38 -04: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
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
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
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
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
Jason Rasmussen
3d075f2bf8
feat: workflows & plugins ( #26727 )
...
feat: plugins
chore: better types
feat: plugins
2026-05-18 11:09:33 -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
Mert
01712cf0a7
fix(server): av typing ( #28223 )
...
* fix av typing, move fixtures to stub file
* fix tests
2026-05-04 09:04:29 -04:00
Mert
f1d8ab8aae
feat(server): track video metadata ( #28023 )
...
* track video metadata
* earlier duration check
* revert colorspace change
* duplicate constant
* formatting
* linting
* add comments
* redundant variable
* simplify tests
* use totalDuration instead of format.duration
* medium tests
* install ffmpeg
* install noble
* update test-assets commit
* make timeBase non-nullable
* linting
* use proper smallint
* add ffmpeg to mise
* simplify duration
* regenerate migration
2026-05-01 17:03:49 +00:00
Pedro Pinhão
b60e9c6771
fix(server): selectively apply metadata bitstream filter for video thumbnails ( #28162 )
2026-04-30 23:05:08 -04:00
Mert
b554664791
chore!: duration in milliseconds ( #28003 )
...
* server changes
* openapi
* web changes
* mobile changes
* assume 3.0 client
* deprecate
* review feedback
* update medium tests
* linting
2026-04-30 09:44:27 -04:00
Mert
97c62136b7
chore(server)!: drop pgvecto.rs support ( #28159 )
...
drop pgvecto.rs
2026-04-30 09:40:38 -04:00
Daniel Dietzler
4bfb8b36c2
chore!: migrate album owner to album_user ( #27467 )
...
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-04-22 16:52:23 +02:00
Aki Hakune
be1b9a5f67
feat(server): add MPO file type support ( #27963 )
...
* feat(server): add MPO file type support
* fix(server): document description error
2026-04-20 17:45:53 -04:00
Jason Rasmussen
94a34436a3
chore: remove unused packages & code ( #27925 )
2026-04-20 08:39:46 -04:00