comfyui-mcp 0.52.179 → 0.52.181

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6395,6 +6395,23 @@ function definitiveNonPromotedNodeType(res) {
6395
6395
  const unwrapped = type.slice(1, -1).trim();
6396
6396
  return unwrapped || null;
6397
6397
  }
6398
+ /** Panel `graph_get_subgraph` flattens parentheses in the node type before
6399
+ * embedding it in the definitive ordinary-node refusal (panel#1941), so a live
6400
+ * `Power Lora Loader (rgthree)` is reported as `Power Lora Loader rgthree`.
6401
+ * The scope probe still publishes the real type. Compare after that flatten;
6402
+ * the write fence must keep the unflattened scope type (#2394). */
6403
+ function flattenDefinitiveOrdinaryNodeType(type) {
6404
+ return type.replace(/[()]/g, " ").replace(/\s+/g, " ").trim();
6405
+ }
6406
+ function sameDefinitiveOrdinaryNodeType(fromSubgraphRead, fromScopeProbe) {
6407
+ if (!fromSubgraphRead)
6408
+ return false;
6409
+ if (fromSubgraphRead === fromScopeProbe)
6410
+ return true;
6411
+ const left = flattenDefinitiveOrdinaryNodeType(fromSubgraphRead);
6412
+ const right = flattenDefinitiveOrdinaryNodeType(fromScopeProbe);
6413
+ return left.length > 0 && left === right;
6414
+ }
6398
6415
  /** The promoted-write refresh is deliberately narrower than the broad panel
6399
6416
  * call retry classifier. Only known transport/reconnect shapes may consume the
6400
6417
  * one explicit refresh; application refusals must not be replayed. */
@@ -7199,7 +7216,7 @@ async function preparePromotedWidgetWrite(ctx, nodeId, widget) {
7199
7216
  if (!targetScope.nodeIdentity)
7200
7217
  return null;
7201
7218
  const expectedNodeType = definitiveNonPromotedNodeType(sub);
7202
- if (expectedNodeType !== targetScope.nodeType) {
7219
+ if (!sameDefinitiveOrdinaryNodeType(expectedNodeType, targetScope.nodeType)) {
7203
7220
  return promotedWriteRefusal(widget, "the ordinary node type changed between the scope and subgraph reads");
7204
7221
  }
7205
7222
  if (ctx.tabExpectedNodeTypeFenceCapability?.() !== true) {