Dashboard
The Dashboard is the agent home in the TUI (Activity) and the GUI (Dashboard). It answers three questions at once: is the environment healthy, why is (or isn’t) the agent starting work, and what has it delivered.
Everything comes from one call: GET /api/dashboard.
Environment health
Section titled “Environment health”The agent reads the latest safety-check result per check name for monitor_environment (default production) and rolls them up:
overallishealthywhen every required check passes,degradedif any required check fails, andunknownwhen no checks have run.- Groups summarize by kind: HTTP apps, Grafana / metrics, Tooling, and Agent.
- The Agent group is
busywhile workers or tasks are in flight, otherwisehealthy. - Tooling readiness comes from
GET /api/tooling(GitHub, coding runtime,gcx, and so on).
System failures — a missing gcx binary, an unconfigured Grafana credential — are shown but do not degrade the environment. They are agent-side problems, not environment health.
Dispatch capacity
Section titled “Dispatch capacity”The capacity block explains why the agent is or is not starting workers:
| Field | Meaning |
|---|---|
workers_used / workers_max / workers_free | Occupied, configured, and free worker slots |
coordinator_inflight | Coordinator coding-runtime decisions holding a slot |
spawns_pending | Spawns between the capacity check and the agent row |
compile_slots | Configured max_compile_slots (0 = unlimited) |
dispatch_min_available_mb | Configured dispatch_min_available_mb floor (0 = off) |
mem_available_mb | Current host MemAvailable in MiB, when readable |
dispatch_allowed | Whether the memory floor currently permits a spawn |
queued_tasks / running_tasks | task_lifecycle runs waiting for a slot / running |
Capacity is fail-closed: when occupancy cannot be read, the pool is treated as full, not empty.
Active work and delivered tasks
Section titled “Active work and delivered tasks”active_worklists every running workflow (delivery, monitors, sync, and so on) with its kind, current step, status, issue/PR, branch, timestamps, and error.recent_taskslists runningtask_lifecycleruns first, then the latest finished ones.delivered_tasksis the work board: issue deliveries, external PR reviews, and harness converge runs. Each row carries anoutcome(running,delivered,failed) and a shortoutcome_labelsuch asmerged & healthy on staging,opened harness PR, orfailed @backlog.
Workflow titles are recovered from older runs and from the GitHub preview when later steps drop title from step state.
Auto-update and coordinator health
Section titled “Auto-update and coordinator health”coordinator.runningandcoordinator.last_heartbeat_atcome from the watchdog heartbeat.auto_update.enabled,pending, anddrainingshow whether a newer release is waiting and whether the agent is waiting for in-flight workers before it applies the binary.
Drill in
Section titled “Drill in”Select a delivered or active row to open the workflow run detail:
- TUI: open the run from Dashboard.
- GUI: drill in from the row.
- API:
GET /api/workflows/{kind}/runs/{id}returns the run plus its step log.
From run detail you can terminate a stuck run: POST /api/workflows/{kind}/runs/{id}/terminate. Termination is recorded in the audit log as workflow.terminate.
Gotchas
Section titled “Gotchas”- The dashboard reads the latest result per check name; a stale green can outlive a current outage until the next monitor cycle runs.
overallreflects required checks only. Optional failures stay visible in the group summary but do not mark the environment degraded.delivered_tasksis capped (20 rows) and merges delivery, review, and harness runs; reviews are deduped per PR.