bytelyst-devops-tools/dashboard/web/src/components
Hermes VM 14c7a8f59a feat(dashboard): Phase 6 — severity-tagged alerts + per-instance actions + deep links
Closes Phase 6 (the items that don't need a backend change). Three
threads, all on the Hermes Mission Control overview:

1. Severity-tagged alerts on the ops panel
   New `RecentAlerts` component classifies each `recentAlerts` string
   into critical / warn / info by leading token (CRITICAL/ERROR/FATAL
   → critical; INFO/OK → info; default → warn — most ops alerts are
   warnings) and renders a colour-coded badge per alert. A
   per-severity radiogroup filter sits in the panel header with live
   counts. Pure UI — no backend contract change. The watchdog log
   tailer in `hermes-telemetry/repository.ts` already emits structured
   severities for the future migration off of leading-token parsing.

2. Per-instance action row on each `InstanceCard`
   Adds three buttons next to "Open dashboard" / "Copy URL":
     - "Copy SSH command": Tailscale-scoped only — never raw `ssh` —
       and per-instance user (`tailscale ssh root@<ts-ip>` for Vijay,
       `tailscale ssh uma@<ts-ip>` for Bheem). Disabled when the
       snapshot has no Tailscale IP.
     - "View tasks": deep link into the Task Ledger pre-filtered by
       instance via `/hermes/tasks?instance=<id>`.
     - "Open runbook": link to `docs/hermes-operations.md`.
   "How to restart this gateway" is intentionally a runbook link, not
   a button — restarting is privileged and should go through the
   documented procedure, not the dashboard UI.

3. URL-param hydration of the instance switcher
   `HermesInstanceProvider` now reads `?instance=` from the URL on
   mount (and on subsequent navigations to a different value). The
   URL value wins over the persisted localStorage selection so deep
   links from the ops panel land on a pre-filtered pane. The param
   is intentionally not auto-stripped — back/forward and copy-paste
   stay meaningful.

Roadmap status: Phase 6 ticked except trend cards (deferred — needs
client-side history persistence) and theme toggle (deferred — shell
doesn't expose a switch primitive yet). Unified-alerts-feed bullet
partially achieved by the new severity filter; the per-instance roll-up
will land when a UI consumer is built for the Phase 3 telemetry
endpoint.

Verified: typecheck , build , 7/7 E2E  (the existing switcher
test exercises the new context code path; URL hydration is covered
indirectly by the deep-link button → Task Ledger pre-filter).

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-30 08:03:57 +00:00
..
ui fix: resolve all TypeScript errors — green tsc 2026-05-27 18:53:20 +00:00
error-boundary.tsx feat(devops-web): fix responsive layout and add comprehensive dashboard pages 2026-05-11 03:10:31 +00:00
hermes-instance-switcher.tsx feat(dashboard): Phase 2 — instance dimension across Mission Control 2026-05-30 07:43:55 +00:00
hermes-ops-panel.tsx feat(dashboard): Phase 6 — severity-tagged alerts + per-instance actions + deep links 2026-05-30 08:03:57 +00:00
hermes-shell.tsx feat: add Hermes mission control dashboard 2026-05-26 08:27:59 +00:00
log-viewer.tsx feat(devops): restore dashboard build and log polling 2026-05-18 09:00:56 +00:00
service-form.tsx feat(devops-web): fix responsive layout and add comprehensive dashboard pages 2026-05-11 03:10:31 +00:00
sidebar-nav.tsx improve: dashboard security, code quality, and UX fixes 2026-05-27 18:53:20 +00:00