Skip to content

[Bug]: Android tablet view differs from phone and lacks new-task sidebar controls #5338

Description

@MajesteitBart

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/mobile

Steps to reproduce

  1. Install the Android app on a tablet (window ≥ 720dp wide and ≥ 600dp tall, so the split layout activates).
  2. Open the app — the split view renders the Threads sidebar plus a detail pane.
  3. Open any thread.
  4. Look for a way to start a new task, or to collapse the sidebar.
  5. 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:

  1. 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.
  2. No sidebar collapse on Android tablets at allWorkspaceSidebarToolbar returns null on Android (workspace-sidebar-toolbar.tsx:15).
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken or behaving incorrectly.needs-triageIssue needs maintainer review and initial categorization.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions