* feat(nodes): single STRING version input + strict v001 naming
- koolook_versioning.py: shared version-token helper (bare number -> vNNN,
else verbatim; disable_versioning is the master off-switch)
- EasyAIPipeline: version is now ONE STRING field (typed or wired from a
global version node), replacing the INT widget
- Easy_VideoCombine: new STRING 'version' (replaces keep_silent_intermediate)
+ enable_overwrite; strict mode strips VHS's _NNNNN counter ->
<name>_v001.<ext>; empty keeps the legacy counter
- Fix empty JSON sidecar: record prompt graph as 'workflow' fallback when
extra_pnginfo is absent (headless/API path)
- forks: pin VHS dependency (1.7.7 / 0edce8e)
- sync_to_dev: add koolook_versioning.py to RUNTIME_PATHS
Tests: 199 passing; preflight_release all green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat(video-combine): JSON sidecar is a drag-loadable workflow
Write the litegraph workflow graph at the top level of the metadata JSON
(CreationTime tucked into graph 'extra') so dropping the sidecar onto the
ComfyUI canvas reloads the workflow, instead of a non-loadable wrapper.
Falls back to {CreationTime, prompt} when no graph is available (headless).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>