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.
- Skip fuzzy matching for already-resolved model references in the backend
- Keep existing nodes in their previous result positions during incremental workflow analysis
- Simplify frontend workflow sync and add a content-preserving refresh path
- Preserve scroll position and suppress progress overlay during background Missing/Loaded Models refresh
- Add backend and frontend tests for the new incremental refresh behavior
Treat control_after_generate widgets that are implicitly inserted after seed
widgets as non-model widgets when analyzing dynamic node layouts. This
prevents the resolver from attempting to resolve control values such as
'fixed', 'randomize', 'increment', and 'decrement' as model paths.
Treat widget values under the configs and custom_nodes dynamic
categories as non-model references so the workflow analyzer does
not falsely mark them as missing models. Added a regression test
to verify a checkpoint widget is still detected when a config
widget is present.
Generic widget names such as model_name are no longer treated as local
model references by default. Only folder-backed schemas, known widget
indexes, or a model-typed combo/output pairing now admit an extensionless
value.
This prevents metadata/search nodes (for example Civitai Hash Fetcher)
with a model_name STRING input from being incorrectly reported as missing
models.
Added test_model_name_string_used_as_metadata_query_is_ignored to cover
the regression.
- Accept explicit model URNs without requiring model widget metadata
- Restrict model scanning to widgets with category/model hints or model-like filenames
- Remove over-broad single-widget-value detection path
- Add tests for cached model text, custom selectors, and constant/model slot edge cases