izzy
5ded6f89b7
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-06-17 15:19:40 +01: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
izzy
21f6b0a407
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
...
Signed-off-by: izzy <me@insrt.uk >
2026-06-16 13:26:04 +01: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
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
izzy
cf6cbfdcd6
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-06-01 10:04:33 +01: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
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
izzy
0cec4f3bd8
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-05-18 16:53:16 +01:00
izzy
a41aa623da
chore: oapi
2026-05-18 16:32:30 +01:00
izzy
cb87a39b3a
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-05-18 16:32:16 +01: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
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
Mert
d788169bf3
chore(server)!: remove libopus enum ( #28325 )
2026-05-11 08:02:57 -04:00
izzy
b54fe0bb3b
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-05-08 14:00:20 +01: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
94a34436a3
chore: remove unused packages & code ( #27925 )
2026-04-20 08:39:46 -04:00
izzy
425abe510a
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-04-20 10:55:40 +01:00
LJspice
b8591cb591
feat(server): add OIDC logout URL override option ( #27389 )
...
* feat(server): add OIDC logout URL override option
- Added toggle and field consistent with existing mobile redirect URI override.
- Existing auto-discovery remains default.
- Update tests and docs for new feature.
* fix(server): changes from review for OIDC logout URL override
- Rename 'logoutUri' to 'endSessionEndpoint'
- Remove toggle, just use override if provided
- Moved field in settings UI
2026-04-18 04:18:21 +00:00
sparsh985
55f2b3b6a0
feat(server): add configurable OAuth prompt parameter ( #26755 )
...
* feat(server): add configurable OAuth prompt parameter
Add a `prompt` field to the OAuth system config, allowing admins to
configure the OIDC `prompt` parameter (e.g. `select_account`, `login`,
`consent`). Defaults to empty string (no prompt sent), preserving
backward compatibility.
This is useful for providers like Google where users want to be prompted
to select an account when multiple accounts are signed in.
Discussed in #20762
* chore: regenerate OpenAPI spec and clients for OAuth prompt field
* Adding e2e test cases
* feat: web setting
* feat: docs
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-04-17 21:20:07 +00:00
Jason Rasmussen
2f8be45fe0
chore!: remove /api/server/theme endpoint ( #27880 )
...
chore: remove server/theme endpoint
2026-04-17 08:30:03 -04:00
Mees Frensel
7d181f0686
fix!: set duration to null when not present ( #26982 )
2026-04-17 11:57:10 +02:00
bo0tzz
3356e81c85
fix!: do not allow insecure oauth requests by default ( #27844 )
...
* fix!: do not allow insecure oauth requests by default
* fix: format
* fix: make open-api
* fix: tests
* nit: casing
* chore: migration to allow insecure if current oauth uses http
2026-04-16 10:11:58 -04:00
izzy
75025bb6be
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-04-16 12:04:38 +01:00
Jason Rasmussen
a69eecf3bc
chore!: remove without assets ( #27835 )
...
* chore!: remove without assets
* fix: linting and e2e
---------
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-04-15 18:34:22 -04:00
Jason Rasmussen
792cb9148b
chore!: rename API key schemas ( #27828 )
...
chore!: rename API schemas
2026-04-15 15:58:26 -04:00
Daniel Dietzler
8ee5d3039a
chore!: remove deviceId and deviceAssetId ( #27818 )
...
chore: remove deviceId and deviceAssetId
2026-04-15 15:00:33 -04:00
Jason Rasmussen
d410131312
chore!: remove old timeline sync endpoints ( #27804 )
2026-04-15 13:58:48 -04:00
Brandon Wees
6dd6053222
feat: mobile editing ( #25397 )
...
* feat: mobile editing
fix: openapi patch
this sucks :pepehands:
chore: migrate some changes from the filtering PR
chore: color tweak
fix: hide edit button on server versions
chore: translation
* chore: code review changes
chore: code review
* sealed class
* const constant
* enum
* concurrent queries
* chore: major cleanup to use riverpod provider
* fix: aspect ratio selection
* chore: typesafe websocket event parsing
* fix: wrong disable state for save button
* chore: remove isCancelled shim
* chore: cleanup postframe callback usage
* chore: clean import
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2026-04-15 09:26:40 -05:00
izzy
77f9e87bd3
feat: yucca integration
2026-04-15 15:17:19 +01:00
Jason Rasmussen
5f5e3344d5
chore!: remove unused token response param ( #27805 )
2026-04-15 00:58:00 -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
Afonso Mendonça Ribeiro
95c1f0efeb
fix: timestamp handling for database backup in Web UI ( #27359 )
...
* Fix #26502 : Fix timestamp handling for database backup in Web UI
Frontend parsed backup timestamps as UTC, but they were in the
server's local timezone, causing wrong relative times.
Add `timezone` field to DatabaseBackupDto to expose server timezone.
Update frontend to parse timestamps using this timezone.
Convert timestamps to user's local timezone before rendering.
Fallback to browser timezone if server timezone is missing.
Ensures correct relative time display in Web UI.
* fix: regenerate open-api types and remove custom backup type
- Ran `make open-api` to update types based on backend changes
- Removed custom BackupWithTimezone type in MaintenanceBackupsList
- Updated timezone props to use the newly generated native type
* fix: simplify timezone handling for database backups
- Updated DatabaseBackupDto to make timezone a required property
- Removed manual DateTime.local().zoneName fallbacks
- Cleaned up type casts after regenerating OpenAPI types
* fix: Add missing newline at end of spec file
2026-04-06 17:27:48 +02:00