US01-04 — Detect and Decide Duplicates #4

Closed
opened 2026-07-13 13:10:37 +02:00 by domverse · 3 comments
Owner

Source specification: delivery_backlog/stories/US01-04-duplicate-engine.md

US01-04 — Detect and Decide Duplicates

Epic: E01

As a user, I want explainable duplicate clusters and reversible decisions so redundant
copies are excluded without collapsing distinct photos automatically.

Acceptance criteria

  • Donor exact, normalized-pixel, and perceptual hash behavior is extracted and
    versioned.
  • Confidence bands distinguish automatic exact matches from fuzzy review candidates.
  • Canonical, variant, not-duplicate, and deferred decisions persist with evidence.
  • New contradictory members reopen reviewed clusters; canonical links cannot cycle.

Automated tests

  • Golden corpus tests assert hash relationships and confidence classes.
  • Property/integration tests cover clustering, negative links, reversals, new members,
    and persistence after restart.

Dependencies

  • US01-03
Source specification: [delivery_backlog/stories/US01-04-duplicate-engine.md](https://git.domverse-berlin.eu/domverse/photoanalyzer/src/branch/main/delivery_backlog/stories/US01-04-duplicate-engine.md) # US01-04 — Detect and Decide Duplicates Epic: [E01](https://git.domverse-berlin.eu/domverse/photoanalyzer/src/branch/main/delivery_backlog/E01-shared-identity-inventory.md) As a user, I want explainable duplicate clusters and reversible decisions so redundant copies are excluded without collapsing distinct photos automatically. ## Acceptance criteria - Donor exact, normalized-pixel, and perceptual hash behavior is extracted and versioned. - Confidence bands distinguish automatic exact matches from fuzzy review candidates. - Canonical, variant, not-duplicate, and deferred decisions persist with evidence. - New contradictory members reopen reviewed clusters; canonical links cannot cycle. ## Automated tests - Golden corpus tests assert hash relationships and confidence classes. - Property/integration tests cover clustering, negative links, reversals, new members, and persistence after restart. ## Dependencies - US01-03
domverse added this to the E01 — Shared Identity and Inventory milestone 2026-07-13 13:10:37 +02:00
domverse added the type/featurearea/databasearea/backendpriority/normal labels 2026-07-13 13:10:37 +02:00
domverse added a new dependency 2026-07-13 13:11:14 +02:00
domverse added a new dependency 2026-07-13 13:11:15 +02:00
domverse added a new dependency 2026-07-13 13:11:16 +02:00
domverse added this to the Photo Analyzer Delivery project 2026-07-13 13:19:43 +02:00
domverse added the status/backlog label 2026-07-13 13:52:44 +02:00
domverse added status/in-progress and removed status/backlog labels 2026-07-15 16:59:46 +02:00
domverse self-assigned this 2026-07-15 16:59:46 +02:00
Author
Owner

Claimed for implementation on branch us/US01-04-detect-and-decide-duplicates.

Claimed for implementation on branch `us/US01-04-detect-and-decide-duplicates`.
domverse added status/review and removed status/in-progress labels 2026-07-15 17:14:08 +02:00
Author
Owner

Submitted for review: #49

Tests passed:

  • work_item/scripts/python -m unittest discover -s work_item/tests -v
  • work_item/scripts/python -m pytest tests -q
  • work_item/scripts/python -m pytest tests/unit tests/integration -q
Submitted for review: https://git.domverse-berlin.eu/domverse/photoanalyzer/pulls/49 Tests passed: - `work_item/scripts/python -m unittest discover -s work_item/tests -v` - `work_item/scripts/python -m pytest tests -q` - `work_item/scripts/python -m pytest tests/unit tests/integration -q`
domverse added status/done and removed status/review labels 2026-07-15 17:14:27 +02:00
Author
Owner

Completed and merged via PR #49.

Completed and merged via PR #49.
domverse moved this to Ready in Photo Analyzer Delivery on 2026-08-16 11:58:04 +02:00
domverse moved this to Done in Photo Analyzer Delivery on 2026-08-16 11:58:05 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: domverse/photoanalyzer#4