Skip to content

Feature request: debug/inspect mode for flow execution #97

@ameet

Description

@ameet

Problem

When a step fails in a long flow (e.g., step 27 of 40), debugging requires:

  1. Re-running the entire flow from step 1
  2. Reading through all step logs to reconstruct intermediate state
  3. Guessing at what the resolved interpolations looked like at runtime

There's no way to:

  • Stop execution at a specific step
  • Inspect the resolved value of $.steps.X.output at any point
  • Dry-run a flow to see what interpolations resolve to without executing

Proposal

Three complementary capabilities:

1. Stop-at flag:

one flow execute my-flow --stop-after=step15

Executes steps 1-15, prints step 15's output, and exits. Useful for isolating where things break.

2. Inspect resolved interpolations:

one flow execute my-flow --dry-run

Resolves all {{$.steps.X.output.Y}} and $.input.Z references, prints the resolved values per step, but doesn't execute any steps. Catches wiring bugs (wrong field names, missing null guards) without burning API credits.

3. Step output dump:

one flow execute my-flow --dump-steps=/tmp/flow-debug.json

Writes all step outputs to a file during normal execution. Enables post-mortem debugging without re-running.

Why this matters

Flow debugging time scales linearly with flow length. A 40-step flow with a bug at step 30 currently costs the full execution time of steps 1-29 on every debug attempt. These features would reduce that to near-zero for wiring bugs (dry-run) and one-shot for runtime bugs (stop-at + dump).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions