Skip to content

feat(web): add Fleet dashboard for cross-instance observability#42

Merged
offendingcommit merged 3 commits into
mainfrom
feat/fleet-dashboard
May 28, 2026
Merged

feat(web): add Fleet dashboard for cross-instance observability#42
offendingcommit merged 3 commits into
mainfrom
feat/fleet-dashboard

Conversation

@offendingcommit
Copy link
Copy Markdown
Owner

Closes #12 — an aggregated dashboard that fans out across all stored instances instead of only the active one.

  • components/fleet/ — FleetDashboard + FleetRow + fleetAggregates.ts, rendering each instance's workspaces/sessions/queue side-by-side with a per-instance badge.
  • New /fleet route + sidebar nav entry.
  • Built on the scoped-client foundation (feat(api): add scoped multi-instance query client #19): per-instance query-key isolation means no cache collisions when the same workspace name exists on two instances — directly satisfying Aggregated dashboard across multiple instances #12's acceptance criteria.
  • 175-line component test + Playwright e2e.

Meets #12's checklist: multi-instance workspace lists, per-row instance origin, aggregated queue status, single-instance behavior preserved, no cache collisions.

Credit

Cherry-picked from @BenSheridanEdwards's fork (feat/fleet-dashboard), authorship preserved. Thanks Ben!

Verification

make check — lint + typecheck + tests pass locally; routeTree regenerated clean.

Agents and others added 3 commits May 28, 2026 15:57
Adds a new /fleet route that shows a fleet-wide overview of all
configured Honcho instances. Each row renders per-instance metrics
(workspace count, total conclusions, queue activity, last seen, health)
by fanning out scoped fetches via createScopedClient, and aggregates
into top-level metric cards.

Reuses the Phase 2 scoped-client pattern. Extends compareQueries.ts
with useScopedQueueStatus and useScopedConclusionsCount, plus option
builders so useQueries can fan out per-workspace requests inside
FleetRow without duplicating query logic.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds dark, light, and mixed-health screenshots used in the PR description.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two focused Playwright tests, mirroring the existing sidebar.spec
pattern (no backend dependency — instances point at unreachable ports
and we only assert on rendered names + row count, not health):

- Fleet link in the sidebar navigates to /fleet
- /fleet renders one row per configured instance under the table role

Also adds a Fleet link assertion to the existing sidebar.spec so the
nav entry is covered on the dashboard route alongside the other top
links. Both new tests run under the existing `pnpm test:e2e` (not
gated in CI by design — matches the current Compare/Dashboard E2E
posture).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@offendingcommit offendingcommit merged commit ab69b00 into main May 28, 2026
2 checks passed
@offendingcommit offendingcommit deleted the feat/fleet-dashboard branch May 28, 2026 22:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Aggregated dashboard across multiple instances

1 participant