improve(ui): pin sidebar nav above a scrollable session list#100742
Merged
Conversation
9e2b450 to
5de2b8f
Compare
Nav routes (Overview, Workboard, Agents, More) now render first and stay pinned; the session list owns the remaining sidebar height and scrolls internally instead of being capped at min(42vh, 400px). Mobile drawer matches the pinned-nav layout.
5de2b8f to
b8dd9fc
Compare
Contributor
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: improve(ui): pin sidebar nav above a scrollable session list This is item 1/1 in the current shard. Shard 0/1. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
Contributor
Author
|
Merged via squash.
|
github-actions Bot
pushed a commit
to Desicool/openclaw
that referenced
this pull request
Jul 7, 2026
…w#100742) Nav routes (Overview, Workboard, Agents, More) now render first and stay pinned; the session list owns the remaining sidebar height and scrolls internally instead of being capped at min(42vh, 400px). Mobile drawer matches the pinned-nav layout.
giodl73-repo
pushed a commit
to giodl73-repo/openclaw
that referenced
this pull request
Jul 8, 2026
…w#100742) Nav routes (Overview, Workboard, Agents, More) now render first and stay pinned; the session list owns the remaining sidebar height and scrolls internally instead of being capped at min(42vh, 400px). Mobile drawer matches the pinned-nav layout.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Problem This Solves
In the Control UI web sidebar, the session list rendered above the navigation items (Overview, Workboard, Agents, More), and the navigation was the scrolling region below it. With a long session list the primary navigation sat below the fold, and the sessions area was capped to a fixed height (
min(42vh, 400px)) instead of using the available sidebar height.Why This Change Was Made
The sidebar now renders navigation first and keeps it pinned (non-scrolling) at the top, while the session list owns the remaining sidebar height and scrolls internally. The recent-session list's fixed height cap is removed since the flex layout now bounds it naturally, and the mobile drawer uses the same pinned-nav layout. A 60% height cap on the nav keeps sessions reachable if an expanded More section outgrows a short window.
User Impact
Navigation items (Overview, Workboard, Agents, More) are always visible at the top of the sidebar. Sessions get the rest of the sidebar height and scroll on their own, so tall windows show more sessions instead of stopping at 400px.
Evidence
Control UI e2e (mock gateway) on Blacksmith Testbox:
pnpm test ui/src/e2e/sidebar-customization.e2e.test.ts ui/src/e2e/session-management.e2e.test.ts— 2 files, 3 tests passed. Path-scopedpnpm check:changedgates on the same box passed (format/lint/guards, exit 0). Codex autoreview: clean, no actionable findings.Before (sessions above nav, nav scrolled away) → after (nav pinned, sessions scrollable below):
Default pinned state (Overview only) after the change: