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
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
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
Mert
01712cf0a7
fix(server): av typing ( #28223 )
...
* fix av typing, move fixtures to stub file
* fix tests
2026-05-04 09:04:29 -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
97c62136b7
chore(server)!: drop pgvecto.rs support ( #28159 )
...
drop pgvecto.rs
2026-04-30 09:40:38 -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
Daniel Dietzler
8ee5d3039a
chore!: remove deviceId and deviceAssetId ( #27818 )
...
chore: remove deviceId and deviceAssetId
2026-04-15 15:00:33 -04:00
Brandon Wees
c29493e3a0
fix: withFilePath select edited or unedited file ( #27328 )
...
* fix: withFilePath select edited or unedited file
* chore: test
2026-04-01 08:19:38 -04: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
Daniel Dietzler
34ce68095d
chore: upgrade to kysely 0.28.11 ( #26744 )
2026-03-11 16:17:31 +01:00
Joe Babbitt
44eeb1e088
fix: implement existing withStacked on searchAssetBuilder ( #26607 )
...
Co-authored-by: Joe <code@joebabbitt.com >
2026-03-03 11:41:29 +00:00
Daniel Dietzler
a07d7b0c82
chore: migrate to sql-tools library ( #26400 )
...
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-02-23 09:50:16 -05:00
Jason Rasmussen
458d5f0f8f
fix: ignore checksum constraint error when logging ( #26113 )
2026-02-10 20:43:55 +00:00
Brandon Wees
e8c80d88a5
feat: image editing ( #24155 )
2026-01-09 17:59:52 -05:00
lif
263f96da87
fix(server): search statistics with personIds returns 500 ( #25074 )
...
The searchAssetBuilder was incorrectly adding withFacesAndPeople
select when personIds was provided. This caused a SQL error because
the subquery referenced asset.id which wasn't selected in statistics
queries (only count(*) was selected).
The fix removes personIds from the condition that triggers adding
faces data to the select. The hasPeople filter (for personIds) is
still applied correctly for filtering.
Fixes #25003
Signed-off-by: majiayu000 <1835304752@qq.com >
2026-01-06 08:54:12 -05:00
Daniel Dietzler
c15998e805
fix: asset update race condition ( #24384 )
...
* fix: asset update race condition
* fix: asset update race condition
* single statement
* update sql
* missed one
* fix `none` handling
* fix: tests
* chore: simplify update all assets
* fix: updating lockable properties
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2025-12-17 09:23:13 -06:00
Mert
95c29a8aea
fix(server): use bigrams for cjk ( #24285 )
...
* use bigrams for cjk
* update sql
* linting
* actually migrate ocr
* fix backwards test
* use array
* tweaks
2025-12-01 17:24:37 +00:00
Jason Rasmussen
29c14a3f58
refactor: database column names ( #23356 )
2025-11-04 16:03:21 -05:00
Kang
02b29046b3
feat: ocr ( #18836 )
...
* feat: add OCR functionality and related configurations
* chore: update labeler configuration for machine learning files
* feat(i18n): enhance OCR model descriptions and add orientation classification and unwarping features
* chore: update Dockerfile to include ccache for improved build performance
* feat(ocr): enhance OCR model configuration with orientation classification and unwarping options, update PaddleOCR integration, and improve response structure
* refactor(ocr): remove OCR_CLEANUP job from enum and type definitions
* refactor(ocr): remove obsolete OCR entity and migration files, and update asset job status and schema to accommodate new OCR table structure
* refactor(ocr): update OCR schema and response structure to use individual coordinates instead of bounding box, and adjust related service and repository files
* feat: enhance OCR configuration and functionality
- Updated OCR settings to include minimum detection box score, minimum detection score, and minimum recognition score.
- Refactored PaddleOCRecognizer to utilize new scoring parameters.
- Introduced new database tables for asset OCR data and search functionality.
- Modified related services and repositories to support the new OCR features.
- Updated translations for improved clarity in settings UI.
* sql changes
* use rapidocr
* change dto
* update web
* update lock
* update api
* store positions as normalized floats
* match column order in db
* update admin ui settings descriptions
fix max resolution key
set min threshold to 0.1
fix bind
* apply config correctly, adjust defaults
* unnecessary model type
* unnecessary sources
* fix(ocr): switch RapidOCR lang type from LangDet to LangRec
* fix(ocr): expose lang_type (LangRec.CH) and font_path on OcrOptions for RapidOCR
* fix(ocr): make OCR text search case- and accent-insensitive using ILIKE + unaccent
* fix(ocr): add OCR search fields
* fix: Add OCR database migration and update ML prediction logic.
* trigrams are already case insensitive
* add tests
* format
* update migrations
* wrong uuid function
* linting
* maybe fix medium tests
* formatting
* fix weblate check
* openapi
* sql
* minor fixes
* maybe fix medium tests part 2
* passing medium tests
* format web
* readd sql
* format dart
* disabled in e2e
* chore: translation ordering
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
Co-authored-by: Alex Tran <alex.tran1502@gmail.com >
2025-10-27 14:09:55 +00:00
Jason Rasmussen
868d5f56e2
fix: motion video extraction race condition ( #21285 )
...
fix: motion video extraction race ccondition
2025-08-27 15:10:55 -04:00
Jason Rasmussen
e73abe0762
refactor: enum casing ( #19946 )
2025-07-15 14:50:13 -04:00
Jason Rasmussen
c699df002a
feat: rename schema ( #19891 )
2025-07-14 10:13:06 -04:00
Léopold Koprivnik
f778adea92
feat: adds option to search only for untagged assets ( #19730 )
...
Co-authored-by: SkwalExe <skwal@skwal.net >
2025-07-10 16:28:20 +02:00
Jason Rasmussen
e60bc3c304
refactor: database types ( #19624 )
2025-06-30 13:19:16 -04:00
Jason Rasmussen
33c9f88ba4
fix: time bucket grouping ( #19329 )
2025-06-20 09:46:30 -04:00
xCJPECKOVERx
14d785cec9
feat(server): Add album filter to search ( #18985 )
...
* - updated dtos
- added inAlbums to search builder
- only check isNotInAlbum if albumIds is blank/empty
* - consider inAlbums as OR
* - make open-api-dart
* - lint & format
* - remove inAlbums groupBy clause
* - merge main open-api
* - make open-api
* - inAlbums filter AND instead of OR
2025-06-09 11:11:43 -04:00
Jonathan Gilbert
fb4be6e231
feat(server): add /search/statistics resource ( #18885 )
2025-06-06 21:12:53 -04:00
Mert
fa22e865a4
fix(server): tighten asset visibility ( #18699 )
...
* tighten visibility
* update sql
* elevated access util function
* fix potential sync issue
* include in user stats
* include hidden assets in size usage
* filter visibility in search duplicates query
* stack visibility
2025-06-02 09:33:08 -05:00
Mert
0d773af6c3
feat: vectorchord ( #18042 )
...
* wip
auto-detect available extensions
auto-recovery, fix reindexing check
use original image for ml
* set probes
* update image for sql checker
update images for gha
* cascade
* fix new instance
* accurate dummy vector
* simplify dummy
* preexisiting pg docs
* handle different db name
* maybe fix sql generation
* revert refreshfaces sql change
* redundant switch
* outdated message
* update docker compose files
* Update docs/docs/administration/postgres-standalone.md
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
* tighten range
* avoid always printing "vector reindexing complete"
* remove nesting
* use new images
* add vchord to unit tests
* debug e2e image
* mention 1.107.2 in startup error
* support new vchord versions
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
2025-05-20 08:36:43 -05:00
Min Idzelis
e7edbcdf04
feat(server): lighter buckets ( #17831 )
...
* feat(web): lighter timeline buckets
* GalleryViewer
* weird ssr
* Remove generics from AssetInteraction
* ensure keys on getAssetInfo, alt-text
* empty - trigger ci
* re-add alt-text
* test fix
* update tests
* tests
* missing import
* feat(server): lighter buckets
* fix: flappy e2e test
* lint
* revert settings
* unneeded cast
* fix after merge
* Adapt web client to consume new server response format
* test
* missing import
* lint
* Use nulls, make-sql
* openapi battle
* date->string
* tests
* tests
* lint/tests
* lint
* test
* push aggregation to query
* openapi
* stack as tuple
* openapi
* update references to description
* update alt text tests
* update sql
* update sql
* update timeline tests
* linting, fix expected response
* string tuple
* fix spec
* fix
* silly generator
* rename patch
* minimize sorting
* review
* lint
* lint
* sql
* test
* avoid abbreviations
* review comment - type safety in test
* merge conflicts
* lint
* lint/abbreviations
* remove unncessary code
* review comments
* sql
* re-add package-lock
* use booleans, fix visibility in openapi spec, less cursed controller
* update sql
* no need to use sql template
* array access actually doesn't seem to matter
* remove redundant code
* re-add sql decorator
* unused type
* remove null assertions
* bad merge
* Fix test
* shave
* extra clean shave
* use decorator for content type
* redundant types
* redundant comment
* update comment
* unnecessary res
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-05-19 16:40:48 -05:00
Alex
d33ce13561
feat(server): visibility column ( #17939 )
...
* feat: private view
* pr feedback
* sql generation
* feat: visibility column
* fix: set visibility value as the same as the still part after unlinked live photos
* fix: test
* pr feedback
2025-05-06 12:12:48 -05:00
David Cruz
7072e48cbe
feat: Add DB_SSL_MODE environment variable for Postgres sslmode ( #18025 )
...
* feat: Add DB_SSL_MODE environment variable for Postgres sslmode
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2025-05-06 09:25:37 -04:00
Thomas
3ce353393a
chore(server): don't insert embeddings if the model has changed ( #17885 )
...
* chore(server): don't insert embeddings if the model has changed
We're moving away from the heuristic of waiting for queues to complete. The job
which inserts embeddings can simply check if the model has changed before
inserting, rather than attempting to lock the queue.
* more robust dim size update
* use check constraint
* index command cleanup
* add create statement
* update medium test, create appropriate extension
* new line
* set dimension size when running on all assets
* why does it want braces smh
* take 2
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2025-04-29 14:23:01 -04:00
Jason Rasmussen
1d610ad9cb
refactor: database connection parsing ( #17852 )
2025-04-24 12:58:29 -04:00
Daniel Dietzler
dd1fcd5be5
chore: remove asset entity ( #17703 )
2025-04-18 21:39:56 +00:00
Jason Rasmussen
b710ad36f3
feat: upgrade kysely ( #17630 )
...
* feat: upgrade kysely
* chore: pr feedback
2025-04-15 13:26:56 -04:00
Mert
25f2b9602f
refactor(server): remove face, person and face search entities ( #17535 )
...
* remove face, person and face search entities
update tests and mappers
check if face relation exists
update sql
unused imports
* pr feedback
generate sql, remove unused imports
2025-04-11 14:44:45 -04:00
Jason Rasmussen
4b4bcd23f4
feat: schema diff sql tools ( #17116 )
2025-03-28 10:40:09 -04:00
Jason Rasmussen
2cdbb0a37c
refactor: database repository ( #16593 )
...
* refactor: database repository
* fix error reindex check
* chore: remove WIP code
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2025-03-06 13:33:24 -05:00
Jonathan Jogenfors
3af26ee94a
feat(server): library refresh go brrr ( #14456 )
...
* feat: brr
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2025-03-06 16:00:18 +01:00
Daniel Dietzler
332a865ce6
refactor: migrate person repository to kysely ( #15242 )
...
* refactor: migrate person repository to kysely
* `asVector` begone
* linting
* fix metadata faces
* update test
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2025-01-21 13:12:28 -05:00
Mert
2e12c46980
refactor(server): use kysely ( #12857 )
2025-01-09 11:15:41 -05:00
Jason Rasmussen
64831e2328
refactor: remove smart info table ( #13985 )
2024-11-07 11:25:10 -05:00
Alex
5a3e352950
fix(server): typeorm (੭ °ཀ°)੭ ( #13411 )
2024-10-13 17:10:52 +00:00
Mert
063969ca05
fix(server): searching with both personIds and withPeople ( #13254 )
...
* use cte
* linting
2024-10-07 15:44:04 -04:00
Mert
7adb35e59e
fix(server): /search/random failing with certain options ( #13040 )
...
* fix relation handling, remove pagination
* update api, sql
* update mock
2024-09-30 00:29:35 -04:00
Jonathan Jogenfors
b2f2be3485
refactor(server): library syncing ( #12220 )
...
* refactor: library scanning
fix tests
remove offline files step
cleanup library service
improve tests
cleanup tests
add db migration
fix e2e
cleanup openapi
fix tests
fix tests
update docs
update docs
update mobile code
fix formatting
don't remove assets from library with invalid import path
use trash for offline files
add migration
simplify scan endpoint
cleanup library panel
fix library tests
e2e lint
fix e2e
trash e2e
fix lint
add asset trash tests
add more tests
ensure thumbs are generated
cleanup svelte
cleanup queue names
fix tests
fix lint
add warning due to trash
fix trash tests
fix lint
fix tests
Admin message for offline asset
fix comments
Update web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
add permission to library scan endpoint
revert asset interface sort
add trash reason to shared link stub
improve path view in offline
update docs
improve trash performance
fix comments
remove stray comment
* refactor: add back isOffline and remove trashReason from asset, change sync job flow
* chore(server): drop coverage to 80% for functions
* chore: rebase and generated files
---------
Co-authored-by: Zack Pollard <zackpollard@ymail.com >
2024-09-25 18:26:19 +01:00
Jason Rasmussen
7af6733665
refactor(server): move files to separate table ( #11861 )
2024-08-19 20:03:33 -04:00
renovate[bot]
2821e0bf95
chore(deps): update typescript-eslint monorepo to v8 (major) ( #11598 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2024-08-05 19:13:00 +00:00