- 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
Previously, _get_promoted_widget_context_cache_key included widgets_values
from context nodes, so changing a widget inside a promoted subgraph
invalidated the entire cache snapshot even when promotion topology and
other nodes were unchanged.
This makes promoted-context snapshots key off node structure and
topology only, while individual nodes are still reanalyzed when their
widgets_values actually change.
- 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.
When a subgraph exposes a promoted widget and the instance value or connected
inner widget contains a usable model path, create a top-level model reference
on the subgraph node instead of only pointing to the inner definition node.
This lets resolution, location, and queue updates target the instance widget
directly.
Also handle serialized subgraph instances that omit proxyWidgets by
reconstructing the same promotion from subgraph input/link metadata, and
extend widget values for promoted inputs in the workflow updater.