Skip to content

feat: redesign workflow and node modals with tabbed layouts and retry/resubmit UX - #259

Merged
RyanTheRobothead merged 10 commits into
unstablefrom
enhancement/dashboard-workflow-node-modal-ux
Mar 30, 2026
Merged

feat: redesign workflow and node modals with tabbed layouts and retry/resubmit UX#259
RyanTheRobothead merged 10 commits into
unstablefrom
enhancement/dashboard-workflow-node-modal-ux

Conversation

@RyanTheRobothead

Copy link
Copy Markdown
Member

Summary

  • Workflow modal: Redesigned with 3 tabs (Steps, Results, Details). Steps tab shows color-coded status indicators (border, icon, chip) per step with expandable inline results. Results tab provides a consolidated view of all datapoints across steps. Details tab shows structured metadata and raw JSON.
  • Workflow retry/resubmit: Added RetryDialog with step dropdown for targeted retry, per-step "Retry from here" buttons, and a Resubmit button that creates a brand new workflow from the same definition.
  • Node modal: Redesigned with 3 tabs (Overview, Info, Actions). Overview tab shows structured status cards with a Structured/JSON toggle. Info tab shows node details with JSON toggle. Actions tab preserves existing action forms.
  • Backend: New POST /workflow/{id}/resubmit endpoint and resubmit_workflow() client method.
  • Shared composable: Extracted datapoint fetch/cache/display logic into useDatapoints.ts.

Test plan

  • yarn build passes (TypeScript compilation clean)
  • 108 workcell manager tests pass
  • 464 client tests pass
  • ruff check clean
  • Pre-commit hooks pass
  • Manual verification: open workflow modal, verify 3 tabs and step indicators
  • Manual verification: retry dialog with step dropdown, per-step retry buttons
  • Manual verification: resubmit creates new workflow
  • Manual verification: node modal 3 tabs with structured/JSON toggle
  • Manual verification: node actions tab (send action, copy YAML) still work

🤖 Generated with Claude Code

…icators, and retry/resubmit UX

Workflow modal now has 3 tabs (Steps, Results, Details) with color-coded
step status indicators, per-step retry buttons, a retry dialog with step
selection, and a resubmit button that creates a new workflow from the same
definition. Node modal now has 3 tabs (Overview, Info, Actions) with
structured status cards and a JSON toggle for debugging.

Backend: new POST /workflow/{id}/resubmit endpoint and client method.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Mar 28, 2026

Copy link
Copy Markdown

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  src/madsci_client/madsci/client
  workcell_client.py 430
  src/madsci_workcell_manager/madsci/workcell_manager
  workcell_engine.py 381-383
  workcell_server.py 473, 482-483
Project Total  

This report was generated by python-coverage-comment-action

RyanTheRobothead and others added 9 commits March 28, 2026 08:54
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…tion handling

Consolidate duplicate retry/resubmit API calls from WorkflowModal, RetryDialog,
and ResubmitButton into a shared useWorkflowActions composable. Narrow the
exception catch in resubmit_workflow from bare Exception to ValidationError so
database/connection errors aren't masked as 404s.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The workcell engine's exception handler set step.result.status to FAILED
but never updated step.status, leaving it as NOT_STARTED. The frontend's
status resolution short-circuited on the truthy "not_started" string,
hiding the failure. Fix both the backend (sync step.status) and frontend
(prefer result status over not_started).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@RyanTheRobothead
RyanTheRobothead merged commit 69402de into unstable Mar 30, 2026
4 checks passed
@RyanTheRobothead
RyanTheRobothead deleted the enhancement/dashboard-workflow-node-modal-ux branch April 9, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant