Skip to content

Improve tips styling and behavior#294702

Merged
meganrogge merged 8 commits intomainfrom
merogge/tip-tweak-5
Feb 12, 2026
Merged

Improve tips styling and behavior#294702
meganrogge merged 8 commits intomainfrom
merogge/tip-tweak-5

Conversation

@meganrogge
Copy link
Copy Markdown
Collaborator

@meganrogge meganrogge commented Feb 11, 2026

  • Improved styling per UX feedback
  • Dismissed/disabled tip IDs and last-shown tip ID storage moved from workspace scope to profile scope so state follows the user across workspaces
  • Lightbulb icon now visible on the welcome/getting-started tip (was hidden via display:none)
  • In-session tip border changed from focusBorder to editorWidget-border to match the welcome view style
  • In-session tip auto-hides when the second request is sent in a session

fixes #294682

@meganrogge meganrogge added this to the February 2026 milestone Feb 11, 2026
@meganrogge meganrogge self-assigned this Feb 11, 2026
Copilot AI review requested due to automatic review settings February 11, 2026 21:59
@meganrogge meganrogge enabled auto-merge (squash) February 11, 2026 21:59
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 updates chat tips to better match UX feedback and to make tip state (dismissed/last-shown) follow the user profile across workspaces, while also adding confetti feedback for tip actions and adjusting when in-session tips are shown/hidden.

Changes:

  • Updated tip widget styling (border, icon visibility) to better match editor widget/welcome view styles.
  • Moved dismissed tip IDs + last-shown tip ID storage from workspace scope to profile scope.
  • Added confetti triggering for tip actions and auto-hiding behavior when a second request is sent in a session.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css Adjusts tip border styling and makes the lightbulb icon visible in the welcome/getting-started tip; adds positioning/overflow for effects.
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.ts Adds command execution listener to trigger confetti for tip actions, gated by setting + reduced-motion accessibility.
src/vs/workbench/contrib/chat/browser/chatTipService.ts Persists tip dismissal/rotation state per profile and introduces in-session auto-hide behavior on subsequent requests.
Comments suppressed due to low confidence (2)

src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.ts:126

  • _commandService.onDidExecuteCommand listener can remain active even after the tip is hidden/removed from the DOM (e.g. chatListRenderer only removes domNode on onDidHide but doesn’t dispose the ChatTipContentPart). This can trigger confetti (and retain listeners) after the tip is no longer visible. Consider clearing _commandListener and/or disposing the content part when it transitions to hidden (after firing onDidHide).
			this._commandListener.value = this._commandService.onDidExecuteCommand(e => {
				if (commandSet.has(e.commandId) && this._configurationService.getValue<boolean>('chat.confettiOnThumbsUp') && !this._accessibilityService.isMotionReduced()) {
					triggerConfetti(this.domNode);
				}
			});
		} else {
			this._commandListener.clear();
		}

src/vs/workbench/contrib/chat/browser/chatTipService.ts:597

  • New behavior: when a second request arrives, the existing tip is cleared and onDidDismissTip is fired. There are existing unit tests for ChatTipService; please add coverage asserting (1) onDidDismissTip fires when a different requestId arrives after a tip was shown and (2) dismissed/last-tip IDs are stored in StorageScope.PROFILE (not WORKSPACE), since that’s the core behavioral change for #294682/#294700.
		// A new request arrived while we already showed a tip, hide the old one
		if (this._hasShownRequestTip && this._tipRequestId && this._tipRequestId !== requestId) {
			this._shownTip = undefined;
			this._tipRequestId = undefined;
			this._onDidDismissTip.fire();
			return undefined;
		}

Comment thread src/vs/workbench/contrib/chat/browser/chatTipService.ts
…chatTipContentPart.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 11, 2026

@meganrogge I've opened a new pull request, #294705, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 3 commits February 11, 2026 16:59
…294705)

* Initial plan

* Update dismissTip documentation to reflect profile-scoped storage

Changed "in this workspace" to "in this profile" in the dismissTip() JSDoc comment to accurately reflect that dismissed tips are persisted with StorageScope.PROFILE, not StorageScope.WORKSPACE.

Co-authored-by: meganrogge <29464607+meganrogge@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: meganrogge <29464607+meganrogge@users.noreply.github.com>
@meganrogge meganrogge disabled auto-merge February 11, 2026 23:13
roblourens
roblourens previously approved these changes Feb 11, 2026
Comment thread src/vs/workbench/contrib/chat/browser/chatTipService.ts Outdated
@vs-code-engineering
Copy link
Copy Markdown
Contributor

📬 CODENOTIFY

The following users are being notified based on files changed in this PR:

@rzhao271

Matched files:

  • src/vs/workbench/contrib/preferences/browser/settingsLayout.ts

@meganrogge meganrogge enabled auto-merge (squash) February 11, 2026 23:43
@meganrogge meganrogge merged commit 438d64a into main Feb 12, 2026
18 checks passed
@meganrogge meganrogge deleted the merogge/tip-tweak-5 branch February 12, 2026 00:00
@vs-code-engineering vs-code-engineering bot locked and limited conversation to collaborators Mar 30, 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.

Tip disabled state should be per profile

4 participants