fix(sidebar): let the workspace list scroll on mobile #98
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lz/agent-nexus!98
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/mobile-sidebar-scroll"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes the scrolling half of #96. First of the four PRs in
docs/superpowers/specs/2026-09-02-sidebar-and-startup-design.md(design D1) — deliberately shipped alone, since it depends on nothing else in that spec.The bug
Below 768px the workspace list cannot be scrolled; everything past the first viewport is unreachable.
Cause
.left-panesetsflex-shrink: 0for the desktop row layout. Under 768px.main-splitflips toflex-direction: column, so that shrink factor starts applying to the vertical axis instead. The pane therefore grows to its full content height and is clipped by.main-split { overflow: hidden }— which means.lp-body { overflow-y: auto }never gets a constrained height to scroll inside.Fix
One rule, in the mobile block only:
Verification
Measured on the running app at 390×740 with 12 cards in the list, toggling the pre-fix rule back on inline to isolate cause from effect:
.left-paneheight.lp-bodyclient / scrollBefore the fix the last card's bottom sits at 1519px against a 740px viewport with no way to reach it.
Desktop is unaffected: at 1280px the pane still computes to 360px with
flex-shrink: 0, since the media query does not apply there.pnpm test108 files / 1013 tests pass ·pnpm run typecheck4854 files, 0 errors ·pnpm run lintclean.`.left-pane` sets `flex-shrink: 0` for the desktop row layout. Under 768px `.main-split` flips to `flex-direction: column`, so that shrink factor starts applying to the vertical axis: the pane grows to its full content height and is clipped by `.main-split { overflow: hidden }`. `.lp-body { overflow-y: auto }` therefore never gets a constrained height to scroll inside, and everything past the first viewport is unreachable. Give the pane `flex: 1 1 auto; min-height: 0` in the mobile block only. Measured at 390x740 with 12 cards in the list, on the real page: before pane 1488px, lp-body client 1488 == scroll 1488, scrollTop stuck at 0 after pane 683px, lp-body client 683 < scroll 1488, scrolls freely Desktop is unaffected -- at 1280px the pane still computes to 360px with `flex-shrink: 0`, since the media query does not apply there.lz referenced this pull request2026-09-02 16:29:51 +02:00