Problem
Below 768 pixels the Control sidebar is hidden and the top bar has no New control. A user with an existing session sees only the transcript. They cannot switch sessions or start one.
Where
components/control/session-list.tsx:266 and :309: both containers carry hidden ... md:flex.
components/control/control-top-bar.tsx has no new-session or session-switch control.
- Reference pattern:
components/top-bar.tsx:133-146 uses a left Sheet drawer for mobile navigation.
Fix
- Add a menu button to the Control top bar, visible only below
md, that opens SessionList inside a Sheet (same component as the desktop sidebar, no fork).
- Make sure the New button inside the sheet goes through
startNewSession from use-control-session-actions.ts, the same handler as every other entry point. Do not build a new target object.
- Close the sheet on session select.
Exit criteria
Out of scope
GitHub issue #347 (mobile workspace shell). Two of its sub-items are real (components/mobile/workspace-shell.tsx:26,36 should use isPane(), and activeId is destructured and discarded at :75) but it is a different surface.
https://claude.ai/code/session_01SQ4nS96XYRztd5w9QkubPf
Problem
Below 768 pixels the Control sidebar is hidden and the top bar has no New control. A user with an existing session sees only the transcript. They cannot switch sessions or start one.
Where
components/control/session-list.tsx:266and:309: both containers carryhidden ... md:flex.components/control/control-top-bar.tsxhas no new-session or session-switch control.components/top-bar.tsx:133-146uses a leftSheetdrawer for mobile navigation.Fix
md, that opensSessionListinside aSheet(same component as the desktop sidebar, no fork).startNewSessionfromuse-control-session-actions.ts, the same handler as every other entry point. Do not build a new target object.Exit criteria
tests/e2e/at a 390 pixel viewport: open/control, open the drawer, click New, confirm the composer appears with the current project preselected.pnpm lint,pnpm typecheck,pnpm test, targeted e2e pass.Out of scope
GitHub issue #347 (mobile workspace shell). Two of its sub-items are real (
components/mobile/workspace-shell.tsx:26,36should useisPane(), andactiveIdis destructured and discarded at:75) but it is a different surface.https://claude.ai/code/session_01SQ4nS96XYRztd5w9QkubPf