fix: text gate Run-from-here fires Comfy.QueuePrompt command so it actually runs

A bare app.queuePrompt(0,1) enqueues but skips the command-level run setup in
the 1.47 frontend, so the prompt never kicked off — you had to press Run
manually. Execute the Comfy.QueuePrompt command (same path as the Run button /
Ctrl+Enter) instead, with app.queuePrompt as a legacy fallback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-26 11:06:32 +02:00
parent 0ace20a1bc
commit 8d785f5ca2
2 changed files with 16 additions and 2 deletions
@@ -20,8 +20,12 @@ The node currently has no explicit state. Add three:
- **passed** — after Pass click. Textarea keeps the edited text, **Pass** hidden,
**▶ Run from here** shown, status `passed — Run from here to re-run`.
**Run from here** click → `app.queuePrompt(0, 1)` with `app.queuePrompt(0)`
fallback — copied verbatim from the Image Gate's `queueFromHere`.
**Run from here** click → executes the `Comfy.QueuePrompt` command via
`app.extensionManager.command.execute(...)` the same path the Run button and
Ctrl+Enter use, so the prompt actually starts. A bare `app.queuePrompt(0, 1)`
enqueues but skips the command's run setup, so the 1.47 frontend doesn't kick off
execution (you'd have to press Run yourself). `app.queuePrompt` remains a fallback
for older frontends without the command registry.
## Sticky edited text (by intent, not text comparison)
+10
View File
@@ -43,6 +43,16 @@ async function postPass(node, text) {
// re-pauses the gate, matching the Image Gate's queueFromHere.
async function queueFromHere(node) {
// Fire the same command the Run button / Ctrl+Enter use, so the prompt
// actually EXECUTES. A bare app.queuePrompt(...) enqueues but skips the
// command's run setup, so the 1.47 frontend doesn't kick off the run (you'd
// have to press Run yourself). Fall back to app.queuePrompt on older
// frontends without the command registry.
const cmd = app.extensionManager?.command;
if (cmd?.execute) {
try { await cmd.execute("Comfy.QueuePrompt"); return; }
catch (e) { /* fall through to the legacy path */ }
}
try {
await app.queuePrompt(0, 1);
} catch (e) {