Floor
Floor is the per-Worker monitoring surface for Colony Cloud. Route: /dashboard/floor
It gives operators a live view of every registered Worker: what each agent is working on, its current status, when it last checked in, and whether its LLM endpoint is healthy. Use Floor to spot capacity gaps, escalations, or degraded Workers before they stall the pipeline.
What Floor shows
Section titled “What Floor shows”KPI cards
Section titled “KPI cards”Five summary cards sit at the top of the page.
| KPI | What it counts |
|---|---|
| Active agents | Workers currently assigned to a pipeline task — count of registered Workers where currentTask is non-null. |
| Idle | Workers not currently assigned to any task. Turns amber when the idle count exceeds max(2, total ÷ 3) — a heuristic for an over-provisioned or under-loaded fleet. |
| LLM degraded | Workers reporting an unavailable LLM endpoint — count of Workers where llmHealth.available is false. A non-zero count stalls tasks on affected Workers. |
| Escalations | Workers that have raised an alert requiring operator intervention — count of Workers with a non-null alert. Each escalation needs manual review. |
| Avg utilization | Mean fraction of time Workers spent active over the last 8 hours — average of utilization8hPct across all registered Workers. Values above 90 % indicate capacity risk; values below 50 % may indicate fleet over-provisioning. |
Worker table
Section titled “Worker table”Below the KPI row, every registered Worker appears as a row in a table.
| Column | What it shows |
|---|---|
| Agent | Worker display name (or hostname if no display name is set), and its role. A coloured dot indicates active (Pine) or idle (muted). |
| Working on | Issue number and task type when the Worker has an active task, plus the current pipeline state. Shows “idle” when no task is assigned. |
| Status | Scheduling status — see Worker status values below. |
| Last heartbeat | Elapsed time since the Worker last sent a heartbeat to the Cloud API. |
| ETA | Estimated minutes remaining on the current task, when provided by the Worker. |
| Alert | A warning badge describing the alert reason when the Worker has escalated. |
| LLM | LLM endpoint health. Shows “LLM ok” when healthy; a warning badge with the degraded reason otherwise. When degraded, also shows how long it has been degraded, an estimated recovery time, and a consecutive failure count. |
| Repo | The repository the Worker is currently assigned to. |
Worker status values
Section titled “Worker status values”| Status | Meaning |
|---|---|
| Online | The Worker is registered, heartbeating, and available to receive tasks. |
| Busy | The Worker is actively executing a pipeline task. |
| Draining | The Worker is completing its current task and will not accept new work after it finishes. |
| Offline | The Worker has stopped sending heartbeats and is no longer in the active pool. |
How Floor gets its data
Section titled “How Floor gets its data”Floor fetches Worker telemetry from GET /api/orgs/{orgId}/workers/floor, polled every 30 seconds. When the shared SSE stream is active, Floor also listens for worker-status events and applies incremental status updates immediately — between polls — so the table stays current without waiting for the next poll cycle.
A stale-data banner appears across the top of the page if Worker data has not refreshed in more than 60 seconds. Use the retry control to force an immediate refresh.
Relationship to Workers
Section titled “Relationship to Workers”Floor and the Workers metric on other dashboards both reflect the same registered Worker population.
- Workers metric (shown on Pipeline and the sidebar): total count of registered Workers currently reporting heartbeats. See Workers for how to register and operate Worker containers.
- Floor: the per-Worker detail view — what each Worker is doing right now, its health, and any escalations. Use Floor when the Workers count drops or an escalation fires and you need to identify which specific Worker is affected.
Each Worker handles one pipeline issue at a time. To increase throughput, register more Workers rather than adding resources to a single container.