POST /api/v1/people/{keep_id}/merge with { merge_ids: [...] } — moves faces, video linkages (dedupe), match decisions; rebuilds person_encodings; deletes sources.
Modify People: checkboxes + confirm dialog to merge into the selected keep person.
Tests in TestPeopleMerge; accuracy status updated.
Test plan
CI green (includes TestPeopleMerge)
On DEV: pick keep person, check a duplicate, Merge — faces/videos land on keep; source gone
Self-merge / missing id return 400/404
Depends on / stacks after scrub #94 (independent of secrets scrub).
## Summary
- `POST /api/v1/people/{keep_id}/merge` with `{ merge_ids: [...] }` — moves faces, video linkages (dedupe), match decisions; rebuilds `person_encodings`; deletes sources.
- Modify People: checkboxes + confirm dialog to merge into the selected keep person.
- Tests in `TestPeopleMerge`; accuracy status updated.
## Test plan
- [ ] CI green (includes `TestPeopleMerge`)
- [ ] On DEV: pick keep person, check a duplicate, Merge — faces/videos land on keep; source gone
- [ ] Self-merge / missing id return 400/404
Depends on / stacks after scrub #94 (independent of secrets scrub).
POST /people/{keep_id}/merge reassigns faces, videos, and match
decisions, rebuilds encodings, then deletes sources so strict
Auto-Match thresholds stay recoverable.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
POST /api/v1/people/{keep_id}/mergewith{ merge_ids: [...] }— moves faces, video linkages (dedupe), match decisions; rebuildsperson_encodings; deletes sources.TestPeopleMerge; accuracy status updated.Test plan
TestPeopleMerge)Depends on / stacks after scrub #94 (independent of secrets scrub).
POST /people/{keep_id}/merge reassigns faces, videos, and match decisions, rebuilds encodings, then deletes sources so strict Auto-Match thresholds stay recoverable.