Improve sessions list rendering on phone layout#314321
Merged
Conversation
- Phone-aware row height (76px) in SessionsTreeDelegate, refreshed on IsPhoneLayoutContext changes. - Larger title/details fonts and roomier padding under .phone-layout. - Card-style row margin/border-radius and centered icon alignment. - Per-row toolbar always visible on touch; pulled out of the title-row flow with absolute positioning so 44px tap targets do not shift the details row. - Stop pointer/click propagation at the toolbar container so action taps do not trigger the row open handler.
This comment was marked as off-topic.
This comment was marked as off-topic.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR targets the Agents window phone layout by making the sessions list more readable and touch-friendly, primarily through a taller row height and phone-scoped CSS adjustments.
Changes:
- Adjusts
SessionsTreeDelegaterow height based on phone layout and attempts to refresh heights whenIsPhoneLayoutContextchanges. - Updates phone-scoped CSS to increase padding/font sizes and reposition the per-row action toolbar for touch.
- Adds event propagation stops on the title toolbar container to prevent row “open” behavior when interacting with actions.
Show a summary per file
| File | Description |
|---|---|
| src/vs/sessions/contrib/sessions/browser/views/sessionsList.ts | Adds phone-aware row height logic, reactive height refresh on context changes, and event propagation handling for the inline toolbar. |
| src/vs/sessions/contrib/sessions/browser/media/sessionsList.css | Adds .agent-sessions-workbench.phone-layout styling for roomier “card-style” rows and always-visible inline actions. |
Copilot's findings
- Files reviewed: 2/2 changed files
- Comments generated: 6
- Stop Monaco Gesture tap from reaching the list when the user taps an inline action on touch (DOM stopPropagation only covers mouse). - Drop unsafe vertical margin on the absolutely positioned list row; any inter-row spacing lives inside the row via padding/border. - Refresh stale doc comments (row geometry, iteration cost, no-op '2-line wrap' description).
Contributor
Author
|
Triage of the Copilot review: Addressed in bf8562b
Not changing
|
bpasero
approved these changes
May 5, 2026
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.
Improves the readability and tap-friendliness of the agent sessions list under the phone layout. No new components, no new data — only a phone-aware row height and CSS changes scoped to
.agent-sessions-workbench.phone-layout.Changes
SessionsTreeDelegate): 76px on phone vs 54px on desktop. Heights refresh reactively whenIsPhoneLayoutContextchanges.margin: 2px 8px, 10px border radius for a phone-native press feel.position: absolute; right: 6px; top: 50%so 44px tap targets don't inflate the title line-height or push the details row down..session-mainreservespadding-right: 96pxto keep titles from sliding under the icons. Action labels are flex-centered so the icon sits in the middle of the 44×44 tap area.pointerdown/pointerup/click/dblclickpropagation, so the row'sonDidOpenhandler doesn't fire when a tap lands on an action. This applies on desktop and mobile — semantically actions on the row toolbar are not "open the row".Architecture notes
.agent-sessions-workbench.phone-layoutancestor selectors, so desktop rendering is byte-identical.IsPhoneLayoutContextreactive signal (perMOBILE.mdguidance) for the height refresh — no new branching infrastructure.Out of scope
The HTML mock that inspired this also showed colored status pills, a filter chip row, a FAB, and a bottom tab bar. Those are not implemented here — this PR is strictly about making the existing list readable and tappable on a phone.
Verification
npm run compile-check-ts-nativeclean.