From d6763e589c1a2363c56f8e8a78f7db16f517b8b7 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Wed, 3 Jun 2026 13:48:28 -0700 Subject: [PATCH] feat(dashboard): CLI command field + interactive input/approval banner Node inspector: CLI executor toggles between a raw command textarea and a named script. Task modal workflow tab: the await-input banner is now interactive (reply textarea + Submit & resume), and a new awaiting-cli-approval banner shows the pending command with an Approve & run action. --- .changeset/graph-custom-workflows.md | 2 + .../app/components/WorkflowNodeEditor.tsx | 43 ++++++++-- .../app/components/WorkflowResultsTab.css | 78 +++++++++++++++++ .../app/components/WorkflowResultsTab.tsx | 84 ++++++++++++++++++- .../__tests__/WorkflowResultsTab.test.tsx | 2 + 5 files changed, 200 insertions(+), 9 deletions(-) diff --git a/.changeset/graph-custom-workflows.md b/.changeset/graph-custom-workflows.md index 82656cf3d1..7fba60cc85 100644 --- a/.changeset/graph-custom-workflows.md +++ b/.changeset/graph-custom-workflows.md @@ -5,3 +5,5 @@ Add executable custom workflows with a visual graph node editor. Author a workflow as a graph (start → prompt/script/gate steps → end) in a new React Flow–based editor, then select it per task or set a project default. Selected workflows compile to the existing WorkflowStep engine and run at the pre/post-merge boundaries — no changes to the scheduler/executor/merger. Non-linear graphs are rejected with a clear message and reserved for the (deferred) graph interpreter. Prompt nodes carry an execution profile: run on a chosen model, as a named agent, as a skill invocation, or as a named project script (CLI) with the prompt passed via FUSION_NODE_PROMPT — plus per-node retries and an auto-approve toggle. "User input" nodes pause the run with a needs-input badge on the task card and a banner in the task modal; replying in comments and unpausing resumes the workflow with the answer. + +CLI nodes can run arbitrary commands (not just named scripts); the first run of an exact command pauses the task for explicit user approval. The task modal's input/approval banner is interactive — reply-and-resume for user-input nodes, approve-and-run for CLI commands. diff --git a/packages/dashboard/app/components/WorkflowNodeEditor.tsx b/packages/dashboard/app/components/WorkflowNodeEditor.tsx index 1a188497fc..08b6b5ebc1 100644 --- a/packages/dashboard/app/components/WorkflowNodeEditor.tsx +++ b/packages/dashboard/app/components/WorkflowNodeEditor.tsx @@ -426,14 +426,41 @@ function InnerEditor({ )} {currentExecutor === "cli" && ( - + <> + + {(selectedNode.data.config?.cliMode ?? "command") === "command" ? ( +