feat(web): add Fleet dashboard for cross-instance observability#42
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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./fleetroute + sidebar nav entry.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.