Create tags from sub-directories (fixes #31) #44

Closed
Grok wants to merge 2 commits from 0.1.20/issue-31-create-tags-from-subdirs into main
Member

Summary

Adds Create from Sub-directories to the tag panel (left of New Tag) so users can derive workspace tags from existing folder names and optionally auto-assign them to scanned images.

Closes #31 / DR-020.

Changes

  • UI: SubdirTagDialog with four checkboxes (images-only dirs, auto-tag, first-level only, replace user tags).
  • Core: subdir_tag_planner.py — pure planning logic; TagManager.plan_tags_from_subdirs() / create_tags_from_subdir_plan().
  • Behavior: Invalid directory names skipped; DELETE and duplicate tags preserved when replacing; auto-assignments undoable.
  • Tests: tests/test_subdir_tags.py (9 tests).
  • Docs: USER_GUIDE, CHANGELOG, README, DESIGN, TECHNICAL_OUTLINE, DR-020.

Release

Bumps VERSION to 0.1.21.

Threading notes

No worker changes; all work runs on the main thread against WorkingDB with short transactions via existing tag assignment paths.

## Summary Adds **Create from Sub-directories** to the tag panel (left of **New Tag**) so users can derive workspace tags from existing folder names and optionally auto-assign them to scanned images. Closes #31 / DR-020. ## Changes - **UI:** `SubdirTagDialog` with four checkboxes (images-only dirs, auto-tag, first-level only, replace user tags). - **Core:** `subdir_tag_planner.py` — pure planning logic; `TagManager.plan_tags_from_subdirs()` / `create_tags_from_subdir_plan()`. - **Behavior:** Invalid directory names skipped; `DELETE` and duplicate tags preserved when replacing; auto-assignments undoable. - **Tests:** `tests/test_subdir_tags.py` (9 tests). - **Docs:** USER_GUIDE, CHANGELOG, README, DESIGN, TECHNICAL_OUTLINE, DR-020. ## Release Bumps `VERSION` to **0.1.21**. ## Threading notes No worker changes; all work runs on the main thread against `WorkingDB` with short transactions via existing tag assignment paths.
Add a tag-panel action and dialog to derive workspace tags from
sub-directory names, with options to limit scope, auto-assign tags,
use first-level directory names, and replace existing user tags.
Includes pure planner logic, TagManager integration, and unit tests.
docs: PR-prep for issue #31 (release 0.1.21)
All checks were successful
CI / lint (pull_request) Successful in 12s
CI / test (pull_request) Successful in 3m4s
CI / nuitka-smoke (pull_request) Successful in 19m1s
31a2f626a9
Document Create from Sub-directories in the user guide, changelog,
README, and design specs; record DR-020; bump VERSION to 0.1.21.
Grok closed this pull request 2026-06-12 04:53:06 +00:00
All checks were successful
CI / lint (pull_request) Successful in 12s
CI / test (pull_request) Successful in 3m4s
CI / nuitka-smoke (pull_request) Successful in 19m1s

Pull request closed

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!44
No description provided.