chat: polish queue/steering menu button#293237
Merged
connor4312 merged 3 commits intomainfrom Feb 6, 2026
Merged
Conversation
- Dropdown action that uses custom dropdowns to queue, steer, or send immediately. - Fix not being able to message with a pending tool call - Config controls the default button action
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces a polished queue/steering menu button for chat that replaces the simple split-button with a custom dropdown widget featuring hover descriptions. The implementation also fixes an issue preventing users from sending messages when there's a pending tool confirmation.
Changes:
- Adds a new configuration setting to control the default action (queue vs. steer) for the queue button
- Implements a custom split-button action view item that uses the action widget dropdown for richer UI with hover descriptions
- Updates context key conditions to allow messaging during pending tool calls, not just during request progress
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/vs/workbench/contrib/chat/common/constants.ts | Adds new configuration constant for queue button default action |
| src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.ts | New custom split-button component with primary action button and dropdown showing queue/steer/send options with hover descriptions |
| src/vs/workbench/contrib/chat/browser/chat.contribution.ts | Registers the custom action view item renderer and adds configuration schema for default action setting |
| src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.ts | Updates when clauses to include pending tool calls, registers custom view item, and adds menu items for the dropdown |
| src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.ts | Updates when clauses to properly hide/show submit button when tool confirmation is pending |
DonJayamanne
previously approved these changes
Feb 6, 2026
roblourens
approved these changes
Feb 6, 2026
daviddossett
pushed a commit
to daviddossett/vscode
that referenced
this pull request
Feb 7, 2026
* chat: polish queue/steering menu button - Dropdown action that uses custom dropdowns to queue, steer, or send immediately. - Fix not being able to message with a pending tool call - Config controls the default button action * fix * fix compile
sbatten
pushed a commit
that referenced
this pull request
Feb 11, 2026
* chat: polish queue/steering menu button - Dropdown action that uses custom dropdowns to queue, steer, or send immediately. - Fix not being able to message with a pending tool call - Config controls the default button action * fix * fix compile
roblourens
pushed a commit
that referenced
this pull request
Feb 11, 2026
* chat: initial rough draft of request queuing (#292619) * chat: initial wip on request queuing * make it work reasonably * chat: polishes for steering/queued messages Steering messages are not quite wired up in the extension but I'm happy with the UX. Quick runthrough of various states: https://memes.peet.io/img/26-02-81ac36ef-1319-46b2-9093-3c05628291dc.mp4 Incidentally fixes #278614 since I ran into that same bug here. Refs #260330 * chat: wire up yieldrequested for steering messages (#293026) Also turns it on by default since queue/steer generally works * chat: polish queue/steering menu button (#293237) * chat: polish queue/steering menu button - Dropdown action that uses custom dropdowns to queue, steer, or send immediately. - Fix not being able to message with a pending tool call - Config controls the default button action * fix * fix compile * chat: add drag-and-drop reordering for pending messages (#293512) Implements drag-and-drop functionality to reorder steering and queued pending messages within their respective groups. When more than one message of the same kind is pending, a gripper handle appears on hover that enables dragging to reorder. - Adds ChatPendingDragController to manage drag state, insertion indicators, and reorder logic via event delegation on the list container, keeping logic cleanly isolated from the renderer - Attaches drag handles to pending request rows via the renderer with one-way binding; reorder operations call chatService.setPendingRequests which automatically triggers the full refresh chain - Prevents cross-group reordering: steering messages stay within steering, queued messages stay within queued - Adds CSS for drag handle visibility on hover, dragging state opacity, and insertion indicator positioning - All changes compile cleanly with no layering violations Fixes #293473 (Commit message generated by Copilot) * chat: cleanup action states around pending requests * chat: fix editing a past request with ongoing requests makes it steer/pend * chat: fix attachments not showing in queued messages --------- Co-authored-by: Connor Peet <copeet@microsoft.com> Co-authored-by: Connor Peet <connor@peet.io>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
immediately.