Harden Immich duplicate cleanup after review #49

Merged
janpeter merged 6 commits from codex/duplicate-cleanup-review-fixes into main 2026-06-07 20:57:16 +02:00
Owner

Summary

  • Blocks duplicate cleanup when Immich paths indicate a configured media-root mismatch and hydrates preview file-existence from the real media root.
  • Adds active-reference checks before local unlink, safer local-delete audit statuses, and preserves folder-browser placement source filenames.
  • Restamps duplicate slideshow rows consistently, adds cleanup confirmation, and gives merge transactions an explicit timeout.

Test Plan

  • npm test -- src/lib/duplicates/storage-strategy.test.ts src/lib/duplicates/preview.test.ts src/lib/duplicates/execute.test.ts src/components/ImmichDuplicateCleanupPanel.test.ts src/app/api/immich/duplicates/route-handlers.test.ts
  • npm test
  • npm run build

No destructive cleanup was executed.

## Summary - Blocks duplicate cleanup when Immich paths indicate a configured media-root mismatch and hydrates preview file-existence from the real media root. - Adds active-reference checks before local unlink, safer local-delete audit statuses, and preserves folder-browser placement source filenames. - Restamps duplicate slideshow rows consistently, adds cleanup confirmation, and gives merge transactions an explicit timeout. ## Test Plan - npm test -- src/lib/duplicates/storage-strategy.test.ts src/lib/duplicates/preview.test.ts src/lib/duplicates/execute.test.ts src/components/ImmichDuplicateCleanupPanel.test.ts src/app/api/immich/duplicates/route-handlers.test.ts - npm test - npm run build No destructive cleanup was executed.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/Media-Organizer!49
No description provided.