Commit Graph

8 Commits

Author SHA1 Message Date
admin
f13b712e99 feat: skip similar pairs where path contains thumbnail/thumbnails
- Filters out thumbnail-vs-original false positives
- Only applies to pairs (group size 2)
- Case-insensitive path check
- New test: similar_pair_with_thumbnail_path_ignored
- 25 tests passing
2026-04-28 00:34:11 +00:00
admin
03728a11e9 feat: filter similar groups by file size ratio (80% default)
- Thumbnails vs originals no longer grouped as similar
- Added file_size to ImageEntry
- find_duplicate_groups now checks min size ratio for similar pairs
- New API: find_duplicate_groups_with_size_ratio for custom ratio
- New test: similar_groups_filtered_by_size_ratio
- 24 tests passing
2026-04-28 00:28:18 +00:00
admin
22b977d9c4 fix: embed base64 thumbnails in review HTML for instant page load
- Eliminates separate image requests (single-threaded bottleneck)
- Pre-builds HTML with base64 data URIs before starting server
- Adds "Keep first, select rest" per-group button
- Sticky action bar, delete counter, progress feedback
- 23 tests passing
2026-04-28 00:14:49 +00:00
admin
bb04871383 feat: add --review flag with browser-based side-by-side image review
- Launches local HTTP server with dark-themed review UI
- Side-by-side image comparison per duplicate group
- Checkbox selection + delete confirmation
- Shows file size and path per image
- Exact/similar badges per group
- Shutdown endpoint for clean exit
- Magic byte format detection (fixes misnamed screenshots)
- 23 tests passing
2026-04-28 00:08:33 +00:00
admin
9dc8a495bb feat: detect image format from magic bytes, not file extension
- Fixes misnamed files (e.g. JPEG saved as .png) being skipped
- Uses image::ImageReader with guessed format from content
- Fixes Android screenshots with wrong extension being skipped
- New test: misnamed_jpeg_as_png_still_scanned
- 22 tests passing
2026-04-27 23:57:20 +00:00
admin
deb5321a8a fix: skip corrupt/unreadable images instead of aborting scan
- scan_images now warns and continues on decode errors
- new test: scan_skips_corrupt_image_files
- 21 tests passing
2026-04-27 23:51:10 +00:00
admin
e1f8201b5c feat: complete image phase - SHA-256 exact + dHash perceptual duplicate detection
- lib.rs: scan_images, compute_dhash, hamming, find_duplicate_groups
- main.rs: CLI with folder arg and optional hamming threshold
- 13 unit tests: hamming, is_image_path, dhash, find_duplicate_groups
- 7 integration tests: real files, empty dir, cropped, non-image exclusion,
  subdirectory recursion, single file, CLI binary output
- All 20 tests passing
2026-04-27 23:33:27 +00:00
admin
71c8df2de5 Initial commit 2026-04-27 22:41:06 +00:00