Add prompt markers to chat transcript scrollbar#326137
Open
matthewcorven wants to merge 3 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces an experimental “prompt markers” overlay for the Chat View transcript scrollbar to make long conversations easier to scan and navigate. The work adds the marker controller/UI styling, integrates enablement via configuration, and updates prompt-navigation helpers plus targeted tests/fixtures.
Changes:
- Add a scrollbar overlay controller that renders per-prompt markers (with hover preview + click-to-reveal/focus behavior) and integrates it into
ChatListWidget/ChatWidget. - Introduce experimental settings for enablement, marker downsampling cap, and click behavior; update accessibility help text accordingly.
- Add targeted unit tests and component fixtures for the new marker behavior and visuals.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/vs/workbench/test/browser/componentFixtures/chat/chatWidget.fixture.ts | Adds chat widget fixtures to showcase prompt markers and capped marker behavior. |
| src/vs/workbench/test/browser/componentFixtures/chat/chatScrollbarPromptMarkers.fixture.ts | New screenshot fixtures for the marker overlay (LTR/RTL + hovered states). |
| src/vs/workbench/contrib/chat/test/browser/widget/chatScrollbarPromptMarkerController.test.ts | Comprehensive unit coverage for marker controller layout/interaction/lifecycle. |
| src/vs/workbench/contrib/chat/test/browser/actions/chatPromptNavigationActions.test.ts | Tests for prompt-marker descriptor generation, dedupe, downsampling, and click behavior helper. |
| src/vs/workbench/contrib/chat/common/model/chatViewModel.ts | Adds editedFileEvents to IChatRequestViewModel and ChatRequestViewModel. |
| src/vs/workbench/contrib/chat/common/constants.ts | Adds configuration keys and click-behavior enum/constants for prompt markers. |
| src/vs/workbench/contrib/chat/browser/widget/media/chat.css | Adds styling for marker overlay + hover preview, including HC variants. |
| src/vs/workbench/contrib/chat/browser/widget/chatWidget.ts | Wires enablement via configuration changes and passes initial enablement into the list widget. |
| src/vs/workbench/contrib/chat/browser/widget/chatScrollbarPromptMarkerController.ts | New controller implementing the marker overlay (layout, hover preview, pointer/click handling). |
| src/vs/workbench/contrib/chat/browser/widget/chatListWidget.ts | Hosts the controller, refreshes on relevant list events, and exposes host methods used by the controller. |
| src/vs/workbench/contrib/chat/browser/chat.shared.contribution.ts | Registers the three experimental settings in the configuration registry. |
| src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.ts | Refactors prompt navigation helpers and adds marker descriptor generation/downsampling utilities. |
| src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.ts | Documents the marker feature in chat accessibility help (mouse-only markers guidance). |
| build/lib/stylelint/vscode-known-variables.json | Adds the CSS custom properties used by the new marker styling to the allowlist. |
14b670e to
be8eae9
Compare
Contributor
📬 CODENOTIFYThe following users are being notified based on files changed in this PR: @benibenjMatched files:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #326087
This PR adds experimental user prompt markers to the Chat View transcript scrollbar to make long chat sessions easier to scan and navigate.
What changed
Settings
This PR introduces three experimental chat settings:
chat.scrollbarPromptMarkers.enabledfalsechat.scrollbarPromptMarkers.maximumMarkers302chat.scrollbarPromptMarkers.clickBehaviorrevealAndFocusrevealAndFocus,revealHow to test
chat.scrollbarPromptMarkers.enabledchat.scrollbarPromptMarkers.clickBehaviorchanges click behavior as expectedchat.scrollbarPromptMarkers.maximumMarkersValidation
npm run transpile-clientsrc/vs/workbench/contrib/chat/test/browser/actions/chatPromptNavigationActions.test.tssrc/vs/workbench/contrib/chat/test/browser/widget/chatScrollbarPromptMarkerController.test.tsNotes
chat.scrollbarPromptMarkers.maximumMarkers