bo0tzz
43848a7d68
fix: locking around concurrency-1 jobs ( #28410 )
...
* fix: locking around concurrency-1 jobs
* fix: no lock on queue duplicates
(cherry picked from commit 477452b5c51ca71ecdf74205e0004eaec4e18874)
2026-10-22 05:19:10 +03:00
renovate[bot] and Daniel Dietzler
743e555a1b
fix(deps): update dependency bullmq to v6 ( #31914 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-10-19 20:31:26 +03:00
Jason Rasmussen
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
ed3073624b
fix: memories mobile sync for older clients ( #32167 )
...
fix: memories mobile sync for older clients (#32150 )
(cherry picked from commit 8d377bfef5a0c9d840bf2c19d155f9779387baeb)
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com >
2026-10-06 14:10:38 +00:00
immich-push-o-matic[bot] and Jason Rasmussen
b20bc5ed82
feat: auto-sync name changes to connected users ( #31931 )
...
feat: auto-sync name changes to connected users (#31923 )
* feat: auto-sync name changes to connected users
* fix: rename to faceId
* fix: pr feedback
* fix: mobile build
(cherry picked from commit aec7c0d97bd6679b2b300e72e870b83c5ef13c85)
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-09-30 07:53:02 +00:00
c12d5e6d35
feat: people management ( #31620 )
...
Co-authored-by: Jason Rasmussen <jason@rasm.me >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-09-28 21:29:15 +02:00
Alex
d6d0947383
feat: birthday memories ( #30831 )
2026-09-22 04:30:43 -05:00
Jason Rasmussen
54e7ffa4e6
feat: asset face v3 ( #31591 )
2026-09-16 16:27:01 -04:00
Jason Rasmussen
99fd561144
chore: transition to nullable user.oauthId ( #31560 )
2026-09-15 09:33:15 -04: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 and Daniel Dietzler
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
Jason Rasmussen and Daniel Dietzler
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
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
renovate[bot] and Daniel Dietzler
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
Timon
f24a128319
feat(server): new search schemas and query builders ( #28686 )
2026-07-22 22:33:23 +00: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
Mert
7ef2de6b53
feat(server): add hls playlist hint ( #29150 )
...
* add playlist hint
* update api
* unused import
* update crf in tests
2026-06-17 19:02:10 -04:00
Mert
aa126e377c
fix(server): add hint header for segment after init.mp4 ( #28867 )
...
* add hint header for segment after init.mp4
* use zod
* actually validate
* update openapi
* linting
2026-06-10 19:18:36 -04:00
Paul Makles and Daniel Dietzler
74878628c8
feat: integrity check jobs (missing files, untracked files, checksums) ( #24205 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
Signed-off-by: izzy <me@insrt.uk >
2026-06-10 21:02:27 +02:00
Daniel Dietzler
fb798a8f29
chore: remove person workflow elements ( #28974 )
2026-06-10 18:49:33 +02:00
Yaros
733373c0ca
feat(mobile): ocr support ( #26523 )
2026-06-05 04:29:03 +05:30
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](https://github.com/deepinsight/insightface/blob/2a78baec428354883e0cda39c54b555a5ed8358a/README.md ), [after](https://github.com/deepinsight/insightface/blob/70f3269ea628d0658c5723976944c9de414e96f8/README.md ), c.f. https://github.com/immich-app/immich/blob/fd7ddfef54cdf2b6256c4fc08bc5ff3f86176775/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
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
Jason Rasmussen
da8505f61d
feat: more plugin triggers and methods ( #28690 )
2026-05-29 14:02:07 -04:00
Jason Rasmussen
8783180cf3
refactor: plugin manifest ( #28673 )
2026-05-28 17:23:49 -04: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 and Alex
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
d788169bf3
chore(server)!: remove libopus enum ( #28325 )
2026-05-11 08:02:57 -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
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
Mert and Copilot
bf32864644
feat(server): video streaming table definitions ( #28147 )
...
* video streaming table definitions
Co-authored-by: Copilot <copilot@github.com >
* update sql
* tetris
* use enum
Co-authored-by: Copilot <copilot@github.com >
* fix column name
---------
Co-authored-by: Copilot <copilot@github.com >
2026-04-29 15:48:15 +00:00
Timon and Jason Rasmussen
92634f923b
refactor(server)!: remove redundant error and statusCode fields from error responses ( #28140 )
...
* refactor(server)!: remove redundant error and statusCode fields from error responses
* use enum
* enhance response management
* chore: clean up header
* fix: chaining
* refactor: handle error
* fix e2e tests
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-04-28 17:54:54 -04:00
Timon
96b6165bd3
refactor(server)!: move correlationId to X-Correlation-ID response header ( #28139 )
2026-04-28 13:07:39 -04:00
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
Jason Rasmussen
94a34436a3
chore: remove unused packages & code ( #27925 )
2026-04-20 08:39:46 -04:00
Jason Rasmussen
d410131312
chore!: remove old timeline sync endpoints ( #27804 )
2026-04-15 13:58:48 -04:00
Jason Rasmussen
e1a84d3ab6
refactor!: remove replace asset ( #27022 )
2026-04-14 20:21:05 -04:00
Timon
7d8f843be6
refactor!: migrate class-validator to zod ( #26597 )
2026-04-14 23:39:03 +02:00
Zack Pollard
352f6ecc28
fix(server): add rate limit and deduplication to version check ( #27747 )
2026-04-13 12:35:46 +00:00
Zack Pollard
6a361dae72
fix(server): use randomized cron for version check scheduling ( #27626 )
...
Also removes unnecessary rate limit
2026-04-08 19:15:38 +01:00
Jonathan Jogenfors and Jason Rasmussen
22bf7c2005
feat(server): add checksum algorithm field ( #26573 )
...
* feat: add checksum algorithm field
* fix comments
* chore: rename migration
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-03-26 18:20:25 +00:00
Brandon Wees
f3b7cd6198
refactor: move encoded video to asset files table ( #26863 )
...
* refactor: move encoded video to asset files table
* chore: update
2026-03-12 16:15:21 -04:00
Sergey Katsubo and mertalev
4a384bca86
fix(server): opus handling as accepted audio codec in transcode policy ( #26736 )
...
* Fix opus handling as accepted audio codec in transcode policy
Fix the issue when opus is among accepted audio codecs in transcode policy
(which is default) but it still triggers transcoding because the codec name
from ffprobe (opus) does not match `libopus` literal in Immich.
Make a distinction between a codec name and encoder:
- codec name: switch to `opus` as the audio codec name. This matches what ffprobe
returns for a media file with opus audio.
- encoder: continue using the `libopus` encoder in ffmpeg.
* Add unit tests for accepted audio codecs and for libopus encoder
* Add db migration for ffmpeg.targetAudioCodec opus
* backward compatibility
* tweak
* noisy logs
* full mapping
* make check happy
* mark deprecated
* update api
* indexOf
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2026-03-07 13:08:42 -05:00
Brandon Wees
3c9fb651d0
feat(server): SyncAssetEditV1 ( #26446 )
...
* feat: SyncAssetEditV1
* fix: audit table import
* fix: sql tools table fetch
* fix: medium tests (wip)
* fix: circ dependency
* chore: finalize tests
* chore: codegen/lint
* fix: code review
2026-02-25 18:12:41 +00:00
Brandon Wees
e633bc3f24
fix: missing deletedAt and isVisible columns on mobile ( #26414 )
...
* feat: SyncAssetV2
* feat: mobile sync handling
* feat: request correct sync object based on server version
* fix: mobile queries
* chore: sync sql
* fix: test
* chore: switch to mapper
* fix: sql sync
2026-02-23 09:50:54 -05:00