dot/ascii animations for terminals in chat#317416
Conversation
There was a problem hiding this comment.
Pull request overview
This PR improves the chat UI for terminal tool invocations by replacing the standard “running” icon with a lightweight dot-matrix spinner animation in the command decoration area, and adjusting related progress/spinner visuals to avoid redundant indicators.
Changes:
- Add a dot-matrix spinner animation for terminal command decorations while a tool invocation is running.
- Update terminal tool progress rendering to react to invocation state changes (so the decoration updates live).
- Hide the generic in-thinking “working” spinner when an in-progress terminal tool is present, and hide the progress-row icon for terminal tool progress rows.
Show a summary per file
| File | Description |
|---|---|
| src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.ts | Adds running-state detection and a dot-matrix spinner implementation for terminal command decorations; wires decoration updates to tool invocation state changes. |
| src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css | Styles the dot-matrix spinner and hides the progress-row leading icon for terminal tool rows. |
| src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.ts | Updates thinking UI to temporarily remove the bottom “working” spinner when a terminal tool invocation is actively running. |
Copilot's findings
- Files reviewed: 3/3 changed files
- Comments generated: 2
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
| class TerminalCommandDecoration extends Disposable { | ||
| // 2x3 dot matrix: stagger each row left->right while building bottom->top, | ||
| // then stagger each row left->right while removing bottom->top. | ||
| private static readonly _spinnerFrames = [ |
There was a problem hiding this comment.
yaur it let's us create our indices to be rendered in that order. we can manipulate it how we see fit as well if we want it to be faster, slower, or some other kind of animation.
There was a problem hiding this comment.
swapped to using pure CSS which is a little safer. using the animation matrix drives the animation solely from TS, but we can do the same from CSS which is a bit easier to understand
|
/cc @meganrogge |
Screen.Recording.2026-05-19.at.4.53.25.PM.mov
Screen.Recording.2026-05-19.at.4.55.04.PM.mov
cc @meganrogge @anthonykim1