comfyui-mcp 0.52.0 → 0.52.2

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.
Files changed (84) hide show
  1. package/README.md +0 -7
  2. package/dist/boot.js +41 -0
  3. package/dist/boot.js.map +1 -1
  4. package/dist/comfyui/client.js +6 -27
  5. package/dist/comfyui/client.js.map +1 -1
  6. package/dist/comfyui/cloud-client.js +9 -1
  7. package/dist/comfyui/cloud-client.js.map +1 -1
  8. package/dist/comfyui/upload-target.js +38 -0
  9. package/dist/comfyui/upload-target.js.map +1 -0
  10. package/dist/orchestrator/agent-backend.js.map +1 -1
  11. package/dist/orchestrator/blind-native-gate.js +138 -0
  12. package/dist/orchestrator/blind-native-gate.js.map +1 -0
  13. package/dist/orchestrator/claude-backend.js +172 -50
  14. package/dist/orchestrator/claude-backend.js.map +1 -1
  15. package/dist/orchestrator/codex-backend.js +67 -11
  16. package/dist/orchestrator/codex-backend.js.map +1 -1
  17. package/dist/orchestrator/grok-backend.js +24 -14
  18. package/dist/orchestrator/grok-backend.js.map +1 -1
  19. package/dist/orchestrator/index.js +23 -1
  20. package/dist/orchestrator/index.js.map +1 -1
  21. package/dist/orchestrator/mcp-session-health.js +88 -7
  22. package/dist/orchestrator/mcp-session-health.js.map +1 -1
  23. package/dist/orchestrator/panel-agent.js +159 -6
  24. package/dist/orchestrator/panel-agent.js.map +1 -1
  25. package/dist/orchestrator/panel-tools.js +62 -14
  26. package/dist/orchestrator/panel-tools.js.map +1 -1
  27. package/dist/orchestrator/preview-budget.js +41 -0
  28. package/dist/orchestrator/preview-budget.js.map +1 -0
  29. package/dist/orchestrator/session-store.js +43 -0
  30. package/dist/orchestrator/session-store.js.map +1 -1
  31. package/dist/orchestrator/turn-origins.js +68 -26
  32. package/dist/orchestrator/turn-origins.js.map +1 -1
  33. package/dist/services/download-cache.js +17 -4
  34. package/dist/services/download-cache.js.map +1 -1
  35. package/dist/services/download-jobs.js +136 -1
  36. package/dist/services/download-jobs.js.map +1 -1
  37. package/dist/services/extra-paths.js +57 -4
  38. package/dist/services/extra-paths.js.map +1 -1
  39. package/dist/services/image-management.js +9 -2
  40. package/dist/services/image-management.js.map +1 -1
  41. package/dist/services/listener-ownership.js +17 -5
  42. package/dist/services/listener-ownership.js.map +1 -1
  43. package/dist/services/model-resolver.js +106 -45
  44. package/dist/services/model-resolver.js.map +1 -1
  45. package/dist/services/node-management.js +85 -10
  46. package/dist/services/node-management.js.map +1 -1
  47. package/dist/services/process-control.js +110 -8
  48. package/dist/services/process-control.js.map +1 -1
  49. package/dist/services/queue-monitor.js +54 -7
  50. package/dist/services/queue-monitor.js.map +1 -1
  51. package/dist/services/queue-monitor.stall.test.js +86 -1
  52. package/dist/services/queue-monitor.stall.test.js.map +1 -1
  53. package/dist/services/registry-client.js +31 -18
  54. package/dist/services/registry-client.js.map +1 -1
  55. package/dist/services/ui-bridge.js +80 -0
  56. package/dist/services/ui-bridge.js.map +1 -1
  57. package/dist/services/workflow-settings-extractor.js +1 -1
  58. package/dist/services/workflow-settings-extractor.js.map +1 -1
  59. package/dist/tools/image-management.js +20 -6
  60. package/dist/tools/image-management.js.map +1 -1
  61. package/dist/tools/model-management.js +21 -2
  62. package/dist/tools/model-management.js.map +1 -1
  63. package/locales/ar/main.json +1 -0
  64. package/locales/en/main.json +1 -0
  65. package/locales/es/main.json +1 -0
  66. package/locales/fa/main.json +1 -0
  67. package/locales/fr/main.json +1 -0
  68. package/locales/ja/main.json +1 -0
  69. package/locales/ko/main.json +1 -0
  70. package/locales/pt-BR/main.json +1 -0
  71. package/locales/ru/main.json +1 -0
  72. package/locales/tr/main.json +1 -0
  73. package/locales/zh/main.json +1 -0
  74. package/locales/zh-TW/main.json +1 -0
  75. package/package.json +3 -5
  76. package/plugin/skills/model-registry/SKILL.md +1 -1
  77. package/scripts/check-docs-links.mjs +23 -0
  78. package/scripts/check-docs-mdx.mjs +71 -0
  79. package/scripts/smoke-install.mjs +10 -9
  80. package/dist/services/download-root-correspondence.js +0 -64
  81. package/dist/services/download-root-correspondence.js.map +0 -1
  82. package/model-settings.json +0 -509
  83. package/model-settings.user.jsonc.example +0 -97
  84. package/scripts/postinstall.mjs +0 -29
@@ -47,9 +47,26 @@ const HISTORY_TAIL_ITEMS = 32;
47
47
  // Absolute floor of zero-forward-progress time after which a running job is
48
48
  // flagged as stalled EVEN when the server still looks alive here — the backstop
49
49
  // for a genuine in-node deadlock on a reachable ComfyUI (#183). Far beyond any
50
- // legitimate single-node runtime (a long tiled VAE decode / video sample is
51
- // minutes, not half an hour), so it never trips on a healthy render.
50
+ // legitimate single-node NON-training runtime (a long tiled VAE decode / video
51
+ // sample is minutes, not half an hour), so it never trips on a healthy render.
52
+ // Training nodes legitimately exceed it (hours of silent tqdm), which is why
53
+ // report() exempts runs whose graph contains a known trainer class (#1652).
52
54
  const HARD_STALL_FLOOR_MS = 30 * 60 * 1000; // 30 minutes
55
+ // Node classes whose HEALTHY runtime legitimately exceeds the hard floor with
56
+ // ZERO forward-progress frames: ComfyUI's built-in LoRA training only rewrites
57
+ // a tqdm bar on stdout — no per-step `progress` WS frames — so lastActivityTs
58
+ // never bumps and idleFor grows monotonically for the whole run (#1652). A
59
+ // 1500-step SDXL LoRA at ~2.6 s/it runs ~65 minutes and crossed the 30-minute
60
+ // floor every single time; the false STALLED note (whose remedy is to CANCEL
61
+ // the run) was structural, not a race. Best-effort list of known trainer
62
+ // classes — deliberately narrow: a class that also appears in ordinary render
63
+ // graphs (e.g. LoraModelLoader) must NOT be added, or common renders would
64
+ // silently lose the deadlock backstop.
65
+ const TRAINING_NODE_CLASS_TYPES = new Set([
66
+ "TrainLoraNode", // ComfyUI core
67
+ "TrainLoraNodeAdvanced", // core advanced variant
68
+ "LoraTrainer", // common community trainer packs
69
+ ]);
53
70
  class QueueMonitorImpl {
54
71
  ws = null;
55
72
  url = null;
@@ -70,6 +87,7 @@ class QueueMonitorImpl {
70
87
  progressValue: null,
71
88
  progressMax: null,
72
89
  queueRemaining: 0,
90
+ runningNodeClassTypes: {},
73
91
  lastActivityTs: null,
74
92
  lastFrameTs: null,
75
93
  lastServerAliveTs: null,
@@ -389,6 +407,7 @@ class QueueMonitorImpl {
389
407
  this.state.currentNode = null;
390
408
  this.state.progressValue = null;
391
409
  this.state.progressMax = null;
410
+ this.state.runningNodeClassTypes = {};
392
411
  this.state.lastActivityTs = null;
393
412
  }
394
413
  onMessage(text) {
@@ -619,6 +638,20 @@ class QueueMonitorImpl {
619
638
  const first = running[0];
620
639
  if (Array.isArray(first) && typeof first[1] === "string") {
621
640
  this.adoptRunningPrompt(first[1]);
641
+ // Index 2 is the full prompt graph (node id → { class_type, ... }) — the
642
+ // ONLY place this passive client learns the running run's class types.
643
+ // Captured so report() can tell a long TRAINING node (no per-step
644
+ // progress frames by design, #1652) from a wedge.
645
+ const prompt = first[2];
646
+ const types = {};
647
+ if (prompt && typeof prompt === "object" && !Array.isArray(prompt)) {
648
+ for (const [nodeId, def] of Object.entries(prompt)) {
649
+ const ct = def?.class_type;
650
+ if (typeof ct === "string")
651
+ types[nodeId] = ct;
652
+ }
653
+ }
654
+ this.state.runningNodeClassTypes = types;
622
655
  }
623
656
  else if (running.length === 0 && this.state.runningPromptId !== null) {
624
657
  // Empty queue → the tracked run is over. Skip the clear if a run was
@@ -739,11 +772,25 @@ class QueueMonitorImpl {
739
772
  // also freezes ComfyUI's own HTTP handler → the /queue heartbeat lapses and
740
773
  // `serverAlive` catches it at stallMs without this floor; the floor only
741
774
  // covers the rarer non-GIL wedge (a node stuck in a network/IO wait) that
742
- // keeps HTTP alive. The floor is a deliberate finite tradeoff: a healthy but
743
- // progress-silent node exceeding it is re-flagged (unavoidable — "busy" and
744
- // "wedged" are indistinguishable from outside past some horizon), so it is
745
- // set far beyond any legitimate single-node runtime.
746
- const hardStalled = running && idleFor >= Math.max(stallMs, HARD_STALL_FLOOR_MS);
775
+ // keeps HTTP alive.
776
+ //
777
+ // TRAINING EXEMPTION (#1652): a run whose CURRENT node is a known trainer —
778
+ // or, when the current node is unknown here (the reported case: attaching
779
+ // mid-run sees no progress_state transition, so currentNode stays null for
780
+ // the whole training), whose GRAPH contains one — legitimately sits silent
781
+ // for HOURS, so the floor must not override liveness for it: while the
782
+ // server keeps answering, it is not stalled. The tradeoff, stated plainly:
783
+ // a genuinely wedged trainer on a still-reachable server is no longer
784
+ // hard-flagged — but a GIL-holding deadlock freezes ComfyUI's HTTP too, and
785
+ // `serverAlive` catches that at stallMs regardless of node class. When the
786
+ // graph was never captured (poll never succeeded), nothing is exempt and
787
+ // the floor applies exactly as before.
788
+ const types = this.state.runningNodeClassTypes;
789
+ const currentType = this.state.currentNode !== null ? types[this.state.currentNode] : undefined;
790
+ const trainingRun = currentType !== undefined
791
+ ? TRAINING_NODE_CLASS_TYPES.has(currentType)
792
+ : Object.values(types).some((t) => TRAINING_NODE_CLASS_TYPES.has(t));
793
+ const hardStalled = running && !trainingRun && idleFor >= Math.max(stallMs, HARD_STALL_FLOOR_MS);
747
794
  const stalled = running && idleFor >= stallMs && (!serverAlive || hardStalled);
748
795
  const progress = this.state.progressValue !== null && this.state.progressMax !== null
749
796
  ? `${this.state.progressValue}/${this.state.progressMax}`
@@ -1 +1 @@
1
- {"version":3,"file":"queue-monitor.js","sourceRoot":"","sources":["../../src/services/queue-monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue-monitor.js","sourceRoot":"","sources":["../../src/services/queue-monitor.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,10 @@
8
8
  // here (no ws frame + no successful /queue poll within the window). A reachable
9
9
  // ComfyUI keeps the 1 Hz poll fresh, so a busy decode stays live; a crashed /
10
10
  // wedged server lets the heartbeat lapse → a real stall still surfaces. A hard
11
- // floor of 30 min backstops a genuine in-node deadlock on a reachable server.
11
+ // floor of 30 min backstops a genuine in-node deadlock on a reachable server —
12
+ // but NOT for runs whose graph contains a known TRAINING node class (#1652):
13
+ // TrainLoraNode & co. emit no per-step progress frames for hours by design, so
14
+ // the floor fired on every healthy long training run.
12
15
  import { beforeEach, describe, expect, it } from "vitest";
13
16
  import { QueueMonitor } from "./queue-monitor.js";
14
17
  const priv = QueueMonitor;
@@ -23,6 +26,7 @@ function primeRunning(opts) {
23
26
  priv.state.progressValue = 4;
24
27
  priv.state.progressMax = 8;
25
28
  priv.state.queueRemaining = 1;
29
+ priv.state.runningNodeClassTypes = opts.nodeClassTypes ?? {};
26
30
  priv.state.lastActivityTs = now - opts.idleForMs;
27
31
  priv.state.lastServerAliveTs = opts.serverAliveAgoMs == null ? null : now - opts.serverAliveAgoMs;
28
32
  priv.state.lastFrameTs = opts.wsFrameAgoMs == null ? null : now - opts.wsFrameAgoMs;
@@ -36,6 +40,7 @@ beforeEach(() => {
36
40
  priv.state.progressValue = null;
37
41
  priv.state.progressMax = null;
38
42
  priv.state.queueRemaining = 0;
43
+ priv.state.runningNodeClassTypes = {};
39
44
  priv.state.lastActivityTs = null;
40
45
  priv.state.lastFrameTs = null;
41
46
  priv.state.lastServerAliveTs = null;
@@ -75,4 +80,84 @@ describe("QueueMonitor.report — liveness-gated stall (#183)", () => {
75
80
  expect(priv.report(STALL_MS).stalled).toBe(false);
76
81
  });
77
82
  });
83
+ describe("QueueMonitor.report — training exemption from the hard floor (#1652)", () => {
84
+ // A TrainLoraNode run emits no per-step progress frames: idleFor grows for
85
+ // the whole run while ComfyUI stays perfectly responsive. The hard floor
86
+ // fired on EVERY training run past 30 minutes and the injected note told the
87
+ // agent to cancel it — killing a healthy 65-minute job.
88
+ const TRAINING_GRAPH = {
89
+ "3": "LoadImageTextDataSetFromFolder",
90
+ "5": "MakeTrainingDataset",
91
+ "7": "TrainLoraNode",
92
+ "9": "SaveLoRA",
93
+ };
94
+ it("does NOT flag a healthy training run past the hard floor — current node unknown (the reported case)", () => {
95
+ // Attached mid-run: no progress_state transition ever arrives, so
96
+ // currentNode stays null and only the /queue graph names the trainer.
97
+ primeRunning({
98
+ idleForMs: HARD_FLOOR_MS + 15 * 60_000, // 45 min in — mid-training
99
+ serverAliveAgoMs: 800, // /queue poll fresh: server fully responsive
100
+ wsFrameAgoMs: null,
101
+ currentNode: null,
102
+ nodeClassTypes: TRAINING_GRAPH,
103
+ });
104
+ const rep = priv.report(STALL_MS);
105
+ expect(rep.stalled).toBe(false);
106
+ expect(rep.stalledForMs).toBe(0);
107
+ });
108
+ it("does NOT flag when the current node IS the trainer", () => {
109
+ primeRunning({
110
+ idleForMs: HARD_FLOOR_MS + 60_000,
111
+ serverAliveAgoMs: 800,
112
+ wsFrameAgoMs: null,
113
+ currentNode: "7",
114
+ nodeClassTypes: TRAINING_GRAPH,
115
+ });
116
+ expect(priv.report(STALL_MS).stalled).toBe(false);
117
+ });
118
+ it("still hard-flags a NON-training node past the floor, even inside a training graph", () => {
119
+ // Stuck on an ordinary node in a graph that also trains: the exemption is
120
+ // scoped to the trainer itself, so the deadlock backstop is preserved.
121
+ primeRunning({
122
+ idleForMs: HARD_FLOOR_MS + 60_000,
123
+ serverAliveAgoMs: 500,
124
+ wsFrameAgoMs: null,
125
+ currentNode: "9", // SaveLoRA
126
+ nodeClassTypes: TRAINING_GRAPH,
127
+ });
128
+ expect(priv.report(STALL_MS).stalled).toBe(true);
129
+ });
130
+ it("still hard-flags an ordinary render past the floor when class types were captured", () => {
131
+ primeRunning({
132
+ idleForMs: HARD_FLOOR_MS + 60_000,
133
+ serverAliveAgoMs: 500,
134
+ wsFrameAgoMs: null,
135
+ currentNode: "4",
136
+ nodeClassTypes: { "4": "KSampler", "6": "SaveImage" },
137
+ });
138
+ expect(priv.report(STALL_MS).stalled).toBe(true);
139
+ });
140
+ it("still flags a training run when the server has gone DARK (liveness gate is untouched)", () => {
141
+ primeRunning({
142
+ idleForMs: STALL_MS + 60_000,
143
+ serverAliveAgoMs: STALL_MS + 60_000,
144
+ wsFrameAgoMs: STALL_MS + 60_000,
145
+ currentNode: null,
146
+ nodeClassTypes: TRAINING_GRAPH,
147
+ });
148
+ expect(priv.report(STALL_MS).stalled).toBe(true);
149
+ });
150
+ it("applies the floor as before when the /queue graph was never captured", () => {
151
+ // No class types on record (poll never succeeded / pre-fix state) → nothing
152
+ // is exempt; behaviour is exactly the pre-fix backstop.
153
+ primeRunning({
154
+ idleForMs: HARD_FLOOR_MS + 60_000,
155
+ serverAliveAgoMs: 500,
156
+ wsFrameAgoMs: null,
157
+ currentNode: null,
158
+ nodeClassTypes: {},
159
+ });
160
+ expect(priv.report(STALL_MS).stalled).toBe(true);
161
+ });
162
+ });
78
163
  //# sourceMappingURL=queue-monitor.stall.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue-monitor.stall.test.js","sourceRoot":"","sources":["../../src/services/queue-monitor.stall.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue-monitor.stall.test.js","sourceRoot":"","sources":["../../src/services/queue-monitor.stall.test.ts"],"names":[],"mappings":"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"}
@@ -112,8 +112,14 @@ export async function searchNodes(query, options = {}) {
112
112
  // the fallback has no pagination of its own, so it must not answer for a
113
113
  // later page (an out-of-window exact match would otherwise surface ON page 2).
114
114
  if (lowerQuery && filtered.length === 0 && page === 1) {
115
- const candidate = registryIdCandidateFromQuery(query);
116
- if (candidate) {
115
+ const candidates = registryIdCandidatesFromQuery(query);
116
+ // The candidates are guesses, not one answer: a 404 only rules out THAT id,
117
+ // so keep trying the rest. A non-404 failure means absence was never
118
+ // established for that candidate — remember it; if no candidate resolves,
119
+ // reporting "no matches" would be an unearned negative, so refuse with the
120
+ // reason instead of returning the empty page.
121
+ let unresolved;
122
+ for (const candidate of candidates) {
117
123
  try {
118
124
  const details = await getNodePackDetails(candidate);
119
125
  logger.info(`Registry search "${query}" matched nothing in the fetched window, ` +
@@ -121,41 +127,48 @@ export async function searchNodes(query, options = {}) {
121
127
  return [normalizeSearchResult(details)];
122
128
  }
123
129
  catch (err) {
124
- // Only an observed 404 establishes "no pack with that id". Anything
125
- // else (500, network) means the fallback could not answer — and the
126
- // window search cannot establish absence on its own (that is why the
127
- // fallback exists), so reporting "no matches" would be an unearned
128
- // negative. Refuse with the reason instead.
129
130
  const status = err instanceof RegistryError
130
131
  ? err.details?.status
131
132
  : undefined;
132
133
  if (status !== 404) {
133
- throw new RegistryError(`Registry search "${query}" matched nothing in the fetched pack window, ` +
134
- `and the exact-id fallback for "${candidate}" could not be resolved ` +
135
- `(${err instanceof Error ? err.message : String(err)}) — so "no matches" ` +
136
- `cannot be confirmed. Retry, or look the pack up directly with ` +
137
- `search_custom_nodes (action:"details").`);
134
+ unresolved ??= err;
135
+ continue;
138
136
  }
139
137
  logger.debug(`Registry exact-id fallback for "${query}": no pack with id "${candidate}" (404)`);
140
138
  }
141
139
  }
140
+ if (unresolved !== undefined) {
141
+ throw new RegistryError(`Registry search "${query}" matched nothing in the fetched pack window, ` +
142
+ `and the exact-id fallback could not be resolved ` +
143
+ `(${unresolved instanceof Error ? unresolved.message : String(unresolved)}) — so "no matches" ` +
144
+ `cannot be confirmed. Retry, or look the pack up directly with ` +
145
+ `search_custom_nodes (action:"details").`);
146
+ }
142
147
  }
143
148
  logger.info(`Registry search "${query}": fetched ${allNodes.length}, matched ${filtered.length}, returning ${paged.length} (page ${page}, limit ${limit})`);
144
149
  return paged.map(normalizeSearchResult);
145
150
  }
146
151
  /**
147
- * Normalize a free-text query to a candidate Comfy Registry pack id: lowercase,
148
- * runs of non-alphanumerics collapsed to single hyphens, edges trimmed
149
- * ("comfyui kjnodes" → "comfyui-kjnodes"). Undefined when nothing usable
150
- * remains.
152
+ * Normalize a free-text query to candidate Comfy Registry pack ids, most
153
+ * literal first: lowercase, runs of non-alphanumerics collapsed to single
154
+ * hyphens, edges trimmed ("comfyui kjnodes" → "comfyui-kjnodes").
155
+ *
156
+ * #773 recurrence (0.52.1): one slug is not enough. Registry ids are derived
157
+ * from GitHub repo names, and most packs live under a "ComfyUI-" repo prefix —
158
+ * so "WanVideoWrapper" slugs to "wanvideowrapper" while the real pack is
159
+ * "comfyui-wanvideowrapper" (same for VideoHelperSuite, SAM3). The endpoint is
160
+ * case-insensitive but not prefix-insensitive, so the prefixed form is offered
161
+ * as a second candidate unless the slug already carries it.
151
162
  */
152
- export function registryIdCandidateFromQuery(query) {
163
+ export function registryIdCandidatesFromQuery(query) {
153
164
  const slug = query
154
165
  .trim()
155
166
  .toLowerCase()
156
167
  .replace(/[^a-z0-9]+/g, "-")
157
168
  .replace(/^-+|-+$/g, "");
158
- return slug.length > 0 ? slug : undefined;
169
+ if (slug.length === 0)
170
+ return [];
171
+ return slug.startsWith("comfyui-") ? [slug] : [slug, `comfyui-${slug}`];
159
172
  }
160
173
  /** Coerce the registry's object-shaped `latest_version` into a string. */
161
174
  function normalizeSearchResult(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../../src/services/registry-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../../src/services/registry-client.ts"],"names":[],"mappings":"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"}
@@ -713,6 +713,52 @@ export function requiresWorkflowStampEnforcement(cmd) {
713
713
  return true;
714
714
  return ACTIVE_WORKFLOW_MUTATORS.has(name);
715
715
  }
716
+ /** #602 — commands whose execution and reply never reference a canvas (Manager
717
+ * registry/server operations, ComfyUI-server controls). Mirrors the panel's
718
+ * CANVAS_INDEPENDENT_COMMANDS: a stale stamp/target pairing is irrelevant to
719
+ * them, so the dispatch-time agreement gate must not refuse them. */
720
+ const STAMP_TARGET_CANVAS_INDEPENDENT = new Set([
721
+ "nodes_search",
722
+ "nodes_list",
723
+ "nodes_install",
724
+ "nodes_queue_status",
725
+ "graph_update_node",
726
+ "comfy_reboot",
727
+ "free_vram",
728
+ ]);
729
+ /** #1656 — commands that read or mutate whichever canvas the routed tab has ACTIVE,
730
+ * and therefore may only be dispatched when the session's workflow stamp and the
731
+ * tab's reported active workflow AGREE (see the dispatch gate in send()).
732
+ *
733
+ * Mirrors the panel's activeWorkflowFenceApplies as far as the server can evaluate
734
+ * it. Exempt, deliberately:
735
+ * - canvas-independent server/Manager commands (#602): no canvas to get wrong;
736
+ * - workflow_list: the fence-EXEMPT recovery probe — gating it would make the
737
+ * documented rebind depend on the fence being already-correct (panel #932's
738
+ * circularity), and its handler reads the live binding at execution time, so a
739
+ * stale pairing cannot make it report a stale answer;
740
+ * - workflow_open / workflow_new: navigation/creation with their own explicit or
741
+ * new target — they are how a diverged session re-selects;
742
+ * - workflow_rename / workflow_close carrying a path selector: the selector may
743
+ * name a genuinely NON-active workflow, which the panel resolves precisely and
744
+ * exempts; the server cannot evaluate that, so those stay with the panel's
745
+ * fence rather than risk a false refusal of a legitimate background op. */
746
+ export function requiresStampTargetAgreement(cmd) {
747
+ const name = typeof cmd.cmd === "string" ? cmd.cmd : "";
748
+ if (!name)
749
+ return false;
750
+ if (STAMP_TARGET_CANVAS_INDEPENDENT.has(name))
751
+ return false;
752
+ if (name === "workflow_list" || name === "workflow_open" || name === "workflow_new")
753
+ return false;
754
+ if (name === "workflow_rename" || name === "workflow_close") {
755
+ const path = cmd.path;
756
+ return !(typeof path === "string" && path.trim());
757
+ }
758
+ if (name.startsWith("graph_"))
759
+ return true;
760
+ return name === "workflow_save" || name === "workflow_save_as";
761
+ }
716
762
  /**
717
763
  * Default reply timeout for a MUTATING command with no explicit timeout.
718
764
  *
@@ -3912,6 +3958,40 @@ export class UiBridge {
3912
3958
  return Promise.reject(capabilityMissing ? markCapabilityRefusal(refusal) : refusal);
3913
3959
  }
3914
3960
  }
3961
+ // #1656 — the stamp and the routing target are resolved from DIFFERENT inputs,
3962
+ // and after a tab switch they can name different canvases. Routing follows the
3963
+ // panel's re-hello at once (the migration alias / last-active carry move the
3964
+ // connection onto the NEW canvas), while the stamp is resolved from the
3965
+ // CALLER'S address — for the shared scope, the conversation's issue-time
3966
+ // workflow, which is deliberately never re-resolved at dispatch (#570/#884) and
3967
+ // so still names the PREVIOUS canvas. The panel-side fence is meant to refuse
3968
+ // that pairing, but it compares the stamp against the frontend's LIVE identity,
3969
+ // which can lag the very switch the hello already reported — and in that window
3970
+ // the command executes on the previous canvas instead of being refused
3971
+ // (observed: outline + save ran on the prior workflow after the switch and
3972
+ // returned its uuid/path, with no error).
3973
+ //
3974
+ // This side sees both halves: the session's stamp (the caller-address answer)
3975
+ // and the identity the routed tab last advertised (the canonical-id answer,
3976
+ // refreshed by every hello). When BOTH are known and they DISAGREE, the
3977
+ // command's fence provably does not name the canvas it would land on, so refuse
3978
+ // BEFORE the socket write — nothing is dispatched, and the refusal names the
3979
+ // documented rebind. With a settled panel this changes no outcome (a
3980
+ // mismatched stamp is refused there too); it closes the window in which the
3981
+ // refusal does not happen. An UNREADABLE side is not evidence of divergence:
3982
+ // either value missing keeps the existing behaviour and lets the panel fence
3983
+ // judge. And a caller addressing the connection by its canonical id is skipped
3984
+ // outright — both answers then come from the same lookup and can only agree.
3985
+ if (opts.tabId && opts.tabId !== conn.tabId && requiresStampTargetAgreement(cmd)) {
3986
+ const issuedFor = this.resolveTabWorkflowUuid?.(opts.tabId);
3987
+ const landedOn = this.resolveTabWorkflowUuid?.(conn.tabId);
3988
+ if (issuedFor && landedOn && issuedFor !== landedOn) {
3989
+ return Promise.reject(markDispatched(new Error(`workflow instance mismatch: this command was issued for workflow instance ${issuedFor}, ` +
3990
+ `but the tab it routed to has since reported a different active workflow (${landedOn}). ` +
3991
+ `Nothing was dispatched. Re-target with panel_set_workflow_target({mode:"current"}), ` +
3992
+ `then retry.`), false));
3993
+ }
3994
+ }
3915
3995
  if (conn.sock.readyState !== WebSocket.OPEN) {
3916
3996
  if (opts.tabId && UiBridge.isMailboxable(cmd)) {
3917
3997
  this.storeMailbox(opts.tabId, cmd);