existing runtime manager and model refresh wiring preserved after shell integration
useRuntimeManager|useRuntimeReadyModelRefresh
Finish Phase 3 by making the unified runtime workspace the only authoritative runtime surface in the app shell.
Purpose: remove split runtime authority from the sidebar and modal flow, then make sure the consolidated workspace remains usable in the existing desktop and mobile shell.
Output: sidebar and app-shell integration that embed the unified runtime workspace directly, retire the split status-card plus settings-drawer flow, and keep runtime-aware chat behavior aligned with the same source of truth.
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/STATE.md
@.planning/REQUIREMENTS.md
@.planning/phases/03-unified-runtime-workspace/03-RESEARCH.md
@.planning/phases/03-unified-runtime-workspace/03-02-PLAN.md
@tauri-app/src/App.tsx
@tauri-app/src/App.css
@tauri-app/src/components/Sidebar.tsx
@tauri-app/src/components/Sidebar.css
@tauri-app/src/features/runtime/components/RuntimeWorkspace.tsx
@tauri-app/src/features/runtime/components/RuntimeSurface.test.tsx
Task 1: Replace the split runtime shell flow with the unified workspace
tauri-app/src/components/Sidebar.tsx, tauri-app/src/features/runtime/components/RuntimeWorkspace.tsx, tauri-app/src/features/runtime/components/RuntimeSurface.test.tsx
- tauri-app/src/components/Sidebar.tsx
- tauri-app/src/features/runtime/components/RuntimeWorkspace.tsx
- tauri-app/src/features/runtime/components/RuntimeStatusCard.tsx
- tauri-app/src/features/runtime/components/RuntimeSettingsDrawer.tsx
- tauri-app/src/features/runtime/components/RuntimeSurface.test.tsx
- .planning/phases/03-unified-runtime-workspace/03-RESEARCH.md
- Test 1: the sidebar renders the unified runtime workspace directly instead of separately rendering `RuntimeStatusCard` and opening `RuntimeSettingsDrawer`.
- Test 2: runtime lifecycle actions and draft editing still work from the sidebar-hosted workspace after the shell integration.
- Test 3: the old split launcher flow is removed so runtime health and settings are visible in one authoritative place.
Refactor `tauri-app/src/components/Sidebar.tsx` so it imports and renders `RuntimeWorkspace` directly with the existing runtime manager props. Remove the shell wiring that separately renders `RuntimeStatusCard`, tracks `showRuntimeSettings`, or mounts `RuntimeSettingsDrawer` as a second runtime surface. Update `RuntimeSurface.test.tsx` so the integration harness asserts the sidebar-hosted workspace rather than the old card-plus-drawer composition.
- `tauri-app/src/components/Sidebar.tsx` contains `RuntimeWorkspace`.
- `tauri-app/src/components/Sidebar.tsx` no longer contains `RuntimeStatusCard`.
- `tauri-app/src/components/Sidebar.tsx` no longer contains `RuntimeSettingsDrawer`.
- `tauri-app/src/features/runtime/components/RuntimeSurface.test.tsx` contains `RuntimeWorkspace` assertions after shell integration.
npm test -- RuntimeSurface
The app shell exposes one authoritative runtime workspace instead of split runtime surfaces.
Task 2: Make the unified workspace fit the app shell on desktop and mobile
tauri-app/src/components/Sidebar.css, tauri-app/src/App.tsx, tauri-app/src/App.css, tauri-app/src/features/runtime/components/RuntimeWorkspace.css
- tauri-app/src/components/Sidebar.css
- tauri-app/src/App.tsx
- tauri-app/src/App.css
- tauri-app/src/features/runtime/components/RuntimeWorkspace.css
- tauri-app/src/features/runtime/components/RuntimeWorkspace.tsx
- .planning/phases/03-unified-runtime-workspace/03-RESEARCH.md
- Test 1: the sidebar and main app layout still render without overflow regressions when the unified workspace replaces the smaller status card.
- Test 2: mobile sidebar open or close behavior still works with the larger runtime workspace present.
- Test 3: the runtime connection and model refresh wiring in `App.tsx` remain unchanged in behavior after the shell integration.
Update `tauri-app/src/components/Sidebar.css`, `tauri-app/src/App.css`, and `tauri-app/src/features/runtime/components/RuntimeWorkspace.css` so the embedded workspace has deliberate spacing, section stacking, and mobile-safe overflow behavior inside the existing sidebar shell. Keep the existing `useRuntimeManager()` and `useRuntimeReadyModelRefresh()` wiring in `tauri-app/src/App.tsx`, but adjust shell structure only as needed so the larger runtime workspace and chat view coexist cleanly on desktop and mobile without clipping the runtime controls or hiding the sidebar backdrop flow.
- `tauri-app/src/components/Sidebar.css` contains `.runtime-workspace` layout rules or an equivalent sidebar runtime workspace selector.
- `tauri-app/src/App.tsx` still contains `useRuntimeManager()` and `useRuntimeReadyModelRefresh(`.
- `tauri-app/src/App.css` or `tauri-app/src/features/runtime/components/RuntimeWorkspace.css` contains responsive rules for the unified workspace.
- `npm run build` exits 0 after the shell integration.
npm run build
The authoritative runtime workspace fits the existing shell and remains usable on both desktop and mobile layouts.
- `npm test -- RuntimeSurface`
- `npm run build`
<success_criteria>
The sidebar and app shell expose one authoritative runtime workspace.
The consolidated runtime workspace remains usable in desktop and mobile layouts.
Runtime connection and model refresh behavior stay aligned with the existing manager contract while split runtime surfaces are removed.
</success_criteria>
After completion, create `.planning/phases/03-unified-runtime-workspace/03-03-SUMMARY.md`