bytelyst-devops-tools/docs
Hermes VM eaaa545e6c feat(dashboard): close Phase 6 (trend cards + theme toggle), drop-root scaffold, Agents inventory, Phase 0 reconfirm
Closes the remaining tractable items from the carry-forward queue.

1. Drop-root scaffold for the backend container (P2 mitigation)
   `backend/Dockerfile` adds non-root `app` user (uid 1001) + `docker`
   group (gid via `DOCKER_GID` build arg, default 999). `BACKEND_USER`
   build arg defaults to `root` so existing deployments keep working;
   set it to `app` plus `DOCKER_GID=$(getent group docker | cut -d: -f3)`
   to flip the runtime non-root. `dashboard/DEPLOYMENT.md` gets a new
   "Running non-root" section with the exact `chgrp`/`chmod` recipe
   for the bind-mounted log files (the host-side prep that pairs with
   the build flip). DEPLOYMENT.md mitigation roadmap updated.

2. Phase 6 trend cards
   `lib/hermes-ops-history.ts` keeps the last 24 ops snapshots in
   localStorage (de-duped on `generatedAt`, schema-guarded on read,
   degrades silently on quota exceeded). Three trend cards in the
   ops panel:
     - Warning-volume sparkline + current count
     - Healthy-instance count sparkline (X/2)
     - Per-instance "minutes since last backup commit" with a 30m
       stale threshold
   SVG polyline sparklines, no chart library — `<svg viewBox="0 0
   100 100" preserveAspectRatio="none">` with `vector-effect:
   non-scaling-stroke` so the line stays 2px regardless of the
   parent's width.

3. Phase 6 theme toggle
   `components/theme-toggle.tsx` Sun/Moon button mounted in the
   Hermes layout next to the instance switcher. Persists in
   localStorage `bytelyst.theme.v1`. The design system already
   defined `[data-theme="light"]` overrides in `styles/tokens.css`;
   the toggle just sets the attribute. FOUC-prevention inline script
   in the root layout reads the same key BEFORE React hydrates so
   the first paint matches the user's last choice.

4. Phase 3 partial close: Agents pane → telemetry inventory
   `/hermes/agents` now renders a "Memory & Skills inventory (live)"
   SectionCard backed by the Phase 3 telemetry endpoint per instance
   — `hermes memory list` and `hermes skills list` rendered with
   per-section probe-status badges (`up`/`unknown`), item counts,
   and the first N entries each. Agent **health** statuses (latency,
   failure rate, last-success/failure) stay seed-data — observability
   for those needs a separate ingestion contract that the telemetry
   endpoint doesn't provide today.

5. Phase 0 reconfirmation
   Roadmap Phase 0 ticked with explicit verification notes for each
   guardrail (no public listener, manual approvals, secret hygiene,
   Caddy review). Remains "must hold throughout" — the ticks reflect
   today's verified state, not single-checkbox completion.

Verified: backend typecheck , 74/74 backend unit tests , web
typecheck , 7/7 E2E , lint 0 errors, build green, coverage gate
≥95% lines on every gated file.

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:26:26 +00:00
..
adr docs(docker): roadmap v8 — peakpulse Phase A done + A3 ADR-0001 accepted 2026-05-27 02:54:08 -07:00
prompts docs: Phase 8 — Telegram convention + delegation brief 2026-05-30 08:05:52 +00:00
docker-build-optimization-roadmap.md docs(roadmap): record post-roadmap follow-ups complete (v15) 2026-05-28 18:07:36 -07:00
getting-started.md setup: handle managed python pre-commit installs 2026-05-05 03:26:55 +00:00
hermes_dashboard_roadmap.md Add Hermes snapshot diff view 2026-05-27 21:05:57 +00:00
hermes_dashboard_v2_roadmap.md feat(dashboard): close Phase 6 (trend cards + theme toggle), drop-root scaffold, Agents inventory, Phase 0 reconfirm 2026-05-30 08:26:26 +00:00
hermes-disaster-recovery.md Add Google Drive emergency bundle upload 2026-05-27 12:08:41 +00:00
hermes-operations.md docs: Phase 8 — Telegram convention + delegation brief 2026-05-30 08:05:52 +00:00
hermes-setup-upgrade-roadmap.md Add Hermes dashboard improvement backlog 2026-05-27 21:02:23 +00:00
hostinger-vm-maintenance.md add HostingerVM health-check and cleanup scripts 2026-05-27 18:53:20 +00:00
llm-utility-workflows.md docs: document local LLM utility workflows 2026-05-28 00:21:06 +00:00
operations.md feat: add gitea backup timer assets 2026-05-27 18:53:20 +00:00
remove_user_interactive.md docs: align repo navigation and operations notes 2026-05-05 03:11:46 +00:00
repo-map.md docs(repo-map): register agent-queue tool directory 2026-05-28 21:35:59 -07:00
tooling-status.md Add safe templates and tooling adoption docs 2026-05-05 01:16:27 +00:00
VM_OBSERVABILITY_ROADMAP.md feat(vm): fix devops-backend VM module — Phase 0.1 complete 2026-05-27 21:13:45 +00:00
vm-exposure-inventory.md fix: bind DevOps dashboard ports to loopback 2026-05-27 21:55:46 +00:00
vm-security-blind-spots-roadmap.md fix: bind DevOps dashboard ports to loopback 2026-05-27 21:55:46 +00:00