feat: ship agent-first mission control v0.2.57
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# Authenticated dashboard design migration audit
|
||||
|
||||
## Outcome
|
||||
|
||||
The dashboard V2 language now covers all 16 other authenticated routes through
|
||||
a shared token source, presentation layer, and aligned legacy shell. Dashboard
|
||||
and Login remain visually unchanged. No product behavior, backend contract,
|
||||
route registration, store/service/composable logic, or permission rule was
|
||||
modified.
|
||||
|
||||
## Implemented layers
|
||||
|
||||
1. Expanded `nexus-tokens.css` into the V2 source for surfaces, text, accents,
|
||||
status colors, focus, typography, page geometry, and legacy aliases.
|
||||
2. Added `nexus-components.css` for route frames, headers, glass panels,
|
||||
controls, badges, modals, and state surfaces.
|
||||
3. Aligned `App.vue`, `AppSidebar`, and `AppHeader` with the dashboard's galaxy,
|
||||
248px sidebar, 62px topbar, glass, and responsive navigation.
|
||||
4. Applied standard, workspace, or reading-width contracts to every migrated
|
||||
route family.
|
||||
5. Replaced presentation emoji/glyph icons with existing Lucide icons and added
|
||||
accessible names, semantic interactive elements, keyboard equivalence, and
|
||||
visible focus.
|
||||
6. Unified both authenticated navigation shells around the four dashboard
|
||||
categories and added a persistent Settings destination to the dashboard
|
||||
footer. Shared-shell and dashboard destinations now use RouterLinks, while
|
||||
detail routes retain the active state of their parent section.
|
||||
|
||||
## Evidence matrix
|
||||
|
||||
| Evidence | Coverage | Result |
|
||||
| --- | --- | --- |
|
||||
| Fresh dashboard reference | `/dashboard`, `1440 × 900` | Passed |
|
||||
| Full desktop route matrix | all 18 registered routes, `1440 × 900` | Passed |
|
||||
| Full migrated mobile matrix | 16 migrated routes, `375 × 812` | Passed |
|
||||
| Representative responsive matrix | 5 route families at `768`, `1024`, `1920px` | Passed |
|
||||
| Automated geometry | document width and route-root geometry | Passed |
|
||||
| Same-viewport visual comparison | dashboard reference beside migrated Agents | Passed |
|
||||
| Core interactions | filters, forms, modal, detail changes, board, chat, notifications | Passed |
|
||||
| Keyboard/accessibility | names, semantics, focus, equivalent activation | Passed |
|
||||
| Frontend gates | typecheck, tests, build | Passed |
|
||||
|
||||
Evidence is under `screenshots/`. The final reference is
|
||||
`screenshots/00-dashboard-reference-1440.png`; route captures are under
|
||||
`screenshots/design-migration-routes/`; and the combined visual comparison is
|
||||
`screenshots/design-qa-comparison-dashboard-vs-agents-1280.png`.
|
||||
|
||||
## Measured contracts
|
||||
|
||||
- Sidebar: `248px` desktop.
|
||||
- Topbar: `62px`.
|
||||
- Page title: Space Grotesk `24px / 30px`, weight `700`.
|
||||
- Desktop/mobile inset: `20px / 14px`.
|
||||
- Maximum route widths: standard `1180px`, workspace `1440px`, reading/form
|
||||
`880px`.
|
||||
- No document-level horizontal overflow at the required breakpoints.
|
||||
- Task Board columns retain their intentional internal horizontal scroller.
|
||||
|
||||
## Findings resolved during QA
|
||||
|
||||
- The inherited 768px shell breakpoint initially hid the sidebar without
|
||||
exposing the mobile navigation button. The shell now switches coherently at
|
||||
`900px`.
|
||||
- Scoped Settings width rules initially overrode the shared reading-width
|
||||
modifier. Higher-specificity shared contracts now enforce `880px` for every
|
||||
reading/form root.
|
||||
- Undefined or ambiguous legacy color aliases and hard-coded route colors were
|
||||
replaced by V2 semantic tokens.
|
||||
- Presentation emoji/glyph icons and unnamed icon controls were replaced with
|
||||
Lucide icons and explicit accessible names.
|
||||
- The shared sidebar initially exposed one flat list and the dashboard omitted
|
||||
Settings. Both shells now expose the same category framework and persistent
|
||||
Settings access without changing routes, handlers, stores, or permissions.
|
||||
- A RouterLink migration initially shadowed each dashboard item's target with
|
||||
the current route. The prop/current-route names are now distinct, and browser
|
||||
checks confirmed the real registered destinations.
|
||||
|
||||
## Residuals
|
||||
|
||||
There are no P0-P2 design defects. A deliberate Task Board route leave aborts
|
||||
the fixture-backed live stream and logs the existing polling-fallback warning.
|
||||
This is outside the presentation scope and does not affect the rendered result
|
||||
or interaction path.
|
||||
|
||||
## Verification
|
||||
|
||||
```text
|
||||
pnpm typecheck -> passed
|
||||
pnpm test -> passed (1 file, 2 tests)
|
||||
pnpm build -> passed (1,882 modules)
|
||||
git diff --check -> passed; line-ending notices only
|
||||
```
|
||||
|
||||
Navigation follow-up evidence:
|
||||
|
||||
```text
|
||||
navigation-groups-after-dashboard.png
|
||||
navigation-groups-after-settings.png
|
||||
navigation-groups-after-settings-375.png
|
||||
navigation-groups-comparison-dashboard-vs-settings-1440.png
|
||||
```
|
||||
Reference in New Issue
Block a user