fix(dupe): consistent green/yellow/red metadata highlighting (#115) #137

Merged
ValleyGeek merged 2 commits from 0.2.3/issue-115-dupe-color-coding into main 2026-06-24 05:38:36 +00:00
Member

Summary

  • compare_tier() (core/dupe_metadata_compare.py) only recognized a tie when every value in a duplicate group was identical. A value shared by some — but not all — images, without being the group's overall highest/lowest, fell through to no highlight instead of yellow.
  • Fixed by checking the overall max/min first, then falling back to a count-based check for matching non-extreme values.
  • Per follow-up direction: when the entire group ties on a value, it's rendered green ("high"), not yellow — a full tie is simultaneously the group's highest and lowest.
  • Added regression tests for the partial-tie and full-tie cases.
  • Bumped to 0.2.4 (patch) and added a CHANGELOG.md entry.

Closes #115.

Test plan

  • ruff check / ruff format --check on src, tests, scripts
  • pytest — 543 passed, 1 skipped (includes new test_compare_tier_partial_tie_not_at_extreme and test_compare_tier_full_group_tie_is_high_not_tie)
  • ./scripts/check-version-bump.sh — passes (0.2.3 → 0.2.4)
  • pip install -e . in the active venv — scripts/get-version.py --canonical resolves to 0.2.4
## Summary - `compare_tier()` (`core/dupe_metadata_compare.py`) only recognized a tie when *every* value in a duplicate group was identical. A value shared by some — but not all — images, without being the group's overall highest/lowest, fell through to no highlight instead of yellow. - Fixed by checking the overall max/min first, then falling back to a count-based check for matching non-extreme values. - Per follow-up direction: when the entire group ties on a value, it's rendered green ("high"), not yellow — a full tie is simultaneously the group's highest and lowest. - Added regression tests for the partial-tie and full-tie cases. - Bumped to `0.2.4` (patch) and added a `CHANGELOG.md` entry. Closes #115. ## Test plan - [x] `ruff check` / `ruff format --check` on `src`, `tests`, `scripts` - [x] `pytest` — 543 passed, 1 skipped (includes new `test_compare_tier_partial_tie_not_at_extreme` and `test_compare_tier_full_group_tie_is_high_not_tie`) - [x] `./scripts/check-version-bump.sh` — passes (0.2.3 → 0.2.4) - [x] `pip install -e .` in the active venv — `scripts/get-version.py --canonical` resolves to `0.2.4`
compare_tier() only recognized a "tie" when every value in a duplicate
group was identical, so a value shared by some (but not all) images —
without itself being the group's overall highest or lowest — fell
through to "none" and rendered with no highlight instead of yellow.
Check the overall max/min first, then fall back to a count-based tie
check for matching non-extreme values.

Per follow-up direction: when the entire group ties on a value, render
it green ("high"), not yellow — a full tie is simultaneously the
group's highest and lowest.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
docs: PR-prep — bump to 0.2.4 for issue #115 dupe color-coding fix
All checks were successful
CI / lint (push) Successful in 16s
CI / test (push) Successful in 2m33s
CI / appimage (push) Successful in 10m41s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 9m43s
CI / build-windows-exe (push) Successful in 0s
22e07b5e0d
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ValleyGeek deleted branch 0.2.3/issue-115-dupe-color-coding 2026-06-24 05:38:37 +00:00
Sign in to join this conversation.
No reviewers
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
ai-collab/bulk-image-organizer!137
No description provided.