Skip to content

feat: Batch Feature Implementation - Complete (v2.0.0) - #6

Merged
H1ghSyst3m merged 2 commits into
mainfrom
feature/batch-processing
Feb 6, 2026
Merged

H1ghSyst3m merged 2 commits into
mainfrom
feature/batch-processing

Conversation

@H1ghSyst3m

@H1ghSyst3m H1ghSyst3m commented Feb 6, 2026 •

Copy link
Copy Markdown
Owner

Batch Feature Implementation - Complete (v2.0.0) ✅

Complete transformation of DIM-Creator into a batch processing system with multi-build support, session management, intelligent extraction, and sequential packaging.


✅ What's New

Multi-Build System

  • Build management: Create multiple builds (Build 01, 02, 03...) for a single product
  • Build inheritance: Build 01 is parent, Build 02+ inherit fields (Store, Product Name, Prefix, SKU, Tags, Image)
  • Field overrides: Child builds can customize inherited fields
  • Auto-promotion: Deleting Build 01 promotes Build 02 to parent
  • Drag-drop reordering: Reorder builds with automatic renumbering and parent promotion

Session Persistence

  • Auto-save: Session persists during runtime with 5-build backup rotation
  • Smart exit: Choose "Save & Exit" (preserve work) or "Clean & Exit" (delete all) on close
  • New Session: Fresh start button with store/prefix preservation
  • Restore state: Reopens last selected build and editor state

Sync Controls

  • Sync from Build 1: Pull latest metadata from parent (for Build 02+)
  • Sync to All Builds: Push changes to children with 7 field-specific options (for Build 01)
  • Override management: Clear overrides when syncing with confirmation dialogs

Intelligent Extraction

  • Smart detection: Skips dialog for simple cases (1 archive), shows for complex (2+ archives or templates)
  • Three-list interface: Content Archives / Template Archives / Ignored Archives with drag-drop reclassification
  • Heuristic ordering: 5 patterns detect part numbers automatically (_1of3, _Part01, trailing numbers, etc.)
  • Multi-build creation: Creates or appends to builds based on archive order

Batch Packaging

  • Pre-validation: Review all builds before packaging with status indicators
  • Dual progress: Overall progress (X of Y builds) + individual build progress
  • Three modes: Package All / Package Selected / Package Valid Only
  • Result summary: Detailed results with file sizes, errors, and clickable output paths
  • Graceful cancellation: Stop mid-batch, marks remaining as skipped

📂 New Structure

Documents/DIMCreator/
├── Builds/Build001/Content/, Build002/Content/, ...
├── Sessions/session.json, backups/ (last 5)
├── Config/ (stores, tags, DAZ folders)
└── Logs/

🔧 Code Quality (67 Improvements)

  • PEP 8 compliance, specific exceptions, symlink protection
  • Timer management, shared cleanup helpers, negative lookbehind regex
  • Thread safety, race condition fixes
  • Terminology consistency ("Build" throughout), resource leak fixes
  • Store/prefix preservation, comprehensive error handling

🎯 Breaking Changes

  • Workspace: DIMBuild/Content → Builds/BuildXXX/Content
  • Session auto-saves (no manual save)
  • Exit requires choice (Save/Clean) when work exists
  • Extraction dialog for 2+ archives or templates
  • "Generate" → "Package All" + "Package Selected"
  • Copy Template Setting reworked to Enable Template Detection

🎉 v2.0.0 Highlights

For Users:

  • Multi-build workflow for complex products
  • Session preservation with controlled cleanup
  • Smart extraction handles archives automatically
  • Batch packaging with visual progress

Ready for Release 🚀

Introduce a multi-build workspace and batch packaging workflow plus supporting infrastructure and UI updates.

Key changes:
- Add session & build management (session.py, build_manager.py) to persist multiple builds under Documents/DIMCreator/Builds/ (Build001, Build002, ...). Auto-create and backup session.json with restore and cleanup utilities.
- New dialogs for extraction, progress, validation, results, and exit (dialogs/*) to support multi-archive extraction and batch operations.
- UI updates in app.py and widgets: build list panel, per-build controls (add/delete/reorder/check), sync controls (sync from/push to children), visual status badges, larger window, and updated keyboard/toolbar behavior.
- Batch packaging flow: selection, validation dialog, BatchPackagingWorker integration, BatchProgressDialog, destination organization (flat or by-date), per-build packaging status and summary dialog.
- Extraction improvements: classify embedded archives, template detection (renamed setting enable_template_detection), heuristic ordering, ability to assign archives to specific builds, and improved temp-file handling.
- Per-build content handling: get_build_content_dir/get_build_dir helpers, cleanCurrentBuildFolder, content validation per build, build-level field overrides and inheritance from Build 1.
- Save debounce timer, automatic session saves and backups, save-on-change for many input fields, and safer cleanup (read-only removal handling).
- Numerous utility and packaging changes across packaging_utils.py, extraction_utils.py, settings, utils, widgets and others to support multi-build behavior.

Also update README and CHANGELOG to document v2.0 features (multi-build, batch ops, session persistence, extraction upgrades, sync tools).
Update APP_VERSION in version.py from 1.2.1 to 2.0.0 to reflect a major release/version bump.
@H1ghSyst3m
H1ghSyst3m merged commit a958343 into main Feb 6, 2026
1 check failed
@H1ghSyst3m
H1ghSyst3m deleted the feature/batch-processing branch February 6, 2026 22:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant