New:
- ▶ Queue button beside the Mode dropdown — the in-node twin of
ComfyUI's Queue button (same code path, so Persistent Mask re-runs
work identically) usable from both modes and fullscreen.
- Re-roll after ✨ Quick Photo Refine now re-runs the ✨ pass (same as
pressing ✨ again) instead of silently corrupting the session.
- Outpaint Accept shows the approved canvas instantly (optimistic swap
from the already-loaded review image; commit lands in the background,
and image_w/h update immediately so edits in the gap map correctly).
- One-shot migration for v2.0.0–v2.1.0 workflow saves: the lir_seq
widget removed in 2.2.0 shifted positional widgets_values, corrupting
quick_prompt_mode/shrink_seq and failing Queue validation. Detected
semantically (a number on a combo), repaired on load, self-deactivates
on the next save.
Fixed (three-agent audit of backend flows, frontend flows, and the
JS↔Python contract):
- Reset was a silent no-op with Persistent Mask ON (queue hook cleared
the reset flag pre-serialization; hook now skips reset-pending nodes).
- Internal action queues bumped EVERY persistent-mask node — editing
node A re-ran node B's held mask. Initiator-scoped now.
- Re-roll / repeat-✨ popped history before sampling: a Cancel/OOM
permanently lost the last result. Both are now sample-first,
replace-on-success.
- Re-roll/Vary after Undo/Redo/✨ re-ran stale mask widgets (worst
case: a bogus corner-circle edit from click_x=-1). History entries
now carry provenance; Re-roll/Vary gate on it.
- Reset after _HISTORY_CAP eviction rebased onto a mid-session image
and overwrote the session base. Base fallbacks prefer source_latent.
- FLUX 2 large-canvas decodes missed the anti-NaN tiled path (threshold
assumed an 8x VAE); ratio now queried from the VAE.
- Vary chooser surviving an Undo could commit onto the wrong history
entry (stash cleared on undo/redo; JS closes the chooser).
- No-op edits (Remove without CLIP, empty mask) pushed junk history and
killed Redo.
- Esc was dead over the Vary chooser / Outpaint review (hover lost to
the overlay); Esc in a fullscreen popup exited fullscreen and
destroyed the popup (defer + rescue on exit + listener leak fixed).
- Remove's Xtra-Fine restore state now survives workflow reloads
(node.properties).
- Pan speed under graph zoom, context menu behind fullscreen,
Smpl Denoise 0.0 failing server validation, mode fallback order.