Requires uteke: v0.16.0+ (no API change) · Epic: #289
What
- Replace
Sidebar.svelte with AppShell: PrimaryRail 56px (logo, Home/Memories/Documents, theme toggle, Settings; active state = 2+ visual changes; tooltips; optional 240px expanded mode) + SecondaryPanel slot (per-view, collapsible: Memories→Agents/Rooms/Tags, Documents→doc tree) + Topbar (workspace/namespace switcher, ⌘K search field, uteke live status) + statusbar hook.
- <768px: rail becomes drawer + bottom-safe nav; panel overlays.
- Persist collapse/expand + selected view (localStorage).
Why
Kills audit HIGHs (mobile icon cut off, no scroll isolation) and enables nav simplification without losing rooms/tree navigation.
Testing
- Vitest: shell state store.
- Playwright: rail collapse/expand persists, 375px drawer opens, horizontal overflow == 0 on all views (deterministic gate), keyboard focus traversal.
- Visual QA loop until 0 HIGH.
What
Sidebar.sveltewithAppShell: PrimaryRail 56px (logo, Home/Memories/Documents, theme toggle, Settings; active state = 2+ visual changes; tooltips; optional 240px expanded mode) + SecondaryPanel slot (per-view, collapsible: Memories→Agents/Rooms/Tags, Documents→doc tree) + Topbar (workspace/namespace switcher, ⌘K search field, uteke live status) + statusbar hook.Why
Kills audit HIGHs (mobile icon cut off, no scroll isolation) and enables nav simplification without losing rooms/tree navigation.
Testing