Tag Filter exclude, Exclusive match, and jump to first (0.6.0) #164

Merged
ValleyGeek merged 7 commits from 0.5.0/issue-162-tag-exclude-filter into main 2026-08-19 15:12:45 +00:00
Member

Summary

Issue #162. Extends Tag Filter with an Exclude set, an Exclusive AND match, and a jump-to-first after a right-click single-tag filter. Bumps VERSION to 0.6.0.

Behavior

  • Middle-click a tag (toolbox or popup) adds it to --Exclude--. Images that carry any exclude tag drop out after the Active pass. Click an Exclude tag to return it to Available (not Active).
  • Exclusive (next to Hide Deleted) keeps only images that have every Active tag and no extra user tags. DELETE and duplicate-prefix tags do not count as extras. No-op until Active tags exist.
  • Filter order is Active → Exclusive → Exclude / Hide Deleted.
  • Right-click still makes that tag the only Active filter (and clears Exclude), then selects the first image: grid scrolls to the top; the viewer starts on that first image.
  • Untagged Only sits on its own row.
  • Session restore persists Exclude tags and Exclusive.

DR-036 records the middle-click change from add-to-Active (DR-034).

compiled-inputs-changed.sh origin/main exits 0 (src/ + resources/help/USER_GUIDE.md + VERSION).

Test plan

  • Exclusive AND: two Active tags show only images that have both and no extra user tags
  • Exclude after Active; Exclude click returns to Available
  • Right-click exclusive filter focuses first grid row and viewer image
  • Dupe-group summaries honor Exclude and Exclusive
  • ./scripts/check-version-bump.sh origin/main0.5.00.6.0
  • CI lint / pytest / AppImage
## Summary Issue #162. Extends Tag Filter with an Exclude set, an Exclusive AND match, and a jump-to-first after a right-click single-tag filter. Bumps `VERSION` to **0.6.0**. ### Behavior - **Middle-click** a tag (toolbox or popup) adds it to **--Exclude--**. Images that carry any exclude tag drop out after the Active pass. Click an Exclude tag to return it to Available (not Active). - **Exclusive** (next to Hide Deleted) keeps only images that have **every** Active tag and no extra user tags. `DELETE` and duplicate-prefix tags do not count as extras. No-op until Active tags exist. - Filter order is **Active → Exclusive → Exclude / Hide Deleted**. - **Right-click** still makes that tag the only Active filter (and clears Exclude), then selects the first image: grid scrolls to the top; the viewer starts on that first image. - **Untagged Only** sits on its own row. - Session restore persists Exclude tags and Exclusive. DR-036 records the middle-click change from add-to-Active (DR-034). `compiled-inputs-changed.sh origin/main` exits 0 (`src/` + `resources/help/USER_GUIDE.md` + `VERSION`). ## Test plan - [x] Exclusive AND: two Active tags show only images that have both and no extra user tags - [x] Exclude after Active; Exclude click returns to Available - [x] Right-click exclusive filter focuses first grid row and viewer image - [x] Dupe-group summaries honor Exclude and Exclusive - [x] `./scripts/check-version-bump.sh origin/main` — `0.5.0` → `0.6.0` - [ ] CI lint / pytest / AppImage
Middle-click adds a tag to an --Exclude-- filter applied after the
positive (any-of) active tags. Right-click still resets to that tag
alone and jumps the grid and viewer to the first image in the set.
Exclusive shows only images whose user tags are all in the active set.
Filter order is Active, then Exclusive, then Exclude/Hide Deleted.
test: Cover Exclusive match after Active
All checks were successful
CI / lint (push) Successful in 18s
CI / test (push) Successful in 3m42s
CI / appimage (push) Successful in 14m29s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 15m35s
CI / build-windows-exe (push) Successful in 0s
31ca91521a
ui: Put Untagged Only on its own Tag Filter row
All checks were successful
CI / lint (push) Successful in 13s
CI / test (push) Successful in 2m59s
CI / appimage (push) Successful in 17m11s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 20m50s
CI / build-windows-exe (push) Successful in 0s
cee3bb6b86
fix: Exclusive requires every Active tag
All checks were successful
CI / lint (push) Successful in 14s
CI / test (push) Successful in 2m53s
CI / appimage (push) Successful in 16m15s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 22m3s
CI / build-windows-exe (push) Successful in 0s
9932cf6f47
With Exclusive on, an image must have all Active tags. A single
matching tag is not enough when more than one tag is Active.
docs: PR-prep for 0.6.0 Tag Filter exclude and Exclusive
All checks were successful
CI / lint (push) Successful in 9s
CI / test (push) Successful in 2m27s
CI / appimage (push) Successful in 12m27s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 17m0s
CI / build-windows-exe (push) Successful in 0s
6369acbabe
ValleyGeek deleted branch 0.5.0/issue-162-tag-exclude-filter 2026-08-19 15:12:45 +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!164
No description provided.