Resolved-step

Single-step run control for a resolved automation step. When a user clicks a step tile whose reference points at an existing element, this panel surfaces the step's identity, the element it invokes, the parent automation path, and a Run button with an optional JSON input override. The step runs in isolation — edge-hydrated from upstream steps — and the result renders inline as pretty JSON, a failure pill, or a defensive empty state when the step produced no output.

binds_to: automationdensity: comfortablesource: portal/src/canvas/resolved_step_panel.rs

Live

The real panel component, mounted here over fixture data — the same shipped chrome the workspace renders, not a sketch.

resolved-step
play_circleStep · collect

Collect findings

Runs
collect-findings
Automation
showcase/month-end-review
● IdleStep collect

Sketch

Structural preview of the panel chrome. The browser panel renders the real BrowserChrome primitive at miniature scale; the other variants are CSS shape silhouettes. Either way the composition tree below is the authoritative description of what's inside.

Resolved-stepportal/src/canvas/resolved_step_panel.rsexisting

States

  • idleNo run in flight — configure input or press Run
  • runninginvoke-step in flight — Run disabled, progress pill shown
  • okStep resolved — result JSON (or defensive empty state) shown
  • failedStep failed — error text and duration shown

Composition

Click any component name to jump to its component-page entry.

WorkspaceShellouterL-chrome (top + body + status) — single role=application landmark shared with every workbench panel. No rail: one step, one surface.
WorkspaceTopchromeBreadcrumb chrome naming the step and its automation context.
WorkspaceBreadcrumbchromeMiddle-ellipsis nav — keeps a deeply-nested step label and id readable in the top bar.
WorkspaceBodycontentHosts the step badge, subtitle, fact list, run actions, the optional input override, and the result section.
StepBadgecontentIcon + 'Step · {id}' identity chip at the body head.
StepFactscontentDefinition list — which element the step Runs, plus the parent automation path.
StepActionscontrolRun button (dispatches the invoke-step op) plus a toggle for the JSON input override.
StepInputOverridecontrolCaller-input JSON textarea — shown only while the input toggle is on.
StepResultstateResult section, shown once a run leaves Idle — running pill, ok pill + JSON, or failure pill + error.
PanelEmptyStatestate'No result' — defensive state when a run succeeds but the step returned a null output.
WorkspaceStatuschromeBottom strip — run-state dot + label on the left, a reactive 'step N of M' CounterPill on the right.
CounterPillchromeReactive step index — tallies sibling step tiles from the canvas store.

Uses Components

Flat list of every component referenced — verifiable against the composition tree by the future generator audit.