Skip to content

chat: polish queue/steering menu button#293237

Merged
connor4312 merged 3 commits intomainfrom
connor4312/better-steer-button
Feb 6, 2026
Merged

chat: polish queue/steering menu button#293237
connor4312 merged 3 commits intomainfrom
connor4312/better-steer-button

Conversation

@connor4312
Copy link
Copy Markdown
Member

  • 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

- 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
Copilot AI review requested due to automatic review settings February 5, 2026 23:34
@connor4312 connor4312 enabled auto-merge (squash) February 5, 2026 23:34
@connor4312 connor4312 self-assigned this Feb 5, 2026
@vs-code-engineering vs-code-engineering bot added this to the February 2026 milestone Feb 5, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.ts Outdated
DonJayamanne
DonJayamanne previously approved these changes Feb 6, 2026
@connor4312 connor4312 merged commit ccb9e57 into main Feb 6, 2026
22 checks passed
@connor4312 connor4312 deleted the connor4312/better-steer-button branch February 6, 2026 03:32
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>
@vs-code-engineering vs-code-engineering bot locked and limited conversation to collaborators Mar 23, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants