comfyui-mcp 0.51.3 → 0.51.4

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.
@@ -5443,6 +5443,9 @@ export async function runPanelOrchestrator() {
5443
5443
  persistPendingConnects();
5444
5444
  }
5445
5445
  if (url !== lastRetargetUrl) {
5446
+ // Captured BEFORE the reassignment: the address every mid-turn tab's
5447
+ // comfyui child is still serving, which is what the #1429 nudge names.
5448
+ const previousUrl = lastRetargetUrl;
5446
5449
  lastRetargetUrl = url;
5447
5450
  // Sync the shared target closures FIRST: retargets that did NOT come
5448
5451
  // through applyComfyuiUrl (runpod tools, watcher callbacks) leave them
@@ -5459,7 +5462,14 @@ export async function runPanelOrchestrator() {
5459
5462
  QueueMonitor.start(url);
5460
5463
  manager.setMcpServers(buildMcpServers());
5461
5464
  manager.setComfyuiUrl(url);
5462
- manager.restartAllForMcpEnv();
5465
+ // A tab that is mid-turn cannot have its comfyui MCP child replaced now, so
5466
+ // it keeps serving `previousUrl` until the turn ends (#1429). Tell those
5467
+ // tabs — and ONLY those; an idle tab respawns before it can run anything.
5468
+ const tally = manager.retargetAllForMcpEnv(previousUrl, url);
5469
+ if (tally.scheduled > 0) {
5470
+ logger.warn(`[panel-orchestrator] ${tally.scheduled} tab(s) mid-turn during the retarget — ` +
5471
+ `their comfyui tools stay on ${previousUrl} until the turn ends (#1429)`);
5472
+ }
5463
5473
  void refreshEnvCapabilities();
5464
5474
  }
5465
5475
  // The readvertise timer follows the target too (created only at startup