feat(dashboard): version in header, restructure footer #109

Merged
razvandimescu merged 2 commits from feat/dashboard-version into main 2026-04-16 16:29:55 +08:00
razvandimescu commented 2026-04-16 11:16:08 +08:00 (Migrated from github.com)

Summary

Closes #108.

  • Adds version field to /stats endpoint (from CARGO_PKG_VERSION), so the dashboard can read it without a second fetch to /health.
  • Shows v0.13.1 next to the Numa wordmark in the dashboard header — matches the universal convention (Grafana, Pi-hole, Portainer all put version near the product name).
  • Restructures the footer into two semantic rows for reduced density:
    • Row 1 (paths): Config · Data · Logs — the things you'd paste into a bug report
    • Row 2 (runtime): Upstream · DNSSEC · SRTT · GitHub — the things you'd check at a glance
  • Drops Mode from the footer (redundant — the Upstream label already reads "forward" vs "recursive (root hints)").
  • Detects platform from data_dir path and shows only the matching log location (macOS → /usr/local/var/log/numa.log, Linux → journalctl -u numa -f) instead of listing both unconditionally.

Test plan

  • make all — fmt + clippy + audit + 285 tests pass
  • Visual: deploy locally, open dashboard, confirm version badge in header and two-row footer render correctly
  • /stats JSON includes "version": "0.13.1" as the first field
## Summary Closes #108. - Adds `version` field to `/stats` endpoint (from `CARGO_PKG_VERSION`), so the dashboard can read it without a second fetch to `/health`. - Shows `v0.13.1` next to the Numa wordmark in the dashboard header — matches the universal convention (Grafana, Pi-hole, Portainer all put version near the product name). - Restructures the footer into two semantic rows for reduced density: - **Row 1 (paths):** Config · Data · Logs — the things you'd paste into a bug report - **Row 2 (runtime):** Upstream · DNSSEC · SRTT · GitHub — the things you'd check at a glance - Drops `Mode` from the footer (redundant — the Upstream label already reads "forward" vs "recursive (root hints)"). - Detects platform from `data_dir` path and shows only the matching log location (macOS → `/usr/local/var/log/numa.log`, Linux → `journalctl -u numa -f`) instead of listing both unconditionally. ## Test plan - [x] `make all` — fmt + clippy + audit + 285 tests pass - [x] Visual: deploy locally, open dashboard, confirm version badge in header and two-row footer render correctly - [x] `/stats` JSON includes `"version": "0.13.1"` as the first field
Sign in to join this conversation.