Timon
f22836e1bf
refactor(server): describe check upload id as string ( #29274 )
2026-06-23 12:42:42 +02:00
github-actions
38920fc4ca
chore: version v3.0.0-rc.2
2026-06-18 23:20:14 +00:00
Timon
09d0380804
refactor(server): use zod time validation ( #29189 )
2026-06-18 11:56:02 +00:00
Timon
83091d2834
fix(server): allow non-utc datetime offsets ( #29186 )
2026-06-18 11:27:11 +00: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
Timon
3f2e51c5d4
refactor(server): use uuids in schemas ( #29140 )
2026-06-17 14:50:17 +02:00
github-actions
c9aa9ba711
chore: version v3.0.0-rc.1
2026-06-16 19:50:41 +00:00
Mees Frensel
d307ab60ca
fix: update datetimeRelative description to minutes instead of seconds ( #29137 )
2026-06-16 16:09:45 +02:00
Timon
ce59cc9241
docs(server): clarify AssetBulkUploadCheckItem.id is a correlation token ( #29141 )
2026-06-16 14:07:36 +00:00
Daniel Dietzler
e70a1163f3
fix: too strict cron expression validation ( #29138 )
2026-06-16 13:20:40 +00:00
github-actions
e4dbe777a0
chore: version v3.0.0-rc.0
2026-06-12 14:55:39 +00: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
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
Timon
5c38373808
refactor(server): allow -1 rating again ( #28886 )
2026-06-10 10:55:51 +02:00
Timon
9e453440e6
refactor(server): deprecate PUT routes in favor of PATCH ( #28859 )
...
* add patch routes and deprecate put
* gen client
2026-06-07 09:40:01 -04:00
Yaros
733373c0ca
feat(mobile): ocr support ( #26523 )
2026-06-05 04:29:03 +05:30
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](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
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
e2de8c7c53
refactor(server)!: remove changeExpiryTime ( #28816 )
...
* fix(mobile): clear shared link password
* fix(mobile): clear shared link description
* fix(mobile): clear shared link expiry
* refactor(server)!: remove changeExpiryTime
* fix(mobile): clear shared link expiry
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-06-04 08:35:45 +00:00
Timon
96d521e149
feat(mobile): add three-state field serialization ( #27231 )
...
* bump to v7.22.0 and update patching
* gen client
* migrate mobile call sites
2026-06-03 08:13:17 -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
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
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
Mert
65611bb860
chore(mobile): make openapi requests abortable ( #28692 )
...
make open-api requests abortable
2026-05-30 10:31:17 -05:00
Jason Rasmussen
da8505f61d
feat: more plugin triggers and methods ( #28690 )
2026-05-29 14:02:07 -04:00
shenlong
0d6cce4a5b
fix: api repositories using stale endpoint ( #28667 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-28 16:44:11 -05: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
Daniel Dietzler
452e88267a
fix: strip metadata from timeline responses for shared links without exif sharing ( #28644 )
2026-05-27 17:29:37 +02: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
Mees Frensel
073dcc1fbe
chore(server): deprecate total field of asset search response ( #28551 )
2026-05-26 16:20:24 +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
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
Jason Rasmussen
7837d40f57
chore: move sdk to packages ( #28350 )
2026-05-11 13:37:10 -04:00
Mert
d788169bf3
chore(server)!: remove libopus enum ( #28325 )
2026-05-11 08:02:57 -04:00
Jason Rasmussen
25a6a38b30
chore: use mise ( #28298 )
2026-05-08 15:21:33 -04:00
Timon
1fcc2b704b
feat(server)!: add isOwned filter to albums API ( #28213 )
...
* feat(server)!: add owned filter to albums API
BREAKING CHANGE: GET /albums with no parameters now returns all accessible albums (owned + shared-with-me) instead of only owned albums.
* document tri-state matrix
* web impl
* collapse to single method and handover branching to sql
* dedupe
* verify that owned, shared, and notShared counts are mapped independently from their respective queries
* refactor(server): add select:['id'] overload to albumRepository.getAll
Avoid fetching full album rows (with albumUsers/sharedLinks subqueries) in map.service where only album IDs are needed.
* focus relevant test filters
* fmt
* Revert "verify that owned, shared, and notShared counts are mapped independently from their respective queries"
This reverts commit 47aab458192c766de4662aada5a6841b091d2a80.
* sync sql
* Revert "document tri-state matrix"
This reverts commit a5b2355d0c6a084f2c021d517bf5ee80123d108c.
* address review comments
* inline shared condition and return as ternary
* sync sql
* use [...albums].sort
Array.toSorted() is not supported in Chrome 109
* use isShared and isOwned nomenclature
* fix e2e tests
* add params to sql query
2026-05-07 12:13:07 -04:00
shenlong
dafe9d7966
chore: pump version ( #28231 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-05 16:27:04 -05:00
Timon
d4f29ab6ac
fix(server): validate duplicate group ownership before dismissal ( #28221 )
2026-05-04 12:51:54 +02:00
Timon
3decc864b5
refactor(server)!: structured validation error responses ( #28204 )
...
* refactor(server)!: structured validation error responses
* refactor(server): clarify comment on removing duplicate HTTP response fields
* enhance validation error tests
* make path and message required
* fmt
* fix e2e test
* fmt
* feat: enhance error handling in getServerErrorMessage function
2026-05-04 00:00:03 -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
Timon
013ea37a0d
refactor!: change number to integer types ( #27912 )
...
* refactor!: change number to integer types
* fix oversight
2026-04-28 11:25:03 -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
Jason Rasmussen
a16d233a0c
chore(web): sort imports ( #27922 )
...
* feat: sort imports
* fix: something?
2026-04-21 14:51:38 -04:00