Skip to content

Comments

simple terminal tools on surface level of chat#296870

Draft
justschen wants to merge 2 commits intomainfrom
justin/petilil
Draft

simple terminal tools on surface level of chat#296870
justschen wants to merge 2 commits intomainfrom
justin/petilil

Conversation

@justschen
Copy link
Collaborator

Screen.Recording.2026-02-22.at.11.52.38.AM.1.mov
Screenshot 2026-02-22 at 11 54 02 AM 548-Petilil

Copilot AI review requested due to automatic review settings February 22, 2026 22:15
Copy link
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

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 ChatTerminalToolProgressPart to 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.

Comment on lines +363 to 370
// 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);
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

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

_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.

Copilot uses AI. Check for mistakes.
Copy link
Contributor

Copilot AI commented Feb 23, 2026

@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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants