Commit graph

1989 commits

Author SHA1 Message Date
Santo Shakil
8e8057a327 fix(server): always emit AssetCreate, don't stack a trashed asset 2026-06-20 00:11:58 +06:00
Santo Shakil
263b812ac3 feat(mobile): stack ios burst photos
ios only lets you edit the burst cover and only that one backed up, so the
other frames got lost. now all the frames upload and stack under the cover.
added a keepPrimary flag on the server so a frame joining the stack cant
steal the cover.
2026-06-20 00:05:44 +06:00
Santo Shakil
c6d83ed586 fix chain resume over deleted remotes and revert reporting 2026-06-20 00:05:02 +06:00
Santo Shakil
65a7b49a91 feat(mobile): stack original + edited photo on ios 2026-06-20 00:05:02 +06:00
Daniel Dietzler
805bb84877
fix: defensive album owner migration (#29200) 2026-06-18 23:51:38 +02:00
Daniel Dietzler
a719552243
fix: rc version check (#29194) 2026-06-18 21:00:12 +00:00
Timon
48861b085e
chore(server): organize integrity dtos (#29191) 2026-06-18 14:44:28 +02: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
Jeevan Mohan Pawar
a364b56b1c
fix(server): skip existing users when sharing albums (#28884)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-06-17 15:54:20 +02:00
Timon
3f2e51c5d4
refactor(server): use uuids in schemas (#29140) 2026-06-17 14:50:17 +02:00
Mees Frensel
430a2bbfd3
chore(server): add switch case exhaustiveness lint (#29029) 2026-06-17 12:04:41 +02: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
Daniel Dietzler
f21a753aff
fix: integrity report checksum query (#29136) 2026-06-16 15:11:20 +02:00
Timon
cc8d3b4107
fix(server): do not merge metadata when multiple duplicates are kept (#29035)
* fix(server): do not merge metadata when multiple duplicates are kept

* Update server/src/services/duplicate.service.spec.ts

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-06-15 16:05:04 -04:00
Timon
b633cc4f04
fix(server): hide partner archived asset locations from map (#29028) 2026-06-15 16:30:52 +02:00
Daniel Dietzler
43b2d04e2c
fix: version tests (#29032) 2026-06-12 15:54:42 +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
Mees Frensel
4ead3e697d
chore(server): update asset not ready error messages (#28968) 2026-06-10 20:23:17 +02:00
Daniel Dietzler
fb798a8f29
chore: remove person workflow elements (#28974) 2026-06-10 18:49:33 +02:00
bo0tzz
d3680871ef
feat: warn if microservices worker is missing (#28869)
* feat: warn if microservices worker is missing

* fix: ci
2026-06-10 09:31:32 -04:00
Timon
5c38373808
refactor(server): allow -1 rating again (#28886) 2026-06-10 10:55:51 +02:00
Timon
d10153bbc7
fix(server): hide isFavorite from album asset sync stream (#28923)
* fix(server): hide isFavorite from album asset sync stream

* some tests

* Revert "some tests"

This reverts commit 3242e6961c.

* alter existing test to clear test's intent

* Reapply "some tests"

This reverts commit f1d4c47f5f.

* drop one

* sql
2026-06-09 00:03:03 -04: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
Timon
474efd39f8
refactor(server): prevent sharing album with owner by filtering out user from albumUsers (#28891)
fix(server): prevent sharing album with owner by filtering out user from albumUsers
2026-06-07 17:46:26 -04: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
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
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
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
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
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
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