Files
nexus/docs/audits/2026-07-27/DASHBOARD_SIDEBAR_UNIFICATION.md
AzuTear f5552218bc
CI - Build & Test / Backend (.NET) (push) Successful in 42s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m46s
CI - Build & Test / Security Check (push) Successful in 3s
CI - Build & Test / Deploy Nexus (push) Successful in 56s
feat: ship agent-first mission control v0.2.57
2026-07-31 22:39:47 +02:00

2.0 KiB

Dashboard sidebar unification

Outcome

The dashboard now renders the same AppSidebar.vue component as every other authenticated route. This removes the final visible navigation fork without changing dashboard content, domain state, stores, API contracts, or route registration.

Implementation

  • Replaced the dashboard-only Sidebar.vue render in NexusLayout.vue with AppSidebar.vue.
  • Preserved the dashboard task count through the existing task store.
  • Bound the active destination to the current Vue Router route.
  • Kept the existing mobile close event and backdrop behavior.
  • Aligned the dashboard topbar and backdrop breakpoint with the shared sidebar's 900px overlay breakpoint.

Rendered proof

Evidence Viewport Result
Dashboard before 1440 x 900 Separate sidebar confirmed
Settings reference 1440 x 900 Shared component authority
Dashboard after 1440 x 900 Matches shared sidebar
Dashboard mobile 375 x 812 Overlay, categories, Settings, and footer visible
Same-viewport comparison 1440 x 900 Identical sidebar geometry and styling

Evidence files are stored under screenshots/.

Interaction and geometry

  • Dashboard -> Agents -> Dashboard passed.
  • Dashboard -> Settings passed at 375px.
  • Active states use aria-current="page".
  • The overlay closes after navigation.
  • No document-level horizontal overflow at 375, 768, 1024, 1440, or 1920px.
  • At 768px, the sidebar is hidden off-canvas and the named topbar toggle is visible.
  • Browser console: no errors. Existing fixture/API fallback warnings remain.

Technical gates

pnpm typecheck  -> passed
pnpm test       -> passed (1 file, 2 tests)
pnpm build      -> passed (1,873 modules)
git diff --check -> passed; line-ending notices only

Severity result

  • P0: none
  • P1: none
  • P2: none

Evidence maturity: controlled local browser proof. No commit, push, or deployment was performed.