Workflow dashboard - #225
Merged
Merged
Conversation
…n now be cancelled via node modal
…cel WF successfully by cancelling action via node modal!
…ing test admin command WF/experiment).
…out. Seems to work!
…es to file for me, need to remove once confirmed working
Coverage reportClick to see where and how coverage changed
This report was generated by python-coverage-comment-action |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Fix cancel_active_workflows not persisting cancelled state to state handler - Add missing PauseResumeButton import in WorkflowModal.vue - Remove duplicate set_active_workflow calls in pause/cancel endpoints - Add try/except for resume admin command to match pause/cancel pattern - Remove console.log debug statements from CancelButton and PauseResumeButton - Fix interruptable decorator: use daemon threads, re-raise exceptions instead of returning them, warn if action thread outlives interrupt - Fix _wait to wake on both cancel and pause events - Fix admin_commands_test workflow YAML: remove invalid args nesting for stall steps - Remove package-lock.json (project uses yarn) - Revert wait_time defaults from 10.0 back to 2.0 - Clean up commented-out code in Vue components - Update just build command to build dashboard image after main image Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
RyanTheRobothead
approved these changes
Feb 12, 2026
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.
Summary
Adds workflow admin command support (cancel, pause/resume, and retry/reset) across the backend workcell manager and the dashboard UI, enabling operators to control running workflows and nodes in real time.
Backend (Workcell Manager)
/workflow/{workflow_id}/cancelendpoint and workcell-wide/admin/cancel— sets workflow status tocancelledand propagates the cancel command to the currently executing node/workflow/{workflow_id}/pauseand/workflow/{workflow_id}/resumeendpoints (plus workcell-wide and per-node variants) — pauses/resumes workflow execution and signals the active node/workflow/{workflow_id}/retryendpoint — restarts a terminal (completed/failed/cancelled) workflow from a specified stepworkcell_engine.py) updated to handlePAUSEDandCANCELLEDstep statuses during finalizationworkflow_utils.pyforpause_workflow()andcancel_workflow()state transitionsDashboard UI
CancelButton,PauseResumeButton, andResetButtonWorkflowModalandNodeModalfor per-workflow and per-node controlExample Lab & Testing
@interruptabledecorator pattern added to the liquidhandler example module, demonstrating how nodes can support cancel/pause via threading events and checkpointsstallaction added toAdvancedExampleNodefor testing timing-dependent scenariosadmin_commands_test.workflow.yamltest workflow andtest_admin_commands.pyexperiment applicationOther
default.node.yaml,example_app.info.yaml)yarn.lockReference
S.O.C 2.11.26.pdf — review of current admin command behaviors