Changelog¶
2026-04-01 — Job Folder System (Issue #617)¶
- feat: New
JobFolderclass inexport/job.py— persistent intermediate file storage alongside output, replacing temp directories. Supports resume, force-clean, and cleanup modes. - feat:
ExportRequestgainsforceandcleanupfields for controlling job folder lifecycle. - feat:
apply_style()gainssave_lines_toparameter — saves the styled.linesdocument to a specified path during style transfer. - feat: All export processors (lines, images, video) now save the complete artifact chain to the job folder:
.lines→.svg→ final format (.png/.jpg/.mp4). - feat: Video export now extracts all requested source frames into the job folder before styling or assembly, then reuses those cached raw frames for resume.
- feat: Source video frames now live under
src/with thesrc--prefix (src/src--{stem}--{NNN}.png), and job-folder frame artifacts use zero-padded numbering derived from the video's total frame count. - feat:
VEXY_LINES_JOB_FOLDERenvironment variable overrides computed job folder path. - test: 24 new tests for
JobFolder— path resolution, frame naming, resume detection, force/cleanup, copy-to-output.
Previous releases¶
See GitHub releases for earlier versions.