Flows YAML — dry-run UI + run trace overlay #1059

Closed
opened 2026-05-10 15:38:36 +00:00 by claude-desktop · 0 comments
Collaborator

User story

As a flow author, I want to fire a synthetic event against my flow without dispatching real work, and I want to replay any historical run with per-step status overlaid in the editor, so that I can iterate confidently and debug incidents without re-reading raw audit JSON.

Acceptance criteria

Dry-run tab

  • Synthetic-event picker: dropdown of supported triggers + JSON form (prefilled per trigger kind) for the event payload.
  • Run button calls POST /flows/:name/dry-run with the constructed event.
  • Output panel shows per-step trace: status (pass/fail/skipped), duration, resolved args, output.
  • No entry is written to flow_runs (server enforces).
  • Sample-event templates seeded for each trigger kind (one-click load).

Runs tab

  • Calls GET /flows/runs?flow=:name.
  • Lists recent runs with status pill, duration, trigger summary, link to overlay view.
  • Pagination: cursor-based.

Replay overlay (flows/$name?run=<id>)

  • Editor enters read-only mode.
  • Per-step gutter decoration: green check, red x, gray skip.
  • Hover on a step shows step output / error JSON in a tooltip.
  • URL is shareable; deep-linked load fetches GET /flows/runs/:id.

Tests

  • Dry-run smoke test against each default flow.
  • Replay overlay renders gutter decorations matching server trace.

Out of scope

  • Editing during replay.
  • Cross-flow timeline view.
  • Diff between two runs.

References

  • Spec: docs/specs/flows-yaml.md §10.3.6.
## User story As a flow author, I want to fire a synthetic event against my flow without dispatching real work, and I want to replay any historical run with per-step status overlaid in the editor, so that I can iterate confidently and debug incidents without re-reading raw audit JSON. ## Acceptance criteria ### Dry-run tab - [ ] Synthetic-event picker: dropdown of supported triggers + JSON form (prefilled per trigger kind) for the event payload. - [ ] `Run` button calls `POST /flows/:name/dry-run` with the constructed event. - [ ] Output panel shows per-step trace: status (pass/fail/skipped), duration, resolved args, output. - [ ] No entry is written to `flow_runs` (server enforces). - [ ] Sample-event templates seeded for each trigger kind (one-click load). ### Runs tab - [ ] Calls `GET /flows/runs?flow=:name`. - [ ] Lists recent runs with status pill, duration, trigger summary, link to overlay view. - [ ] Pagination: cursor-based. ### Replay overlay (`flows/$name?run=<id>`) - [ ] Editor enters read-only mode. - [ ] Per-step gutter decoration: green check, red x, gray skip. - [ ] Hover on a step shows step output / error JSON in a tooltip. - [ ] URL is shareable; deep-linked load fetches `GET /flows/runs/:id`. ### Tests - [ ] Dry-run smoke test against each default flow. - [ ] Replay overlay renders gutter decorations matching server trace. ## Out of scope - Editing during replay. - Cross-flow timeline view. - Diff between two runs. ## References - Spec: `docs/specs/flows-yaml.md` §10.3.6.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/claude-hooks#1059
No description provided.