Workflow run - #1024
Merged
Merged
Conversation
Add a templates icon-button under the "+" add-node button in the workflow editor. It opens a small menu offering safe starter workflows (currently "Hello World" — a single RunOsCommand node that echoes a message) plus Cancel. Picking a template replaces the current workflow block.
Load starter templates from workflow/templates/*.json (Hello World, List Files, System Info, Two Steps). Fit the view after applying a template and cap fit zoom at 100% so a single node no longer fills the screen.
Runs a saved workflow from the DB via executeWorkflowFromDB (local scheduler) through the /exec bridge. Disabled while there are unsaved edits. Shows a snackbar on completion.
- AutoReloadToggle in the toolbar and next to the Settings slider;
off stores null, on restores the default 5s
- Remove the hide-sidebar toolbar button
Expose an actionButtons node on WorkflowEditor/WorkflowGraph rendered in the canvas top-right; pass the run button through it while keeping the header one.
Avoids hermes writing the workflow JSON to the process cwd (repo root under Docker) by giving new workflow documents a resource under filesDirectory.
Temporarily prepend the toolkit's files directory to PYTHONPATH around executeWorkflowFromDB (restored after) so the Luigi subprocess can import the generated workflow module. Fixes ModuleNotFoundError on run.
Use "Command list" (what the Hermes executer accepts) instead of "Commands list" in all workflow templates, so template-created workflows run.
Capture the run's stdout+stderr at the fd level in buildRunWorkflowCode and return it; RunWorkflowButton shows it in a dialog after the run finishes.
- ui/server/workflow_runner.py: new WorkflowRunner class; run() builds+executes a
saved workflow, captures stdout/stderr at the fd level, temporarily extends
PYTHONPATH, returns {dispatch_id, output}
- ui/server/server.py: POST /run_workflow delegating to a single WorkflowRunner
instance
- ui/client/src/io/runWorkflow.ts: fetch helper for the endpoint
- RunWorkflowButton.tsx: call the endpoint, show output dialog, running/error/info
snackbars; drop the inline Python
- delete buildRunWorkflowCode.ts; update runWorkflow.test.tsx to mock io/runWorkflow
Classify each output line (DEBUG/INFO/WARNING/ERROR, Luigi summary block, task stdout), index it, and render color-coded in the run dialog. Client-only; server still returns the raw log.
- per-kind show/hide buttons with line counts (LogToolbar) - distinguish Debug vs Info colors; share styles in logKindStyle - copy-all-to-clipboard button
- persist per-kind visibility across runs (useLogFilterStore) - classify post-summary lines (loads/problems) as Technical - order filter buttons by severity; Summary/Technical on the right - treat CRITICAL as Error and WARN as Warning
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.