Skip to content

design: pipeline status card and human gates UI for v0.9.0 milestone #18#648

Open
geoffjay wants to merge 2 commits intomainfrom
design/pipeline-ui
Open

design: pipeline status card and human gates UI for v0.9.0 milestone #18#648
geoffjay wants to merge 2 commits intomainfrom
design/pipeline-ui

Conversation

@geoffjay
Copy link
Owner

Summary

Frontend scaffolding for the v0.10.0 Autonomous Development Pipeline ahead of the Conductor agent implementation. All components are production-quality with correct loading/empty/error states — they just need the backend to start returning data.

  • PipelineStatusCard — new dashboard widget replacing the first "Coming Soon" stub. Three states: empty (conductor not yet deployed), loading (skeleton), populated (stack-indented merge queue + stats). Merge queue items show stack depth via prefix, an approval dot, and a CI indicator (running/passing/failing).
  • PipelineGates — new Settings section that documents all 7 human interaction gates from the v0.10.0 spec (Define human interaction gates and tool policies for autonomous operation #611), grouped as always-human (4, locked) and configurable (3, with defaults). Read-only for now; becomes interactive once the conductor exposes a runtime settings endpoint.
  • usePipelineStatus hook — stub returning null so the card renders its empty state. Contains a TODO comment with the exact memory service query pattern to replace it once the conductor (Create .agentd/agents/conductor.yml #603) starts writing pipeline digests.
  • pipeline.ts typesPipelineStatus, PipelineQueueItem, PipelineGate, and the PIPELINE_GATES constant matching the v0.10.0 spec.

Design decisions

Stack depth rendering — queue items use tree characters (font-mono, muted) rather than indented boxes. Keeps the card compact on a narrow dashboard column while still conveying the stacking relationship visually.

Empty state copy — "Conductor not yet active / Deploy conductor.yml to activate the autonomous pipeline" — actionable and links the visual gap directly to the work needed (#603).

Gates as read-only reference — the configurable gates cannot be toggled in the UI yet because their runtime value comes from YAML, not a settings API. Displaying them statically is better than hiding them; operators should know what the system will do autonomously before deploying.

No new design tokens — all colours use existing semantic Tailwind classes (rose for always-human, green for autonomous-by-default, gray for human-by-default), consistent with StatusBadge and AgentRoleBadge patterns.

Depends on

Follow-up (not in this PR)

Test plan

  • Dashboard loads without errors; PipelineStatusCard shows "Conductor not yet active" empty state
  • Empty state renders correctly in light and dark mode
  • Settings page shows "Autonomous Pipeline Gates" section with correct gate groupings
  • Always-human gates display Lock icon + red "Always human" pill
  • Configurable gates display Settings2 icon + appropriate default pill
  • No TypeScript errors (tsc --noEmit)
  • Reduced-motion: CI spinner animate-spin is suppressed by motion-reduce:animate-none

🤖 Generated with Claude Code

geoffjay and others added 2 commits March 20, 2026 21:47
Adds frontend scaffolding for the Autonomous Development Pipeline
(milestone #20) ahead of the conductor agent implementation.

New files:
  ui/src/types/pipeline.ts
    PipelineStatus, PipelineQueueItem, PipelineGate data types.
    PIPELINE_GATES constant documents all 4 always-human and 3
    configurable gates from the v0.10.0 spec (issue #611).

  ui/src/hooks/usePipelineStatus.ts
    Stub hook returning null/not-loading. Includes a TODO comment
    pointing to the memory service query pattern that will replace it
    once the conductor starts writing pipeline digests (#603/#604).

  ui/src/components/dashboard/PipelineStatusCard.tsx
    Dashboard widget with three states:
      empty     — "Conductor not yet active" with deploy hint
      loading   — CardSkeleton placeholder
      populated — merge queue (stack-indented, approval dot, CI icon)
                  + active stack count / stale count stats row

  ui/src/components/settings/PipelineGates.tsx
    Read-only reference section showing all 7 human interaction gates
    grouped by kind (always-human / configurable). Uses Lock + Settings2
    icons and semantic colour coding (red = always, green/gray = default).

Wired into:
  DashboardPage  — PipelineStatusCard replaces the first Coming Soon stub
  SettingsPage   — Pipeline Gates section inserted before About

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The conductor agent (issue #620) and pipeline infrastructure (issues
#640, #643) are all in milestone #18 (v0.9.0), not v0.10.0. Update
the module docstring and gate issue references accordingly.

Add PipelineStage union type modelling the 7-stage label-driven state
machine from issue #640: issue-created → triage → enrich → implement
→ review → merge → document. Exports PIPELINE_STAGE_LABELS (display
strings) and PIPELINE_STAGE_ORDER (canonical progression array) for
use in future PipelineStatusCard enhancements.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@geoffjay geoffjay changed the title design: pipeline status card and human gates UI for v0.10.0 design: pipeline status card and human gates UI for v0.9.0 milestone #18 Mar 21, 2026
@codecov
Copy link

codecov bot commented Mar 21, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 55.39%. Comparing base (eeca345) to head (c598996).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #648      +/-   ##
==========================================
- Coverage   55.40%   55.39%   -0.02%     
==========================================
  Files         126      126              
  Lines       13518    13518              
==========================================
- Hits         7490     7488       -2     
- Misses       6028     6030       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant