Replace the legacy UI with the dark, mono-accent design language from
design/23-sentry.html across every non-canvas surface.
- PlatformShell: fixed 252px sidebar with grouped nav (Platform /
Operate / Workspace), brand mark, user card, and a topbar with
search (Cmd+K palette), env badge, upgrade, notifications, and
theme toggle; mobile collapses to a top bar with horizontal nav
- New shared component kit in shared/components/sentry.tsx:
SPageHead, SStat, SCard, STable, SSection, SPill, Ticks, Seg,
GhostBtn/QuietBtn/IconBtn, status tone helpers
- New DashboardPage at / — stats row, per-node CPU chart with
1h/24h/7d ranges, resource usage tick strips, anomaly box,
node summary table, recent deployments and project cards;
real API data with demo-mode fixtures
- Landing page moved to /landing and rebuilt: live host telemetry
window, install strip, feature grid, template catalog, docs
- Every page (Projects, Templates, Builds, Databases, HA,
Operations, Activity, Security, Usage, Docs, People, Settings,
Audit Logs, Webhooks, Admin, NodeDetail, ServiceDetail, auth,
setup, not-found) migrated to the new kit and tokens
- Nav active state resolves by longest matching href
- Canvas internals intentionally untouched — separate pass
Verified: tsc --noEmit, eslint, vite build, Playwright walkthrough
of every route at desktop and mobile widths (demo + live session).
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>