comfyui-mcp 0.52.152 → 0.52.154

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.
@@ -5044,6 +5044,15 @@ export async function runPanelOrchestrator() {
5044
5044
  : RunCompletions.record(event.tab_id, evForTab, {
5045
5045
  conversation: agentKeyFor(event.tab_id),
5046
5046
  });
5047
+ // #2591 — `completion_key` is unavailable on older/replayed panel
5048
+ // frames, so the durable fence cannot identify an already-acked run.
5049
+ // The journal has nevertheless proved the exact current ticket
5050
+ // generation and ownership; consume that verdict before the flush can
5051
+ // create another agent turn. Unprovable, foreign, and genuinely pending
5052
+ // entries remain on the normal replay path.
5053
+ if (entry?.alreadyDelivered) {
5054
+ RunCompletions.suppressAlreadyDelivered(entry.token);
5055
+ }
5047
5056
  const receiptAccepted = completionKey !== null &&
5048
5057
  typeof ev.prompt_id === "string" &&
5049
5058
  ev.prompt_id.length > 0 &&
@@ -5058,7 +5067,7 @@ export async function runPanelOrchestrator() {
5058
5067
  }, event.tab_id);
5059
5068
  }
5060
5069
  logger.info(entry
5061
- ? `[panel-orchestrator] tab ${event.tab_id.slice(0, 8)} run completion for ${describeCorrelation(entry.correlation)}${entry.possibleRepeat ? " (flagged as a possible repeat)" : ""}`
5070
+ ? `[panel-orchestrator] tab ${event.tab_id.slice(0, 8)} run completion for ${describeCorrelation(entry.correlation)}${entry.alreadyDelivered ? " (suppressed as already delivered)" : entry.possibleRepeat ? " (flagged as a possible repeat)" : ""}`
5062
5071
  : `[panel-orchestrator] tab ${event.tab_id.slice(0, 8)} replayed an acknowledged run completion key`);
5063
5072
  flushRunCompletions(event.tab_id);
5064
5073
  return;