Skip to content

feat: run options parity across WebUI, TUI, and API — inline form on pipeline detail page #717

@nextlevelshit

Description

@nextlevelshit

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 pipeline details page

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:

  • Flags grouped by tier in --help output (Essential / Execution / Continuous / Dev)
  • Every flag description is accurate and uses consistent language with the canonical tier model

TUI:

  • Adapter selection added to pipeline launcher
  • Timeout field added
  • From-step selector populated from manifest
  • DefaultFlags includes detach option
  • TUI help/key-binding reference updated to document new fields

WebUI pipeline detail page:

  • Inline run form replaces the modal — Tier 1 always visible, Tier 2 collapsible
  • Step picker for from-step populated from pipeline YAML
  • Force field appears conditionally when from-step is set
  • Detach mode navigates to run detail without streaming
  • Dry-run renders inline report (no navigation)
  • Form validates required fields with inline errors before submit

WebUI issues/PRs pages:

  • Adapter + model overrides available on the run action
  • Tier 2 options accessible via collapsible "Advanced"

API:

  • StartPipelineRequest includes all Tier 1–3 options and Tier 4 flags
  • handleStartPipeline passes all fields to RunOptions
  • Detach, continuous mode, and on-failure wired end-to-end

Documentation:

  • docs/reference/cli.md updated — full flag list with tier grouping
  • docs/guides/running-pipelines.md (or equivalent) updated to cover TUI and WebUI run options
  • CHANGELOG.md entry added under the relevant version/section
  • README quick-start updated if it references wave run flags

Technical Notes

  • CLI source of truth: cmd/wave/commands/run.goRunOptions struct and flag definitions
  • TUI launcher: internal/tui/pipeline_launcher.go, pipeline_messages.go, pipeline_detail.go
  • TUI flags: internal/tui/run_selector.goDefaultFlags
  • WebUI handler: internal/webui/handlers_control.gohandleStartPipeline
  • WebUI request type: internal/webui/types.goStartPipelineRequest
  • 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions