simple terminal tools on surface level of chat#296870
simple terminal tools on surface level of chat#296870
Conversation
There was a problem hiding this comment.
Pull request overview
Adds an experimental setting to render terminal tool invocations in a simplified collapsible UI outside of “thinking”, enabling a more compact surface-level presentation in chat.
Changes:
- Introduces a new configuration key
chat.tools.terminal.simpleCollapsible(ChatConfiguration.SimpleTerminalCollapsible). - Registers the new setting in the chat configuration contribution.
- Updates
ChatTerminalToolProgressPartto wrap terminal tool calls in the collapsible wrapper when the new setting is enabled.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/vs/workbench/contrib/chat/common/constants.ts | Adds the ChatConfiguration.SimpleTerminalCollapsible enum value. |
| src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.ts | Uses the new setting to decide whether terminal tool invocations render inside a collapsible wrapper. |
| src/vs/workbench/contrib/chat/browser/chat.contribution.ts | Registers the new experimental boolean setting and its description. |
| // wrap terminal when thinking setting enabled or simple collapsible setting enabled | ||
| const terminalToolsInThinking = this._configurationService.getValue<boolean>(ChatConfiguration.TerminalToolsInThinking); | ||
| const isSimpleTerminal = this._configurationService.getValue<boolean>(ChatConfiguration.SimpleTerminalCollapsible); | ||
| const requiresConfirmation = toolInvocation.kind === 'toolInvocation' && IChatToolInvocation.getConfirmationMessages(toolInvocation); | ||
|
|
||
| if (terminalToolsInThinking && !requiresConfirmation) { | ||
| if ((terminalToolsInThinking && !requiresConfirmation) || isSimpleTerminal) { | ||
| this._isInThinkingContainer = true; | ||
| this.domNode = this._createCollapsibleWrapper(progressPart.domNode, displayCommand, toolInvocation, context); |
There was a problem hiding this comment.
_isInThinkingContainer is now being set for the new SimpleTerminalCollapsible mode as well, but this flag also controls other behavior (e.g. _ensureShowOutputAction early-return and auto-expand/collapse logic). This conflates “pinned into thinking UI” with “wrapped in a collapsible container” and makes it hard to reason about (and may unintentionally change which controls are available). Consider introducing a separate flag for “use collapsible wrapper / simplified terminal UI” and only treat the part as “in thinking container” when it is actually rendered there.
|
@justschen I've opened a new pull request, #296911, to work on those changes. Once the pull request is ready, I'll request review from you. |
…able (#296911) * Initial plan * Set SimpleTerminalCollapsible default true for insiders, false for stable Co-authored-by: justschen <54879025+justschen@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: justschen <54879025+justschen@users.noreply.github.com>
Screen.Recording.2026-02-22.at.11.52.38.AM.1.mov