Add frontend storage and restore flow for active backend downloads so
workflow context, missing model bindings, and queue UI state survive
browser refreshes.
- Add queue storage methods for loading/saving/removing active download
recovery entries with serializable metadata.
- Add restoreActiveDownloadsFromBackend and rebindActiveDownloadMissingModels
to resolve_download_methods.
- Hook restore and rebind into lifecycle graph methods.
- Add tests for recovery persistence and refresh restoration behavior.
The delegated local-match-actions listener was bound once on the shared
container, so it captured the initial missing-model object. When the
detail pane rewires after the user switches missing models, the click
handler still resolved against the stale capture and queued the wrong
slot. Resolve the current missing model from dialog state on each click
instead of reusing the first binding's closure, and add a regression
test that exercises switching missing models before clicking Exact.
- Replace full missing-models list rendering with virtual scroll container
- Improve splitter responsiveness by lowering layout frame stride to 1
- Add custom modal resize handle with pointer-event driven sizing
- Reduce live layout throttle from 40ms to 16ms
- Update related route assertions for new layout behavior
- Detect subgraph instance scope and distinguish top-level vs nested nodes
- Aggregate inner resolved models for outer subgraph instances so menus show
promoted and hidden models together
- Patch both class prototypes and individual node instances when they define
getExtraMenuOptions or getMenuOptions, preserving native menu hooks
- Re-inject context menu after loadedGraphNode and queueMicrotask for
subgraph-created nodes
- Add tests for menu injection on overridden getMenuOptions and instance
patching, plus subgraph scope and aggregation behavior
- Wrap node.widgets.splice in rgthree Power Lora Loader adapter so removals
made through the context menu trigger model resolution updates.
- Delay node context menu analysis when a workflow refresh is already
pending to avoid stale analysis.
- Extend workflow refresh retry logic to also retry when ComfyUI is still
serializing the previous workflow after a node widget change.
- Add tests for context menu removal detection, refresh retry behavior,
and deferred context analysis.