> ## Documentation Index
> Fetch the complete documentation index at: https://docs.risolu.to/llms.txt
> Use this file to discover all available pages before exploring further.

# Dashboard

> Use the Risoluto dashboard to watch live runs, inspect issue history, adjust configuration, and trace what the orchestrator is doing.

Risoluto serves a live operator dashboard at `http://127.0.0.1:4000`. It is the fastest way to see what the orchestrator is doing right now, inspect one issue in detail, and make runtime changes without editing files by hand.

## Start with these pages

<CardGroup cols={2}>
  <Card title="Overview" icon="gauge-high">
    Start here for the service-level snapshot: running agents, queued work, recent outcomes, and aggregate usage.
  </Card>

  <Card title="Queue" icon="list-check">
    Watch issues move through workflow state and open any card to inspect the current run.
  </Card>

  <Card title="Issue Detail" icon="magnifying-glass">
    Review the event timeline, attempt history, live agent activity, model overrides, and workspace status for one
    issue.
  </Card>

  <Card title="Settings and Setup" icon="gear">
    Edit the config overlay, manage templates, and reopen the setup wizard from the same operator surface.
  </Card>
</CardGroup>

## Pages you reach for during investigation

<CardGroup cols={2}>
  <Card title="Attempts" icon="rotate">
    Compare current and archived attempts, including duration, model, usage, and terminal outcome.
  </Card>

  <Card title="Logs" icon="scroll">
    Follow streaming orchestrator, worker, and agent events when a run is noisy or stuck.
  </Card>

  <Card title="Runs" icon="play">
    Browse historical runs across issues with filters for status, duration, and model.
  </Card>

  <Card title="Workspaces" icon="folder-tree">
    Inspect active workspaces, their paths, branches, and disk usage, then clean them up when needed.
  </Card>

  <Card title="Git Context" icon="code-branch">
    Check repository and workspace context for the currently active checkout.
  </Card>

  <Card title="Audit Log" icon="clipboard-list">
    Review the immutable trail for config, secret, and template mutations.
  </Card>
</CardGroup>

## v1 operator surfaces

The v1 architecture rewrite split several cross-cutting views out of the old "God View" settings page. These routes are top-level pages in the navigation.

<CardGroup cols={3}>
  <Card title="Containers" icon="docker" href="/guides/docker">
    Inspect sandbox container state, resource usage, and lifecycle events. Reached at `/containers` in the dashboard.
  </Card>

  <Card title="Observability" icon="chart-line" href="/operating/observability">
    Live metrics dashboard backed by the orchestrator, webhook, and container resource meters. Reached at `/observability`.
  </Card>

  <Card title="Notifications" icon="bell" href="/guides/notifications">
    Persistent notification timeline with severity filters. Mark items read or send a Slack test from the same page. Reached at `/notifications`.
  </Card>
</CardGroup>

## Real-time events

The dashboard subscribes to `GET /api/v1/events` over SSE, so most screens update without a manual refresh.

| Event                    | What it tells you                                 |
| ------------------------ | ------------------------------------------------- |
| `issue.started`          | A worker launched for an issue                    |
| `issue.completed`        | An issue reached a terminal outcome               |
| `issue.stalled`          | Stall handling killed a stuck run                 |
| `issue.queued`           | An issue is waiting for capacity                  |
| `worker.failed`          | A worker crashed, timed out, or hit an OOM path   |
| `model.updated`          | Runtime model selection changed                   |
| `workspace.event`        | Workspace preparation or cleanup changed state    |
| `agent.event`            | Worker-streamed agent activity arrived            |
| `poll.complete`          | A polling cycle finished                          |
| `system.error`           | A service-level error was recorded                |
| `audit.mutation`         | A config, secret, or template mutation was logged |
| `webhook.received`       | A Linear webhook arrived                          |
| `webhook.health_changed` | Webhook health changed state                      |

<Note>
  The SSE connection automatically reconnects after interruption. While reconnecting, the UI shows stale state rather
  than pretending the stream is current.
</Note>

## Keyboard support

| Key                | Action                                  |
| ------------------ | --------------------------------------- |
| `Tab`              | Move focus between interactive elements |
| `Enter` / `Space`  | Activate the focused control            |
| `Cmd+K` / `Ctrl+K` | Open the command palette                |

## What's next

<CardGroup cols={2}>
  <Card title="Setup Wizard" icon="wand-magic-sparkles" href="/guides/setup-wizard">
    Revisit first-run setup, credential rotation, and reset behavior.
  </Card>

  <Card title="Configuration" icon="gear" href="/guides/configuration">
    Learn the underlying settings the dashboard edits.
  </Card>

  <Card title="Notifications" icon="bell" href="/guides/notifications">
    Configure Slack delivery and understand what gets sent.
  </Card>

  <Card title="Observability" icon="chart-line" href="/operating/observability">
    Move from in-app visibility to metrics, dashboards, and alerting.
  </Card>
</CardGroup>
