Make adjacent duplicate-set switching near-instant (0.9.3, #182) #188

Merged
ValleyGeek merged 3 commits from 0.9.1/issue-182-dupe-set-switch into main 2026-08-28 19:35:20 +00:00
Member

Fixes #182. Version 0.9.3.

On large workspaces (~9k images, hundreds of groups), changing the active duplicate set with W/S, the toolbox list, or next/prev was still 1–2 seconds even when neighbor images were already cached. Multi/Grid navigation no longer re-filters the full thumbnail model or re-queries dupe summaries; membership dicts and tag colors stay cached for the current set and its neighbors; Multi paints from a pixmap cache trimmed to that window. The thumbnail proxy filter runs when Single/viewer actually reads rows.

Also fixes a Single filmstrip ghost slot: after marking DELETE with Hide Deleted on and moving to the next group, an extra empty thumb could appear. Clicking it left the previous image on screen at 1:1. The issue #38 pin is released before the new group's session rows are snapshotted.

USER_GUIDE is unchanged. This restores already-documented usage (session filmstrip, W/S group movement); the bundled guide is usage-only and does not take bug-fix rationale.

Test plan

  • On a large workspace, W/S through nearby Multi groups is near-instant after the first neighbor preload.
  • Jumping to a group that is not preloaded may decode, but does not stall on a full-workspace filter pass.
  • Dupe Grid selection does not reload Multi when Multi is hidden.
  • In Single, mark DELETE (Hide Deleted on) then W/S: filmstrip matches the new group only; no empty extra thumb, no 1:1 leftover image.
  • Keep / Delete Group / tag / undo still update the current set.
Fixes #182. Version **0.9.3**. On large workspaces (~9k images, hundreds of groups), changing the active duplicate set with W/S, the toolbox list, or next/prev was still 1–2 seconds even when neighbor images were already cached. Multi/Grid navigation no longer re-filters the full thumbnail model or re-queries dupe summaries; membership dicts and tag colors stay cached for the current set and its neighbors; Multi paints from a pixmap cache trimmed to that window. The thumbnail proxy filter runs when Single/viewer actually reads rows. Also fixes a Single filmstrip ghost slot: after marking DELETE with Hide Deleted on and moving to the next group, an extra empty thumb could appear. Clicking it left the previous image on screen at 1:1. The issue #38 pin is released before the new group's session rows are snapshotted. USER_GUIDE is unchanged. This restores already-documented usage (session filmstrip, W/S group movement); the bundled guide is usage-only and does not take bug-fix rationale. ## Test plan - [ ] On a large workspace, W/S through nearby Multi groups is near-instant after the first neighbor preload. - [ ] Jumping to a group that is not preloaded may decode, but does not stall on a full-workspace filter pass. - [ ] Dupe Grid selection does not reload Multi when Multi is hidden. - [ ] In Single, mark DELETE (Hide Deleted on) then W/S: filmstrip matches the new group only; no empty extra thumb, no 1:1 leftover image. - [ ] Keep / Delete Group / tag / undo still update the current set.
ui: make adjacent duplicate-set switching near-instant (issue #182)
All checks were successful
CI / lint (push) Successful in 13s
CI / test (push) Successful in 6m39s
CI / windows-exe (push) Successful in 17m37s
CI / build-windows-exe (push) Successful in 0s
CI / appimage (push) Successful in 21m32s
CI / build-appimage (push) Successful in 0s
285517e6bb
Group navigation no longer re-filters the full thumbnail model, re-queries
dupe summaries, or re-fetches already-cached group membership. Neighbor
decode stays on the worker; Multi paints from a pixmap cache trimmed to
the current/adjacent window.

Development VERSION 0.9.1-bug.182.
fix: drop ghost filmstrip slot when switching sets in Single (issue #182)
All checks were successful
CI / lint (push) Successful in 30s
CI / test (push) Successful in 6m4s
CI / appimage (push) Successful in 14m39s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 15m41s
CI / build-windows-exe (push) Successful in 0s
3d039533c4
A Hide Deleted pin from tagging DELETE was still in the proxy when the
next group's session rows were snapshotted. open_session then released
the pin, leaving an unmapped filmstrip slot that showed the previous
image at 1:1 when clicked.
docs: PR-prep for issue 182 (0.9.3)
Some checks failed
CI / lint (push) Successful in 12s
CI / test (push) Successful in 5m37s
CI / appimage (push) Failing after 6s
CI / build-appimage (push) Failing after 0s
CI / windows-exe (push) Successful in 14m33s
CI / build-windows-exe (push) Successful in 0s
5dd8171969
Release bump 0.9.2 -> 0.9.3. Changelog and DESIGN cover adjacent-set
switching and the Single filmstrip ghost slot. USER_GUIDE is unchanged:
that file is usage-only and this branch restores already-listed behavior.
ValleyGeek deleted branch 0.9.1/issue-182-dupe-set-switch 2026-08-28 19:35:20 +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!188
No description provided.