-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Add pet clustering with feedback, naming, and search #9665
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Amrithesh-Kakkoth
wants to merge
119
commits into
ente-io:main
Choose a base branch
from
Amrithesh-Kakkoth:ml/pet-clustering
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 19 commits
Commits
Show all changes
119 commits
Select commit
Hold shift + click to select a range
e506141
Add pet clustering engine with agglomerative clustering
Amrithesh-Kakkoth c4ae159
Wire pet clustering into ML pipeline
Amrithesh-Kakkoth 096b952
Add FP16 model support, lazy session loading, and pet recognition types
Amrithesh-Kakkoth dc69aa3
Add pet face and body detection, alignment, and embedding pipeline
Amrithesh-Kakkoth ed5889e
Expose pet recognition pipeline through Rust API bridge
Amrithesh-Kakkoth 5834bab
Integrate pet recognition into ML indexing pipeline with feature flag
Amrithesh-Kakkoth 064e1a9
feat: Implement pet detection and display pet faces in file details.
Amrithesh-Kakkoth 82724a2
Restore hardware acceleration and optimization for face/CLIP models
Amrithesh-Kakkoth c8cb1fa
Remove libc crate dependency, use raw extern C declaration for dlsym
Amrithesh-Kakkoth 3205d5b
Remove per-image session unloading from ML pipeline
Amrithesh-Kakkoth 1d0fd11
Remove debugPetOnlyMode and forceAll debug scaffolding
Amrithesh-Kakkoth 364b81e
Address PR review feedback for pet recognition pipeline
Amrithesh-Kakkoth dc82c55
Fix pet detection never running on previously-indexed files
Amrithesh-Kakkoth da72e7c
Fix pet recognition: Mutex to RwLock, cat face classification, and mi…
Amrithesh-Kakkoth b9c0bbe
Rename detected_objects schema to pet_bodies and remove unused embedd…
Amrithesh-Kakkoth 545a779
Retrigger CI checks
Amrithesh-Kakkoth d76e3f1
Add pet cluster feedback, naming, and search integration
Amrithesh-Kakkoth a3b74d4
Fix mutable runtime API after rebase
Amrithesh-Kakkoth 2def4bb
Fix review issues: parameterize SQL, guard clustering memory, restore…
Amrithesh-Kakkoth b5db278
Add Rust agglomerative clustering fallback for human faces
Amrithesh-Kakkoth f198e7d
Fix clippy lints: collapsible ifs, is_multiple_of, doc formatting
Amrithesh-Kakkoth 1f9c592
Remove unused deletePetName method
Amrithesh-Kakkoth 258797e
Fix incremental pet clustering: stale summary deletion, centroid refr…
Amrithesh-Kakkoth 3850b07
Fix post-feedback summary recomputation, offline pet thumbnails, and …
Amrithesh-Kakkoth f2453c4
Normalize merged pet centroid, route pet thumbnails in view-all, pin …
Amrithesh-Kakkoth 153049f
Create singleton summaries after pet cluster split, map offline pet f…
Amrithesh-Kakkoth 27f6af4
Recompute summaries after move/split, use offline IDs for pet reassig…
Amrithesh-Kakkoth 6fdca79
Guard empty fileIds in SQL IN clause, use member face ID for cluster …
Amrithesh-Kakkoth 8aae3af
Recompute centroids for all clusters in incremental face clustering, …
Amrithesh-Kakkoth 5c606e8
Wire PetsChangedEvent into provider reload, fix faceVectorId test exp…
Amrithesh-Kakkoth 21d01b7
Query DB for active cluster IDs when pruning stale pet summaries
Amrithesh-Kakkoth d909dfe
Weighted centroid merge for bucketed face clustering, fix people/pets…
Amrithesh-Kakkoth d44ef6b
Build pet summaries from DB membership, remove double-counted histori…
Amrithesh-Kakkoth 2cc545f
Move pet cluster centroids from SQLite BLOB to vector DB, simplify in…
Amrithesh-Kakkoth 17da4a5
Revert face pipeline and face clustering changes per review feedback
Amrithesh-Kakkoth f638be6
Fix stale HDBSCAN comments in pet clustering to reflect agglomerative…
Amrithesh-Kakkoth 8a99a02
Fix centroid DB using wrong offline flag, read source summary before …
Amrithesh-Kakkoth a7dc882
Remove unused isOfflineMode import
Amrithesh-Kakkoth 3fa7b24
Replace pet_names table with PetEntity in separate DB, revert face cl…
Amrithesh-Kakkoth dc3e699
Make mergePetClusters map both clusters to the same PetEntity
Amrithesh-Kakkoth 546b3ee
Fix clippy warnings in Rust clustering test files
Amrithesh-Kakkoth f788c06
Add tests for PetEntity model and pet_cluster_pet mapping table
Amrithesh-Kakkoth c4d9118
Add PetEntity syncing via entity sync service using person type
Amrithesh-Kakkoth b5fcc3f
Align PetData with PersonData structure
Amrithesh-Kakkoth 65d4f50
Fix stale pet cluster centroids, missing body centroids, and stale ga…
Amrithesh-Kakkoth fd79f56
Merge main into ml/pet-clustering
Amrithesh-Kakkoth 9ae6d70
Fix Float64List type mismatch in body centroid computation
Amrithesh-Kakkoth 984c261
Run cargo fmt on shared Rust crate
Amrithesh-Kakkoth a74d038
Simplify pet clustering to face-only, remove body pipeline
Amrithesh-Kakkoth 507498d
Merge upstream main into ml/pet-clustering
Amrithesh-Kakkoth d0dd9c4
Fix unused import and clippy warnings in shared Rust crate
Amrithesh-Kakkoth 1b8318a
Fix review issues: centroid mismatch, N+1 queries, bulk operations
Amrithesh-Kakkoth ada5dec
Implement body rescue, body-only clustering, and cross-cluster merge
Amrithesh-Kakkoth 01a9aeb
Fix await on void PersonService.init in ML compute path
Amrithesh-Kakkoth cbe6d2f
Only fire PetsChangedEvent when clustering changes, simplify pet save…
Amrithesh-Kakkoth ed64d4c
Fire PetsChangedEvent instead of PeopleChangedEvent on pet cluster reset
Amrithesh-Kakkoth 8c6ce6f
Clear conflicting target rejections when manually moving pet faces
Amrithesh-Kakkoth 11d2c4c
Filter exported cluster assignments by species in dumpEmbeddingsJson
Amrithesh-Kakkoth e5bb4a9
Use localized species labels for autogenerated pet cluster names
Amrithesh-Kakkoth 9f56c59
Add real-image clustering tests, fix import ordering, add docs
Amrithesh-Kakkoth d202982
Merge upstream main into ml/pet-clustering
Amrithesh-Kakkoth 88eda09
Load merged pet cluster files and fix Rust clustering phases
Amrithesh-Kakkoth 5376e91
Add pet cluster unmerge (revert merge)
Amrithesh-Kakkoth 56acf5c
Fix setState during build in PetClusterPage event listener
Amrithesh-Kakkoth 3401008
Fix duplicate keys by deduplicating files in merged pet clusters
Amrithesh-Kakkoth 7368bfe
Fix PetClustersPage to reload after unmerge and show remove text
Amrithesh-Kakkoth eb8e9cc
Remove outdated pet clustering docs
Amrithesh-Kakkoth efef51a
Require named pet for cluster merge, remove empty PetEntity creation
Amrithesh-Kakkoth d76295a
Add pet cluster reconciliation for cross-device sync
Amrithesh-Kakkoth d034076
Only allow merging clusters into named pets
Amrithesh-Kakkoth d2bad9f
Regenerate Flutter Rust Bridge bindings and update deps
Amrithesh-Kakkoth 33d81c0
Run cargo fmt on shared Rust crate
Amrithesh-Kakkoth 381d130
Add species ambiguity filter and fix clippy warnings
Amrithesh-Kakkoth ba96f83
Remove HDBSCAN code and benchmark test files
Amrithesh-Kakkoth 5d28d3c
Remove unused PetService and PetEntity imports from feedback service
Amrithesh-Kakkoth c3884be
Add re-index pet faces button to ML debug settings
Amrithesh-Kakkoth a4b8fd1
Show 'People & Pets' title on all-faces page when pets enabled
Amrithesh-Kakkoth 3582c7e
Clear pet clustering tables and centroid VDBs during full ML reset
Amrithesh-Kakkoth 605fa3d
Fix stale pet cluster mappings not removed during remote sync
Amrithesh-Kakkoth d762000
Add multi-exemplar incremental clustering
Amrithesh-Kakkoth ccea472
Fix trailing comma and doc comment lint issues
Amrithesh-Kakkoth 4095166
Fix unused variable warning in Rust clustering API
Amrithesh-Kakkoth 46d6c59
Resolve merge conflicts in detail_page, pubspec, and inline_text_dete…
Amrithesh-Kakkoth 9386266
Suppress human faces misdetected as pets via cross-model filtering
Amrithesh-Kakkoth 7a30c62
Merge remote-tracking branch 'origin/main' into ml/pet-clustering
Amrithesh-Kakkoth 5b2d733
Refactor pet detection filtering and hide default pet labels
Amrithesh-Kakkoth ab64ba6
Merge main into ml/pet-clustering
Amrithesh-Kakkoth f62338c
Fix rustfmt formatting in pet clustering
Amrithesh-Kakkoth 70ddeb6
Fix rustfmt formatting in indexing.rs
Amrithesh-Kakkoth d35aa8b
Fix clippy warnings in pet clustering
Amrithesh-Kakkoth bd3b029
Remove redundant null checks on LatLng from latlngAsync
Amrithesh-Kakkoth 49feb77
Update pet clustering and service layer after main merge
Amrithesh-Kakkoth 82457e2
Merge upstream main, resolve import conflict in ml_service.dart
Amrithesh-Kakkoth 310c936
Fix pet sync race: push local before stale cleanup, clear empty pets
Amrithesh-Kakkoth 2fa25d0
Optimize agglomerative clustering
Amrithesh-Kakkoth 2e1a93b
Format cluster.rs
Amrithesh-Kakkoth 8301f6f
Fix clippy lint in cluster loop
Amrithesh-Kakkoth 39ba3e0
fix: Guard offline mode from user-feedback tables and edit actions
Amrithesh-Kakkoth 7fafbd4
chore: Apply dart format
Amrithesh-Kakkoth 0fe3d34
refactor: remove pet human-face cross-check
Amrithesh-Kakkoth 90636cd
refactor: remove redundant pet search params
Amrithesh-Kakkoth 3ee48e1
refactor: remove pet cluster move flow
Amrithesh-Kakkoth 5ceff27
refactor: drop pet cluster merge helper
Amrithesh-Kakkoth c8c06f9
refactor: remove incomplete pet merge flows
Amrithesh-Kakkoth f3d16a5
Merge remote-tracking branch 'origin/main' into ml/pet-clustering
Amrithesh-Kakkoth d94c576
build: drop photos rust rlib crate type
Amrithesh-Kakkoth bc52511
fix: await pet assignment sync updates
Amrithesh-Kakkoth 0db2a23
fix: Add missing banner actions and clean up pet deletion
Amrithesh-Kakkoth b5f151a
refactor: remove pet cluster summary table
Amrithesh-Kakkoth 4480790
refactor: Remove unused migration tables, handle version downgrade
Amrithesh-Kakkoth 0af538f
refactor: clean up pet clustering leftovers
Amrithesh-Kakkoth 420ec49
feat: gate pet clustering behind internal release
Amrithesh-Kakkoth 58be078
revert: restore pet feature flag behavior
Amrithesh-Kakkoth 7029dda
feat: Add pet interaction parity with person flow
Amrithesh-Kakkoth f1ea3d8
fix: assert on db version downgrade
Amrithesh-Kakkoth 619fde8
refactor: Remove unused pet cluster centroid VDB
Amrithesh-Kakkoth ffdd668
fix: Restore createPetBodyVectorIdMappingTable in migration lists
Amrithesh-Kakkoth d384b74
refactor: Use spread for offline migration scripts
Amrithesh-Kakkoth 9121f8c
chore: Remove petClusterCentroidVectorIdMappingTable references
Amrithesh-Kakkoth File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| import "package:photos/events/event.dart"; | ||
|
|
||
| class PetsChangedEvent extends Event { | ||
| final String source; | ||
|
|
||
| PetsChangedEvent({this.source = ""}); | ||
|
|
||
| @override | ||
| String get reason => '$runtimeType{"via": $source}'; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.