sessions: align experimental composer controls - #337149
Megan Rogge (meganrogge) merged 21 commits into
Conversation
Align the new-session composer controls with the unified picker layout behind an opt-in setting. Add workspace and harness focus shortcuts with discoverable keybinding configuration. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Align new and active session controls under the experimental composer setting, keep repository controls ordered consistently, and make the footer quiet at rest. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Let the transparent experimental footer span the composer so its controls align with the input actions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Repository ordering escapes the experimental gate, while accessible guidance and dynamic presentation coverage remain incomplete.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
Open (3)
What changed in this PR
Adds experimental Agents Window composer alignment and keyboard-accessible workspace/harness picker controls.
Changes:
- Adds picker-focus commands, dynamic keybinding hovers, context menus, and accessibility help.
- Introduces opt-in new/active session composer layouts.
- Reorders and relocates repository, permission, model, and harness controls.
| File | Description |
|---|---|
agentHostSessionConfigPicker.test.ts |
Updates repository and running-session menu expectations. |
agentHostSessionConfigPicker.ts |
Repositions Agent Host controls and repository actions. |
sessionsChatAccessibilityHelp.test.ts |
Tests conditional picker help. |
newSessionComposerLayout.test.ts |
Tests layout enablement and control relocation. |
newChatWidget.test.ts |
Updates the workspace-picker harness. |
newChatPickerKeybinding.test.ts |
Tests chords and enablement contexts. |
constants.ts |
Defines the experimental setting key. |
webWorkspacePicker.ts |
Forwards keybinding and context-menu services. |
sessionWorkspacePicker.ts |
Adds keybinding-aware workspace triggers. |
sessionTypePicker.ts |
Adds keybinding-aware harness triggers. |
sessionsChatAccessibilityHelp.ts |
Documents picker commands. |
newChatWidget.ts |
Applies layout changes and exposes picker focus methods. |
newChatPickerKeybinding.ts |
Implements commands’ presentation and context menus. |
newChatInput.ts |
Relocates controls and updates responsive layout. |
mobileSessionTypePicker.ts |
Forwards new picker dependencies. |
chatWidget.css |
Styles the experimental footer. |
chatInput.css |
Aligns composer toolbar controls. |
chatView.ts |
Applies active-session layout state and focus routing. |
chat.contribution.ts |
Registers commands, keybindings, and setting. |
sessionCommands.ts |
Defines picker command IDs. |
sessionView.ts |
Forwards picker focus requests. |
parts/chatView.ts |
Adds default picker-focus hooks. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Keep the resolving repository checkbox pointer-focus behavior and update the workspace-row structure assertion for the repository control host.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
8e5ec3d to
549a769
Compare
Preserve legacy repository control ordering outside the full experiment, refresh menu contributions when either setting changes, and improve behavioral and accessibility coverage for picker keybindings.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep existing control placement inside new and running session chat inputs while retaining the experimental new-session workspace footer.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Roll back the recent full-width transparent footer and restore the original new-session control hierarchy while preserving the picker keybindings and repository controls. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the footer fill and align its controls with the chat input edges while retaining the restored input control hierarchy. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply the experimental composer hierarchy to running sessions and restore context usage to the input's top-right corner while keeping the legacy layout when the experiment is disabled. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
📬 CODENOTIFYThe following users are being notified based on files changed in this PR: Kyle Cutler (@kycutler)Matched files:
Joaquín Ruales (@jruales)Matched files:
Benjamin Christopher Simmonds (@benibenj)Matched files:
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e8da91a2-46e1-4b3b-bb45-520dade3cb8d
There was a problem hiding this comment.
i can't pull this branch quickly because it's from a fork - can we ensure a couple of things and test:
- no change when the exp is off
- no change in editor window chat panel and aux window chats
- long chat requests don't overlap with the context widget
- the branch codicon is too big and the gaps between icons for folder + vscode and the branch + branchname are not aligned
- same with the spacing here for model picker vs. harness picker - just a few pixels too much for the harness picker
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e8da91a2-46e1-4b3b-bb45-520dade3cb8d
|
Addressed the four concerns from the review in 4c60ad8:
Validation: ESLint, |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Justin Chen (justschen)
left a comment
There was a problem hiding this comment.
just one small nit! thanks
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e8da91a2-46e1-4b3b-bb45-520dade3cb8d
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
addressed
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>


Summary
Enablement
The experimental layouts are enabled only when both of these application settings are
true:sessions.chat.experimental.newSessionComposerLayout(experimental, defaults tofalse)sessions.chat.unifiedWorkspacePicker.enabledThe picker focus commands, shortcut-aware hovers, context-menu keybinding configuration, and accessibility help require the unified workspace picker but do not require the experimental layout setting.
Screenshots
New session composer
Fixes #337144
Fixes #337145
Fixes #337150