- FrameRange: reattach interactive controls on onConfigure instead of
leaving them permanently dead after a workflow load/undo/paste
- FrameRange: stop silently swapping an inverted trim range in the
preview - match _timeline_indices' documented zero-frame contract
- Append: bypass no longer concatenates audio/fps from clips that
aren't part of the bypassed output
- Append: preview loop point now accounts for bypass
- Crop: bypass now returns a full-frame bbox instead of a 2-tuple that
broke the node's declared 3-output contract
- Channel: shuffle preview now errors like the backend when "Mask" is
selected without a connected mask, instead of faking success
- host.ts: RAF loop keeps polling instead of stopping for good when
the canvas is briefly detached from the DOM
- Text: fix drag miscalibration when the preview is zoomed
- Eyedropper: restore picking from any canvas (VHS/WAS previews
included), only excluding the LiteGraph graph canvas
- video_io.py: stop swallowing comfy_api import failures
- Remove dead code: compat/comfy_v3.py (V3NodeBase), core/parameters.py,
core/validation.py, dbl-click-reset.ts, unused MEDIA_INPUT_TYPE
imports, an unreachable fragment in _ensure_rgba
- memory.py: narrow an overly broad except clause
- distort.py: finish the first progress bar before starting the second
- keyer.py: fix inconsistent indentation