Before submitting
Area
apps/mobile
Steps to reproduce
- Install the Android app on a tablet (window ≥ 720dp wide and ≥ 600dp tall, so the split layout activates).
- Open the app — the split view renders the Threads sidebar plus a detail pane.
- Open any thread.
- Look for a way to start a new task, or to collapse the sidebar.
- Compare with the same build on an Android phone (compose FAB present) or on an iPad (header has "New task" and sidebar-toggle buttons).
Expected behavior
The Android tablet layout matches the phone and iPad split view, with controls to start a task anywhere, toggle the sidebar, and use phone-style filters/settings.
Actual behavior
In my opinion it's very weird that the tablet version is this different and missing so much components compared to the mobile version. Below is an AI-generated code-level summary of the issue, which I reviewed before filing. Line numbers refer to main @ cec1bb9de.
The app picks a layout purely from window size (apps/mobile/src/lib/layout.ts:57 — ≥720dp wide and ≥600dp tall → split view), and the two modes are entirely separate component trees that fork at HomeRouteScreen.tsx:100:
- Phone:
HomeHeader ("T3 Code" lockup, filter button, settings gear, search field) plus the compose FAB (AndroidHomeFab.tsx), and the thread list.
- Tablet:
ThreadNavigationSidebar with its own separately-implemented header ("Threads" title, sidebar-filter-button.tsx, sidebar-header-actions.tsx), plus a detail pane.
On top of that split, several tablet controls are additionally gated to iOS, which is why the Android tablet is missing buttons rather than just rearranging them:
- No way to start a new task once a thread is open. The compose FAB only exists in phone mode, and the split-view header's "New task" and sidebar-toggle buttons are iOS-native-header items only (
ThreadRouteScreen.tsx:622-662); the Android header action list (ThreadRouteScreen.tsx:663-710) has files/terminal/git/inspector but neither of those two. On an Android tablet, new-task entry exists only on the empty "Select a thread" pane (WorkspaceEmptyDetail.tsx:18) and per-project rows.
- No sidebar collapse on Android tablets at all —
WorkspaceSidebarToolbar returns null on Android (workspace-sidebar-toolbar.tsx:15).
- Filter/settings buttons are parallel implementations in
HomeHeader.tsx versus the sidebar components, so their icons, grouping, and behavior have drifted apart.
Possible direction (suggestion, not a demand): three targeted changes rather than one big refactor — (a) add "New task" (and a sidebar toggle) to the Android split-mode header actions, and/or mount the compose FAB in the split branch too; (b) drop the Android early-return in WorkspaceSidebarToolbar or add an Android equivalent; (c) extract the filter-menu and settings buttons into shared components consumed by both the phone home header and the tablet sidebar so they can't diverge again. One caveat: because the layout is window-size-driven, a tablet in split-screen multitasking (or a phone in landscape, via the 600dp height floor) will intentionally fall back to the phone UI — that's by design, but it means any parity fix should be tested across both trees.
Happy to submit a focused PR, just raising the issue first.
Impact
Cosmetic issue
Version or commit
main @ cec1bb9
Environment
Android 16, Samsung Galaxy Fold 7
Logs or stack traces
Screenshots, recordings, or supporting files
Screenshot_20260804_135619_T3 Code.jpg
Screenshot_20260804_135921_T3 Code Preview.jpg
Workaround
No response
Before submitting
Area
apps/mobile
Steps to reproduce
Expected behavior
The Android tablet layout matches the phone and iPad split view, with controls to start a task anywhere, toggle the sidebar, and use phone-style filters/settings.
Actual behavior
In my opinion it's very weird that the tablet version is this different and missing so much components compared to the mobile version. Below is an AI-generated code-level summary of the issue, which I reviewed before filing. Line numbers refer to
main@cec1bb9de.The app picks a layout purely from window size (
apps/mobile/src/lib/layout.ts:57— ≥720dp wide and ≥600dp tall → split view), and the two modes are entirely separate component trees that fork atHomeRouteScreen.tsx:100:HomeHeader("T3 Code" lockup, filter button, settings gear, search field) plus the compose FAB (AndroidHomeFab.tsx), and the thread list.ThreadNavigationSidebarwith its own separately-implemented header ("Threads" title,sidebar-filter-button.tsx,sidebar-header-actions.tsx), plus a detail pane.On top of that split, several tablet controls are additionally gated to iOS, which is why the Android tablet is missing buttons rather than just rearranging them:
ThreadRouteScreen.tsx:622-662); the Android header action list (ThreadRouteScreen.tsx:663-710) has files/terminal/git/inspector but neither of those two. On an Android tablet, new-task entry exists only on the empty "Select a thread" pane (WorkspaceEmptyDetail.tsx:18) and per-project rows.WorkspaceSidebarToolbarreturnsnullon Android (workspace-sidebar-toolbar.tsx:15).HomeHeader.tsxversus the sidebar components, so their icons, grouping, and behavior have drifted apart.Possible direction (suggestion, not a demand): three targeted changes rather than one big refactor — (a) add "New task" (and a sidebar toggle) to the Android split-mode header actions, and/or mount the compose FAB in the split branch too; (b) drop the Android early-return in
WorkspaceSidebarToolbaror add an Android equivalent; (c) extract the filter-menu and settings buttons into shared components consumed by both the phone home header and the tablet sidebar so they can't diverge again. One caveat: because the layout is window-size-driven, a tablet in split-screen multitasking (or a phone in landscape, via the 600dp height floor) will intentionally fall back to the phone UI — that's by design, but it means any parity fix should be tested across both trees.Happy to submit a focused PR, just raising the issue first.
Impact
Cosmetic issue
Version or commit
main @ cec1bb9
Environment
Android 16, Samsung Galaxy Fold 7
Logs or stack traces
Screenshots, recordings, or supporting files
Screenshot_20260804_135619_T3 Code.jpg
Screenshot_20260804_135921_T3 Code Preview.jpg
Workaround
No response