Skip to content

Sticky header on by default and rename - #329691

Merged
Osvaldo Ortega (osortega) merged 5 commits into
mainfrom
osortega/agents/remove-sticky-header-enable-default
Aug 8, 2026
Merged

Sticky header on by default and rename#329691
Osvaldo Ortega (osortega) merged 5 commits into
mainfrom
osortega/agents/remove-sticky-header-enable-default

Conversation

@osortega

Copy link
Copy Markdown
Contributor

This pull request removes the unnecessary migration code and updates the configuration settings for the chat timeline feature. The changes include:

  • The setting chat.stickyScroll.enabled is now enabled by default for all users, with the default value set to true.
  • The setting sessions.chatTimeline.display is also enabled by default, with its default value set to dock.
  • Both settings remain user-configurable, allowing users to disable them if desired.
  • Removed all references to the old promptTimeline settings, as they were only applicable to Insiders.

All changes have been validated with ESLint and diff checks, ensuring no stale references remain.

Copilot AI balanced review requested due to automatic review settings August 7, 2026 20:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates chat timeline settings to stable defaults while removing obsolete Insiders-era names and migration logic.

Changes:

  • Renames timeline display and sticky-scroll settings.
  • Enables sticky scroll and dock display by default.
  • Updates consumers, documentation, and tests to use the new settings.
Show a summary per file
File Description
promptTimelineVisibility.test.ts Updates visibility tests for the renamed setting.
promptTimeline.ts Defines the new configuration keys.
promptTimelineWidgetContrib.ts Consumes and observes the new settings.
promptTimelineDockRail.ts Updates setting documentation.
promptTimeline.contribution.ts Registers new defaults and removes migration logic.

Review details

  • Files reviewed: 5/5 changed files
  • Comments generated: 0
  • Review effort level: Balanced

`dock` was not part of VS Code's vocabulary — it usually means panel docking
— and it collided with the ruler rail's own use of "dock" for its evenly
spaced pill layout. VS Code already pairs `gutter` with `overviewRuler` for
exactly this split (see `scm.diffDecorations` and the terminal's shell
integration decorations), and this rail's own docs already described it as
living in the transcript's left gutter.

Rename the `sessions.chatTimeline.display` enum value, the rail class and its
files, and the CSS classes and custom properties to match. The ruler rail's
remaining "dock" wording describes its macOS-dock-style fisheye, not a rail
style, so it stays.

Also drop the `experimental` tag from both timeline settings now that they
are on by default: the badge told users the feature may be unstable and
subject to removal, which no longer holds.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review details

Suppressed comments (1)

src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimeline.contribution.ts:38

  • The PR description says sessions.chatTimeline.display defaults to dock, but the schema no longer accepts dock and defaults to gutter. Please either retain the documented dock value throughout or update the PR description/requirements to explicitly use gutter so the rollout behavior is unambiguous.
			default: 'gutter',
  • Files reviewed: 9/9 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Sticky scroll is ready to ship on by default everywhere, but the gutter rail
is still being tried out, so gate its default back on quality and restore the
`experimental` tag it warrants. The setting stays available on stable for
anyone who wants to opt in.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@osortega
Osvaldo Ortega (osortega) marked this pull request as ready for review August 7, 2026 23:52
@osortega
Osvaldo Ortega (osortega) enabled auto-merge (squash) August 7, 2026 23:52
@osortega Osvaldo Ortega (osortega) changed the title Remove sticky header setting and enable by default for all users Sticky header on by default Aug 7, 2026
@osortega Osvaldo Ortega (osortega) changed the title Sticky header on by default Sticky header on by default and rename Aug 7, 2026
The header's label roll asked the OS directly via a `prefers-reduced-motion`
media query, so `workbench.reduceMotion: "on"` did not stop it while the OS
still allowed motion. The band's own CSS already follows the workbench-managed
`.monaco-reduce-motion` class for exactly this reason, so the two disagreed.

Use `IAccessibilityService.isMotionReduced()`, which resolves the effective
setting (`on`, or `auto` plus the OS preference), so the animation and the
stylesheet agree. This matters more now that the header is on by default for
everyone rather than just insiders.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@osortega
Osvaldo Ortega (osortega) merged commit 441790e into main Aug 8, 2026
29 checks passed
@osortega
Osvaldo Ortega (osortega) deleted the osortega/agents/remove-sticky-header-enable-default branch August 8, 2026 00:59
@vs-code-engineering vs-code-engineering Bot added this to the 1.133.0 milestone Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants