Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ Give this prompt to a coding agent to get Dispatch installed as a persistent ser
- Browser Feedback — a Chrome extension to select an element on any web page, comment, and send it with bounded DOM context and a cropped element screenshot to a running agent (paired under Settings → Connections).
- Slack notifications with focus-aware suppression.
- Activity analytics — heatmaps, daily status charts, working time by project.
- Service resources dashboard — live CPU, memory, subsystem health, and workload metrics for the Dispatch server, agents, and host (Settings → Resources, opt-in collection).
- Token usage tracking by day, project, and model.
- Agent history with soft-delete preservation, filtering, and per-agent detail views.
- Release management — cut releases, deploy tags, and self-update from the UI.
Expand Down
10 changes: 10 additions & 0 deletions apps/web/src/components/app/docs-pane.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
ArrowDownToLine,
Bell,
Briefcase,
Gauge,
GitBranch,
Image,
Keyboard,
Expand All @@ -26,6 +27,7 @@ import {
NotificationsContent,
PersonalitiesContent,
PersonasContent,
ResourcesContent,
ShortcutsContent,
ToolsContent,
UpdatesContent,
Expand All @@ -44,6 +46,7 @@ export type DocsSection =
| "media"
| "browser-feedback"
| "notifications"
| "resources"
| "updates";

type SectionDef = {
Expand Down Expand Up @@ -132,6 +135,13 @@ const SECTIONS: SectionDef[] = [
title: "Notifications",
content: <NotificationsContent />,
},
{
id: "resources",
label: "Service Resources",
icon: Gauge,
title: "Service Resources",
content: <ResourcesContent />,
},
{
id: "updates",
label: "Updates",
Expand Down
13 changes: 8 additions & 5 deletions apps/web/src/components/app/docs-sections/agents.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,14 @@ export function AgentsContent() {
base branch and working branch (indented below the base); non-worktree
agents show the working directory and current branch. A{" "}
<strong>diff-stats badge</strong> in the top-right summarizes
uncommitted changes against the base branch. CLI agents also show
whether they're running in full access or sandboxed mode, plus a
feedback panel and persona launcher; terminal agents skip those since
they have no CLI. Persona agents show their role and link to their
parent agent.
uncommitted changes against the base branch. The details card also has
a button to open the working directory in your IDE and, for worktree
agents, a pill that copies the worktree path. CLI agents additionally
show whether they're running in full access or sandboxed mode, plus a{" "}
<strong>Review</strong> button that launches a reviewer agent (see the
Reviewers section — review feedback lives in the Changes tab's
threads, not on the card); terminal agents skip those since they have
no CLI. Persona agents show their role and link to their parent agent.
</P>
</Section>

Expand Down
1 change: 1 addition & 0 deletions apps/web/src/components/app/docs-sections/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ export { EventsContent } from "./events";
export { MediaContent } from "./media";
export { BrowserFeedbackContent } from "./browser-feedback";
export { NotificationsContent } from "./notifications";
export { ResourcesContent } from "./resources";
export { UpdatesContent } from "./updates";
61 changes: 61 additions & 0 deletions apps/web/src/components/app/docs-sections/resources.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import { H3, P, Section } from "./primitives";

export function ResourcesContent(): JSX.Element {
return (
<>
<Section>
<H3>Service resources dashboard</H3>
<P>
<strong>Settings → Resources</strong> shows live health and resource
insights for the Dispatch server, its agent processes, dependencies,
and the host machine. An overall status badge sits next to the title;
when something is off, a <strong>Dispatch needs attention</strong>{" "}
card at the top explains why.
</P>
</Section>

<Section>
<H3>Enabling collection</H3>
<P>
Metrics collection is <strong>off by default</strong>. Turn on{" "}
<strong>Collect resource metrics</strong> to sample service health and
resource usage every 5 seconds, keeping up to one hour of history in
memory. Turning collection off clears the collected history, and
history also resets when Dispatch restarts — nothing is written to the
database. Both directions ask for confirmation. A window picker
switches the charts between the last 15 minutes and the last hour.
</P>
</Section>

<Section>
<H3>What's shown</H3>
<P>
Summary cards cover Dispatch's CPU (one-core percentage) and memory
(resident set plus JS heap), the agent process tree's combined CPU and
memory, database latency and connection-pool usage, event-loop and API
p95 latencies, and the host's free memory and load. Below them, CPU
and memory history charts plot Dispatch, agents, and host load over
the selected window.
</P>
<P>
A workload card counts running agents, connected browsers, active
terminal views, scheduled jobs, and in-flight git refreshes; a
capacity card lists service uptime, database pool size, requests per
minute, and host CPU count.
</P>
</Section>

<Section>
<H3>Subsystem health</H3>
<P>
Each background subsystem — the API server, database, job schedulers,
UI event stream, terminal observers, agent reconciliation, activity
monitor, git diff refreshes, and the update checker — reports its own
status badge with run counts, failure rates, p95 durations, and a
recent-trend sparkline, so you can spot which part of Dispatch is
struggling rather than just that something is.
</P>
</Section>
</>
);
}
8 changes: 8 additions & 0 deletions apps/web/src/lib/tips/tips.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,14 @@ export const tips: Tip[] = [
since: "0.29.3",
surfaces: ["ambient"],
},
{
id: "service-resources",
title: "Service Resources",
body: "Wondering how Dispatch is holding up? Settings → Resources charts live CPU, memory, subsystem health, and workload for the server, agents, and host.",
docsSection: "resources",
since: "0.30.0",
surfaces: ["ambient"],
},
{
id: "job-webhook-trigger",
title: "Job Webhook Triggers",
Expand Down
Loading