Summary
On a compact touch viewport, the Display options trigger in an individual project header is present in the DOM but hidden and non-interactive. This prevents changing sidebar organization or ordering from that header on mobile; built-in section triggers are unaffected.
Versions and environment
- Reproduced from upstream
main at 1f4e9e5472bb594a3eb73002d1732b4e8d5df66b (source build).
- Linux aarch64, Node v24.15.0.
- Chrome headless touch emulation, 393 × 852 CSS pixels.
Steps to reproduce
- Run bb from the commit above and create or open a project that appears in the sidebar.
- In a touch browser at 767 CSS pixels wide or narrower, open the sidebar.
- Set Display options → Organize → By project.
- Look for the sliders trigger on an individual project header (not the built-in Threads or Pinned section header).
Expected vs actual
Expected: the project-header Display options trigger is visible and tappable, like the project actions and new-thread controls beside it.
Actual: the trigger is rendered inside .bb-sidebar-hover-actions; its computed parent style is opacity: 0 and pointer-events: none, so it cannot be seen or tapped. In the same 393 × 852 probe, both (max-width: 767px) and (pointer: coarse) matched.
Evidence
The project-header wrapper on main sets the hover-open state but lacks the mobile-always marker: ProjectRow.tsx at 1f4e9e547. The existing mobile CSS shows only .bb-sidebar-hover-actions[data-sidebar-hover-actions-mobile="always"].
A minimal verified fix is available in hxy91819/bb@30f71b335: it applies the existing mobile marker to this wrapper and adds a focused regression test.
What I ruled out
- Searched open and closed issues for
mobile display options, Sidebar display options, project-header mobile actions, and mobile sidebar pointer-events; no duplicate found.
- This reproduces on upstream
main without the separate Recent activity feature. The same missing marker also exists in desktop-v0.42.1.
- The media-query condition itself is not the cause; both conditions matched during the probe.
Suggested priority and effort
Low effort, mobile-only UI defect; users can configure the sidebar from a desktop viewport, and no data is lost.
AGENT GENERATED
Summary
On a compact touch viewport, the Display options trigger in an individual project header is present in the DOM but hidden and non-interactive. This prevents changing sidebar organization or ordering from that header on mobile; built-in section triggers are unaffected.
Versions and environment
mainat1f4e9e5472bb594a3eb73002d1732b4e8d5df66b(source build).Steps to reproduce
Expected vs actual
Expected: the project-header Display options trigger is visible and tappable, like the project actions and new-thread controls beside it.
Actual: the trigger is rendered inside
.bb-sidebar-hover-actions; its computed parent style isopacity: 0andpointer-events: none, so it cannot be seen or tapped. In the same 393 × 852 probe, both(max-width: 767px)and(pointer: coarse)matched.Evidence
The project-header wrapper on
mainsets the hover-open state but lacks the mobile-always marker: ProjectRow.tsx at 1f4e9e547. The existing mobile CSS shows only.bb-sidebar-hover-actions[data-sidebar-hover-actions-mobile="always"].A minimal verified fix is available in hxy91819/bb@30f71b335: it applies the existing mobile marker to this wrapper and adds a focused regression test.
What I ruled out
mobile display options,Sidebar display options, project-header mobile actions, and mobile sidebarpointer-events; no duplicate found.mainwithout the separate Recent activity feature. The same missing marker also exists indesktop-v0.42.1.Suggested priority and effort
Low effort, mobile-only UI defect; users can configure the sidebar from a desktop viewport, and no data is lost.