When a chat request is in progress, the queue/steer picker dropdown in the chat execute toolbar shows incorrect keybinding labels.
For example, with the default config (chat.requestQueuing.defaultAction: steer):
- Steer with Message is labelled Alt+Enter in the dropdown
- But pressing Enter actually steers (Alt+Enter queues)
The labels are inverted relative to the actually-bound keys.
Root cause
ActionWidgetDropdown resolves keybindings via the global IKeybindingService context. The queue/steer keybindings have when clauses requiring inChatInput and requestInProgress, which are scoped context keys not visible globally. With no matching when clause, lookupPrimaryKeybinding falls back to items[items.length - 1] — the last-registered binding for each command — which happens to be the opposite of the one currently active.
Fix in #310961.
When a chat request is in progress, the queue/steer picker dropdown in the chat execute toolbar shows incorrect keybinding labels.
For example, with the default config (
chat.requestQueuing.defaultAction: steer):The labels are inverted relative to the actually-bound keys.
Root cause
ActionWidgetDropdownresolves keybindings via the globalIKeybindingServicecontext. The queue/steer keybindings havewhenclauses requiringinChatInputandrequestInProgress, which are scoped context keys not visible globally. With no matchingwhenclause,lookupPrimaryKeybindingfalls back toitems[items.length - 1]— the last-registered binding for each command — which happens to be the opposite of the one currently active.Fix in #310961.