# App Hosting Audit

Dato: 2026-06-06

## Root causes

### NexusWindow kunne blive usynlig ved reduced motion

Kategori: window chrome / lifecycle

Root cause: `NexusWindow` template satte `PART_ShellBorder` til `Opacity=0`. Hvis animation var slået fra eller reduced motion var aktiv, returnerede `OnLoaded` uden at sætte opacity til `1`.

Fix: `NexusWindow.OnLoaded` sætter shell opacity til `1`, når animation ikke køres.

Impact: Reducerer sort/tom/ufærdig app-window følelse.

### Hub route var en no-op i overlay

Kategori: routing / app registry

Root cause: `nexus:hub` satte kun `ShowAllApps = true` i launcher viewmodel. Hvis brugeren allerede var i launcheren, føltes handlingen som ingenting og registrerede ikke en app i workspace manager.

Fix: `nexus:hub` åbner nu `NexusAppHubWindow`, registreret som `nexus-app-hub` i workspace manager.

Impact: App Hub er nu en rigtig Nexus app surface.

### Placeholder route viste kun blocked text

Kategori: placeholder strategy

Root cause: `nexus:placeholder` kaldte `LaunchBlocked`, så ufærdige apps viste blot en besked i stedet for en Nexus-native app overflade.

Fix: `NexusAppPlaceholderWindow` og `NexusAppPlaceholderViewModel` viser ikon, navn, status, forklaring og handlinger.

Impact: Ufærdige apps åbner ikke sort/tomt og er stadig workspace-managed.

### Workspace state fulgte ikke native minimize/restore

Kategori: lifecycle / workspace state

Root cause: Window manager opdaterede state ved egne `Minimize`/`Activate` metoder, men ikke hvis brugeren trykkede Nexus chrome minimize eller window state ændrede sig direkte.

Fix: `RegisterWorkspaceWindow` lytter nu på `Window.StateChanged`.

Impact: Dock/task area kan vise `Kører`, `I fokus` og `Minimeret` mere korrekt.

### Task area lignede en rå debug-strip

Kategori: OS experience

Root cause: workspace taskbar brugte tekstknapper og flad styling.

Fix: Task area er ændret til Nexus-native running app strip med status-dot og ikonknapper.

Impact: Reducerer Windows/debug-følelse.

## App matrix

| App | Route | Status efter pass |
| --- | --- | --- |
| Settings | `nexus:settings` | NexusWindow, workspace-managed |
| Files | `nexus:files` | NexusWindow, workspace-managed |
| Hub | `nexus:hub` | Ny NexusAppHubWindow, workspace-managed |
| Store | `nexus:store` | NexusWindow, workspace-managed |
| Calculator | `nexus:calculator` | NexusWindow, workspace-managed |
| Browser | `nexus:browser` | NexusWindow, workspace-managed |
| Notes | `nexus:placeholder` | Nexus placeholder window |

## Kendt begrænsning

Apps er stadig separate WPF windows som mellemstation. De har Nexus chrome/wrapper og workspace registration, men fuld intern tab/content hosting i desktop-fladen er næste arkitekturtrin.
