ZipPacker now captures the full BAT_DEBUG log stream into an in-memory
buffer for the lifetime of the pack and writes it as bat-debug.log inside
the produced zip, so archives are self-describing for post-mortem
debugging (which assets were found, where they were rewritten to, which
files were missing, etc.).
The capture forces the blender_asset_tracer logger to DEBUG only on a
dedicated handler, so terminal verbosity is unchanged. The log is flushed
into the closed zip via append mode in close(), which also covers
post-transfer messages and KeyboardInterrupt / FileTransferError paths.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Cross-validation audit by Codex + Opus identified 14 issues:
CRITICAL:
- Fix _find_subdir_ci() prefix match accepting wrong folders (e.g.
Publish_old). Now uses exact case-insensitive match.
HIGH:
- Add pack-sequence CLI subcommand with unambiguous arg parsing.
Deprecate --sequence on pack (nargs='+' consumed the target).
- Fix Windows UNC/drive path normalization in bpathlib.make_absolute()
- Fix ZIP failure losing traceback + progress bar stuck on error
- Fix os.path.commonpath crash on cross-drive paths (new
derive_common_project helper)
- Fix progress bar saturating at 40% during trace (log scale)
MEDIUM:
- Add per-shot error isolation in sequence scan (collect all errors)
- Add memory warning for >50 files in sequence pack
- Improve pack-info.txt with dedup stats
- Wrap single Path in list for old operators (type consistency)
LOW/INFO:
- Document VERSION_RE pattern
- Add TASK_CHOICE_ITEMS empty guard
28 new tests in tests/test_sequence_pack.py, 0 regressions.
Co-Authored-By: Mario Hawat <mario@autourdeminuit.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add --sequence CLI flag to pack multiple blend files together with
shared dependency deduplication
- Add BAT_OT_sequence_pack Blender operator: scan a sequence folder for
latest published blend files, review with checkboxes, pack to ZIP
- Add studio template system (Autour de Minuit, La Cabane Productions)
with configurable folder conventions and task type selection
- Add BlenderProgressCallback for cursor progress indicator during pack
- Add ZIP write start/finish logging
- Deduplicate blend file paths in CLI when positional and --sequence overlap
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Guard DNA field accesses with has_field() checks for fields renamed or
removed across Blender versions (proxy, dup_group, texcomesh, nodetree,
etc.), fix mesh block pointer mismatch in path rewriting, fix mkrelative
IndexError when asset path is shorter than blend file path, and add
[BAT] console prints for tracing progress.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move operators and preferences out of __init__.py into dedicated modules.
Fix cyclic import by using proper AddonPreferences pattern. Replace
implicit .zip extension detection in CLI with explicit -z/--zip flag.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>