* 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
* 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>
* 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>
* 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
* fix(server): dedupe database backup jobs via jobId
#27268 shows backup jobs piling up in the queue across upgrades; one pending
backup is always enough.
* fix(tests): Avoid stale backup files from previous test runs being erroneously returned from createBackup
* fix(jobs): Use bullmq's deduplication over jobId to avoid failed jobs from blocking future executions.
---------
Co-authored-by: Robert Deaton <immich@rdeaton.space>
* hide hidden person from memories
* clean up
* fix united test
* clean up
* moved sql to inline, rebased
* clean up
* clean up again
* chore: sync sql
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* 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