feat(dashboard): aggregate /api/dashboard/overview + Hermes-native cards#242
Merged
Conversation
added 3 commits
May 2, 2026 15:22
Workspace dashboard now mirrors what the native Hermes Agent dashboard at :9120 surfaces, on top of the existing sessions analytics, in a single server-aggregated round trip. Adds new server endpoint `GET /api/dashboard/overview` that fans out to: - /api/status (gateway state, active sessions, platforms) - /api/cron/jobs (cron summary) - /api/plugins/hermes-achievements/recent-unlocks (recent ribbon) - /api/plugins/hermes-achievements/achievements (totals) - /api/model/info (provider, model, context, capabilities) - /api/analytics/usage (token totals, top models, optional cost) Per-section graceful fallbacks: each slice independently resolves to null on auth failure / missing endpoint / unreachable dashboard, and the corresponding card hides itself. Vanilla installs without the achievements plugin or analytics auth still get a usable dashboard. Adds 5 new dashboard cards: - SystemStatusStrip: one-line gateway + active-agents pill at top, warning chip when restart_requested. - PlatformsCard: connected platforms with per-platform state pills (api_server, telegram, discord, etc.). - CronSummaryCard: scheduled / paused / running counts + next-run countdown, click-through to /jobs. - AchievementsCard: 3 most recent unlocks with tier badges, plus a modal that fetches a wider window (?achievements=12) for the full ribbon view. - AnalyticsSummaryCard: top-3 models by tokens with proportional bars, total tokens over the window, real cost from the dashboard (replaces the old hardcoded ~$5/M estimate). Other tweaks: - Replace the hardcoded cost subline on the Tokens MetricTile with the real estimated_cost_usd value from /api/analytics/usage when present. - New section row between the chart row and Recent Sessions for Platforms / Analytics / Achievements. Tests: +7 for the aggregator covering the empty / mixed / full payload shapes plus the field-rename quirks (gateway_platforms vs platforms, active_sessions vs active_agents). All 31 swarm/dashboard tests green.
Polish pass on PR #242 (Workspace dashboard parity phase 1) before merge. Tightens layout per the dashboard spec's '10-second status read' goal. Layout changes: - Drop the centered logo hero. New header is a single row with title, Hermes Workspace label, and inline QuickActions. - Collapse the three stacked status rows (SystemStatusStrip, CronSummaryCard, PlatformsCard) into one OpsStrip that surfaces gateway state, version, active agents, restart-pending, config drift, platform pills, and cron pulse in a single horizontal bar. - Re-flow main content as 8/4 split: Activity + Analytics on the left, Model + Skills + Achievements as a side rail. Data parity: - Aggregator now exposes status.version, releaseDate, configVersion, latestConfigVersion, hermesHome from /api/status. OpsStrip uses these for the version chip and config drift warning. - New ModelInfoCard reads overview.modelInfo (i.e. /api/model/info, the active model the gateway is using) instead of /api/claude-config defaults. Surfaces context length and tools/vision/reasoning chips. UX: - AnalyticsSummaryCard now renders a stable 'No usage in last Nd' empty state instead of disappearing, so layout doesn't reflow on fresh installs. - Cron stale next-run (>7 days overdue) downgrades to muted 'stale' label so March overdue jobs don't look alarming. Cleanup: - Remove orphaned SystemStatusStrip, CronSummaryCard, PlatformsCard components. Drop legacy ModelCard + dead SystemGlance helper from dashboard-screen.tsx (-179 lines net). Tests/build: - pnpm exec vitest run src/server/dashboard-aggregator.test.ts (7/7) - pnpm build (passes)
This was referenced May 3, 2026
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.
Summary
Workspace dashboard now mirrors what the native Hermes Agent dashboard at
:9120surfaces, in a single server-aggregated round trip.New server endpoint
GET /api/dashboard/overviewproxies six native endpoints in parallel with per-section graceful fallbacks:/api/status\u2192 gateway state + active sessions + platforms/api/cron/jobs\u2192 cron summary/api/plugins/hermes-achievements/*\u2192 achievements ribbon/api/model/info\u2192 model + context + capabilities/api/analytics/usage\u2192 token totals + top models + optional costEach slice independently resolves to
nullif auth/plugin/dashboard isn't available \u2014 vanilla installs still render a usable dashboard.New cards
restart_requested$5/Mestimate)Tests
gateway_platformsvsplatforms,active_sessionsvsactive_agents)