Skip to content

Fleet UI Phase 1: Agent status visibility #563

@Wirasm

Description

@Wirasm

Phase 1: Agent Status Visibility

Part of #562 (Fleet UI Epic)

PRD: .claude/PRPs/prds/fleet-ui-honryu-visibility.prd.md — Phase 1

What

Add real-time agent status (idle/working/waiting/done/error) to the UI. Currently the UI only shows process status (running/stopped) which doesn't tell you what the agent is actually doing.

Why

This is the single most valuable missing data. Answers: "What are my workers doing right now?" Every view benefits from this information.

Scope

1.1 FleetStore — New State Module

  • Create crates/kild-ui/src/state/fleet.rs with FleetStore struct
  • Stores HashMap<String, AgentStatusInfo> keyed by session ID
  • Calls existing kild_core::sessions::agent_status::read_agent_status() per session
  • Add facade methods to AppState: agent_status(), refresh_fleet_data(), is_fleet_active()

1.2 Fleet Refresh Timer

  • Add 3-second interval timer in MainView::new() (alongside existing 60s poll + 50ms watcher)
  • Runs on background executor, calls state.refresh_fleet_data()

1.3 Sidebar Agent Status Indicators

  • Replace static status dots with agent-aware colors:
    • Working → aurora (green), Idle → copper (amber), Waiting → kiri (mauve), Done → ice (cyan), Error → ember (red)
  • Add short status label text after branch name ("working", "idle", "waiting")
  • Graceful degradation: no agent status → existing process status dot behavior

1.4 Dashboard Cards: Agent Status Row

  • Between note and git stats rows, add agent status line with colored dot + label + relative time
  • Waiting status shown with kiri emphasis (actionable)

1.5 Status Bar: Fleet Alerts

  • Workers with Waiting → kiri dot, "<branch> waiting for approval"
  • Workers with Error → ember dot, "<branch> has an error"

Files

  • crates/kild-ui/src/state/fleet.rs — NEW
  • crates/kild-ui/src/state/mod.rs — add module
  • crates/kild-ui/src/state/app_state/state.rs — add FleetStore + facade
  • crates/kild-ui/src/views/main_view/main_view_def.rs — fleet refresh timer
  • crates/kild-ui/src/views/main_view/rendering.rs — pass fleet data to views
  • crates/kild-ui/src/views/sidebar.rs — agent status dots + labels
  • crates/kild-ui/src/views/dashboard_view.rs — agent status on cards
  • crates/kild-ui/src/views/status_bar.rs — fleet alerts

Verification

  • Without fleet: sidebar and dashboard behave exactly as before
  • With fleet: sidebar shows working/idle/waiting colors, dashboard cards show status row, status bar shows alerts for waiting/error workers

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low priority - Nice to have, consider closing if staleeffort/mediumFew files, one domain or module, some coordination neededfeatureNew functionality (planned)fleetFleet/brain (Honryū) coordinationuiGPUI native GUI (kild-ui)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions