feat: support subgraph instances in node context menu

- 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
This commit is contained in:
Dariusz L
2026-08-03 21:05:49 +02:00
parent 0f70d85f56
commit 514b7d5114
5 changed files with 392 additions and 41 deletions
+4
View File
@@ -35,12 +35,16 @@ app.registerExtension({
},
nodeCreated(node) {
modelResolver.configureNodeContextMenu(node?.constructor);
modelResolver.configureNodeContextMenu(node);
queueMicrotask(() => modelResolver.configureNodeContextMenu(node));
modelResolver.configureWorkflowDependencyMarkerNode(node);
modelResolver.configureCustomNodeModelAdapter(node);
modelResolver.scheduleNodeContextMenuAnalysis();
},
loadedGraphNode(node) {
modelResolver.configureNodeContextMenu(node?.constructor);
modelResolver.configureNodeContextMenu(node);
queueMicrotask(() => modelResolver.configureNodeContextMenu(node));
modelResolver.configureWorkflowDependencyMarkerNode(node);
modelResolver.configureCustomNodeModelAdapter(node);
modelResolver.scheduleNodeContextMenuAnalysis();