T-W0HA-dashboard-layout-swap
Status: closed/done · Impact: high · Complexity: medium
Retire the dashboard’s hand-rolled layout and render on the frame’s DAppShell-based
layouts/default.vue, so the dashboard gains the shared chrome — command palette, keybindings,
context-menus, settings — driven by its registered modules.
| Location | Role today |
|---|---|
apps/sdlc/desktop/src-nuxt/app/layouts/default.vue | Hand-rolled .shell sidebar + content + scoped styles; drives nav from the static groups. |
apps/sdlc/desktop/src-nuxt/nuxt.config.ts | extends nothing; no app.config.ts. |
packages/ts/app-frame/app/layouts/default.vue | DAppShell slots (#sidebar/#navbar/#statusbar/default), useNav(), ShellPalette, useKeybindings(). |
Proposed
Section titled “Proposed”sdf-nuxt extends: ['@sksizer/app-frame', '@determined/ui'], deletes its own default.vue +
scoped styles, and lets the frame’s layout render. ProjectSwitcher re-homes into the DSidebar
#header slot; app.config.ts supplies product (name/tagline) + deepLink.scheme (sdlc://).
Transport (T-7RNJ-dashboard-transport-adapter) and modules (T-4L45-dashboard-modules) are
already wired, so the frame boots with the dashboard’s data.
Approach
Section titled “Approach”- Set
sdf-nuxtextends: ['@sksizer/app-frame', '@determined/ui'](priority: dashboard > app-frame > ui). - Delete
app/layouts/default.vueand its scoped styles; addapp/app.config.tswithproduct+deepLink.scheme: 'sdlc://'. - Re-home
ProjectSwitcherinto theDSidebar#headerslot (a frame slot or a minimal layout override). - Boot the dashboard; the frame’s
DAppShellrenders with the dashboard’s nav and tokens.
Files to touch
Section titled “Files to touch”| Location | Kind | Change |
|---|---|---|
apps/sdlc/desktop/src-nuxt/nuxt.config.ts | modify | extends: [app-frame, ui] |
apps/sdlc/desktop/src-nuxt/app/layouts/default.vue | delete | remove the hand-rolled layout |
apps/sdlc/desktop/src-nuxt/app/app.config.ts | new | product + deep-link scheme |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: The dashboard renders on the frame’s
DAppShelllayout; the hand-rolled layout + scoped styles are gone. - AC-2: The dashboard shows the command palette, keybindings, and context-menu host it lacked before, driven by its modules.
- AC-3:
ProjectSwitcherstill works, re-homed in the sidebar.
Out of scope
Section titled “Out of scope”- Version-align + full parity verification — T-051T-dashboard-frame-parity.
Depends on T-7RNJ-dashboard-transport-adapter, T-4L45-dashboard-modules.
Depends on
Section titled “Depends on”T-7RNJ-dashboard-transport-adapter, T-4L45-dashboard-modules