Summary
Audit of all pipeline run entry points reveals significant feature fragmentation. The WebUI, TUI, and API each expose a different subset of the CLI's run options, with no consistent canonical definition of what a "run configuration" should contain.
This issue establishes a canonical tiered RunOptions model and tracks parity work across all surfaces — including documentation, help texts, and changelog.
Screenshot
Current State
| Surface |
Options Supported |
CLI (wave run) |
Full — 22+ options. Source of truth. |
| TUI (pipeline launcher) |
Partial — 7 options. Missing: adapter, timeout, from-step, steps/exclude, detach |
WebUI API (StartPipelineRequest) |
Partial — 7 options. Missing: detach, force, continuous, auto-approve, no-retro, mock |
| WebUI pipeline detail |
Partial — 6 options in modal. Missing: from-step wired to backend, detach, force |
| WebUI issues/PRs |
Minimal — pipeline name + URL only, no overrides |
Canonical Run Options (Tiered)
All UI surfaces expose Tier 1 always, Tier 2 in a collapsible "Advanced" section, Tier 3 in a collapsible "Continuous" section. Tier 4 is dev-only and hidden by default.
Tier 1 — Essential (always visible)
| Option |
CLI flag |
Notes |
| Input |
--input |
Pre-filled from issue/PR URL on issues/PRs pages |
| Adapter |
--adapter |
Populated from /api/adapters |
| Model |
--model |
Shortcuts: default · cheapest · fastest · strongest |
Tier 2 — Execution (collapsible "Advanced")
| Option |
CLI flag |
Notes |
| Resume from step |
--from-step |
Step picker from pipeline YAML |
| Force |
--force |
Only visible when from-step is set |
| Dry run |
--dry-run |
Show plan, do not execute |
| Detach |
--detach |
Background execution; navigate to run detail immediately |
| Include steps |
--steps |
Comma-separated |
| Exclude steps |
--exclude |
Comma-separated |
| Timeout |
--timeout |
Minutes |
| On failure |
--on-failure |
halt (default) or skip |
Tier 3 — Continuous mode (collapsible "Continuous")
| Option |
CLI flag |
Notes |
| Enable continuous |
--continuous |
Toggle to reveal sub-options |
| Source |
--source |
e.g. github:label=bug, file:queue.txt |
| Max iterations |
--max-iterations |
0 = unlimited |
| Delay |
--delay |
e.g. 5s, 1m |
Tier 4 — Dev/debug (hidden, toggle or flag-gated)
| Option |
CLI flag |
Notes |
| Mock adapter |
--mock |
Use mock adapter for testing |
| Preserve workspace |
--preserve-workspace |
Debug aid |
| Auto-approve |
--auto-approve |
Required for --detach + gates |
| No retro |
--no-retro |
Skip retrospective generation |
Per-Surface Requirements
CLI (wave run)
The CLI is the source of truth but its flag descriptions and grouping should reflect the tiered model above so help text is scannable.
- Group flags in help output by tier (Essential / Execution / Continuous / Dev)
- Ensure every flag has a clear, consistent description that matches the canonical tier language
- Update
docs/reference/cli.md to reflect the full flag set with tier grouping
TUI — Pipeline Launcher
- Add adapter selector alongside the existing model field (populated from available adapters)
- Add timeout field (number input, minutes)
- Add from-step selector (populated from pipeline manifest steps)
- Extend
DefaultFlags to include --detach and --auto-approve
- Add steps / exclude fields (text inputs, comma-separated)
- Update TUI help overlay / key bindings reference to document new fields
WebUI — Pipeline Detail Page (primary focus)
- Remove the "Start" button + modal dialog
- Add inline run form directly on the page: Tier 1 always visible, Tier 2 in collapsible "Advanced", Tier 3 in collapsible "Continuous"
- Form shares visual style with the run detail page (consistent spacing, typography, inputs)
Force field appears only when from-step has a value
- Detach mode: submit and navigate immediately to run detail (no live log wait)
- Non-detach: navigate to run detail and stream live log
- Dry-run: show inline dry-run report on the same page
WebUI — Issues/PR Pages
- Add compact Tier 1 overrides (adapter + model) before the "Start" action
- Expose Tier 2 in a collapsible "Advanced" section
StartIssueRequest / StartPRRequest types must carry the full option set
WebUI — API (StartPipelineRequest)
- Extend to all Tier 1–3 options plus Tier 4 flags
- Handler must wire all fields through to
RunOptions
detach, continuous, and on_failure must be fully end-to-end
Acceptance Criteria
CLI:
TUI:
WebUI pipeline detail page:
WebUI issues/PRs pages:
API:
Documentation:
Technical Notes
- CLI source of truth:
cmd/wave/commands/run.go — RunOptions struct and flag definitions
- TUI launcher:
internal/tui/pipeline_launcher.go, pipeline_messages.go, pipeline_detail.go
- TUI flags:
internal/tui/run_selector.go — DefaultFlags
- WebUI handler:
internal/webui/handlers_control.go — handleStartPipeline
- WebUI request type:
internal/webui/types.go — StartPipelineRequest
- Issues/PRs handlers:
internal/webui/handlers_issues.go, handlers_prs.go
- Pipeline detail template:
internal/webui/templates/pipeline_detail.html
- CLI docs:
docs/reference/cli.md
Summary
Audit of all pipeline run entry points reveals significant feature fragmentation. The WebUI, TUI, and API each expose a different subset of the CLI's run options, with no consistent canonical definition of what a "run configuration" should contain.
This issue establishes a canonical tiered
RunOptionsmodel and tracks parity work across all surfaces — including documentation, help texts, and changelog.Screenshot
Current State
wave run)StartPipelineRequest)Canonical Run Options (Tiered)
All UI surfaces expose Tier 1 always, Tier 2 in a collapsible "Advanced" section, Tier 3 in a collapsible "Continuous" section. Tier 4 is dev-only and hidden by default.
Tier 1 — Essential (always visible)
--input--adapter/api/adapters--modelTier 2 — Execution (collapsible "Advanced")
--from-step--force--dry-run--detach--steps--exclude--timeout--on-failurehalt(default) orskipTier 3 — Continuous mode (collapsible "Continuous")
--continuous--sourcegithub:label=bug,file:queue.txt--max-iterations--delay5s,1mTier 4 — Dev/debug (hidden, toggle or flag-gated)
--mock--preserve-workspace--auto-approve--detach+ gates--no-retroPer-Surface Requirements
CLI (
wave run)The CLI is the source of truth but its flag descriptions and grouping should reflect the tiered model above so help text is scannable.
docs/reference/cli.mdto reflect the full flag set with tier groupingTUI — Pipeline Launcher
DefaultFlagsto include--detachand--auto-approveWebUI — Pipeline Detail Page (primary focus)
Forcefield appears only whenfrom-stephas a valueWebUI — Issues/PR Pages
StartIssueRequest/StartPRRequesttypes must carry the full option setWebUI — API (
StartPipelineRequest)RunOptionsdetach,continuous, andon_failuremust be fully end-to-endAcceptance Criteria
CLI:
--helpoutput (Essential / Execution / Continuous / Dev)TUI:
DefaultFlagsincludes detach optionWebUI pipeline detail page:
from-steppopulated from pipeline YAMLForcefield appears conditionally whenfrom-stepis setWebUI issues/PRs pages:
API:
StartPipelineRequestincludes all Tier 1–3 options and Tier 4 flagshandleStartPipelinepasses all fields toRunOptionsDocumentation:
docs/reference/cli.mdupdated — full flag list with tier groupingdocs/guides/running-pipelines.md(or equivalent) updated to cover TUI and WebUI run optionsCHANGELOG.mdentry added under the relevant version/sectionwave runflagsTechnical Notes
cmd/wave/commands/run.go—RunOptionsstruct and flag definitionsinternal/tui/pipeline_launcher.go,pipeline_messages.go,pipeline_detail.gointernal/tui/run_selector.go—DefaultFlagsinternal/webui/handlers_control.go—handleStartPipelineinternal/webui/types.go—StartPipelineRequestinternal/webui/handlers_issues.go,handlers_prs.gointernal/webui/templates/pipeline_detail.htmldocs/reference/cli.md