No reviewers
Labels
No labels
Kind/Bug
Kind/Feature
Priority/High
Priority/Medium
Reviewed/Confirmed
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ai-collab/bulk-image-organizer!129
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "0.1.47/issue-111-86-64-89-feedback-fixes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Final PR in the 11-PR stacked chain. Bundles every re-tested-feedback round on top of the 10 preceding feature PRs, and bumps
VERSION0.1.x → 0.2.0 perdocs/VERSIONING.md's feature-segment policy, marking this feature tranche complete.imagehash.phash()was replaced with a scipy-free reimplementation (DCT via numpy only) after a packaged-build crash traced to an undeclared scipy transitive dependency.ThreadPoolExecutordispatch, aligned with the existing Benchmark code path.QSortFilterProxyModel.setDynamicSortFilter(True)row-removal racing the advance logic — fixed by capturing the target row before the mutation that can prune it).QGraphicsView(z-order), and switched panning from middle-button to left-click-drag (with a drag threshold) per follow-up feedback.setCurrentIndexinstead ofselecton return, matching the pattern already used elsewhere in the same file.See
docs/DECISIONS.md(DR-026 through DR-032) for the design rationale behind each judgment call in this set.Test plan
ruff check/ruff format --check— cleanpytestsuite — 517 passed, 1 skipped./scripts/smoke-ui-exit.sh(offscreen) — no Qt shutdown errors./scripts/check-version-bump.shagainst this PR's base — confirms 0.1.47 → 0.2.0Closes #111, #86, #64, #89, #109, #57. Refs #58, #21 (commented for re-test; see issue threads).
Stacked on #128 — last of the 11-PR sequential chain into
main._on_viewer_delete_requested() had a leftover hide_prunes guard that unconditionally suppressed Advance on Tag whenever Hide Deleted was active and the delete was new -- exactly the common case for triage workflows, per user report ("when Hide Deleted is enabled, AoT on delete isn't triggering"). That guard predates AoT and isn't actually needed: issue #38's pending-resync pin mechanism (defer_resync/_resolve_pending_resync) already resolves itself correctly inside navigate_next()/advance_to_next_non_deleted() via _go_to_session_index, which checks _pending_resync before moving. AoT calling navigate_next() immediately after a delete is exactly "the user navigating away" that mechanism was designed to handle. Removed the guard so _should_advance_on_tag() is the only thing deciding whether to advance, in either direction: Tags & Delete / Delete Only now advance correctly even when the delete prunes the image under Hide Deleted, and Disabled still holds steady exactly as #38 intended. Added regression tests for both directions (advances when AoT is on, holds steady when AoT is off, both with Hide Deleted active). Threading notes: pure main-thread UI logic, no change to the threading model.cb50a19e7ec60b3fef92