Skip to content

Update status bar item with hovers#292136

Merged
dmitrivMS merged 10 commits intomainfrom
dev/dmitriv/update-status-bar
Feb 4, 2026
Merged

Update status bar item with hovers#292136
dmitrivMS merged 10 commits intomainfrom
dev/dmitriv/update-status-bar

Conversation

@dmitrivMS
Copy link
Contributor

@dmitrivMS dmitrivMS commented Feb 1, 2026

Added update status bar entry which display current update status and provides the user with quick action to download/install/restart.

Added custom hovers for various state showing progress and update information.

Modified update service to expose update info for Downloading and Overwriting states.

Modified existing 'Show Release Notes' command to take a version.

Fixes #277330

image

Copilot AI review requested due to automatic review settings February 1, 2026 11:00
@dmitrivMS dmitrivMS self-assigned this Feb 1, 2026
@dmitrivMS dmitrivMS requested a review from joaomoreno February 1, 2026 11:00
@dmitrivMS dmitrivMS enabled auto-merge (squash) February 1, 2026 11:00
@vs-code-engineering
Copy link

📬 CODENOTIFY

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

@bpasero

Matched files:

  • src/vs/workbench/browser/media/code-icon.svg

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

This PR adds a new status bar entry that displays the current update status with detailed hover tooltips showing download progress, estimated time remaining, and quick actions for downloading/installing/restarting VS Code. The implementation adds progress tracking to the Windows update service, modifies the update state types to include download progress information, and extends the "Show Release Notes" command to accept an optional version parameter.

Changes:

  • Added new UpdateStatusBarEntryContribution that displays update status in the status bar with custom hover tooltips
  • Modified Downloading and Overwriting state types to include update information and progress tracking (downloadedBytes, totalBytes, startTime)
  • Enhanced Windows update service to track and report download progress using stream transformation
  • Extended ShowReleaseNotesAction (renamed from ShowCurrentReleaseNotesAction) to accept an optional version parameter

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/vs/workbench/contrib/update/browser/updateStatusBarEntry.ts New status bar contribution with tooltip rendering, progress calculation utilities, and formatting helpers
src/vs/workbench/contrib/update/test/browser/updateStatusBarEntry.test.ts Unit tests for download progress calculations and formatting functions
src/vs/workbench/contrib/update/browser/update.contribution.ts Registers new status bar contribution and renames release notes action class while maintaining command ID
src/vs/workbench/contrib/update/browser/media/updateStatusBarEntry.css Styles for update status tooltips including progress bars and product info layout
src/vs/workbench/browser/media/code-icon.svg New VS Code icon for use in update tooltips
src/vs/platform/update/electron-main/updateService.win32.ts Implements download progress tracking using stream transformation and periodic state updates
src/vs/platform/update/electron-main/updateService.darwin.ts Updates Downloading state creation to pass update information
src/vs/platform/update/electron-main/abstractUpdateService.ts Updates Overwriting state creation to include update information
src/vs/platform/update/common/update.ts Extends Downloading and Overwriting types with additional fields for progress tracking
Comments suppressed due to low confidence (1)

src/vs/workbench/contrib/update/browser/updateStatusBarEntry.ts:150

  • Hardcoded test values are present in production code. Line 150 contains hardcoded version '1.108.0' and line 344 contains hardcoded product name 'Visual Studio Code - Insiders'. These should be using actual product service properties instead of hardcoded values. The comments show the correct code is commented out.
				this.appendProductInfo(container, false, '1.108.0' /*this.productService.version*/, tryParseDate(this.productService.date));

@joaomoreno
Copy link
Member

Tested on macOS.

First off... LOVE IT 😍

Then, here are the bugs!

The icon is broken:

image

There's no ellipsis when the status bar item doesn't fit:

image

That period at the end is rather strange. Should we just say Update is ready, click to restart?

image

If you click the status bar item while it is downloading and wait for the download to finish, the hover doesn't update its status:

image

Do we really need the inner Restart button, if the status bar already does the thing?

image

It sucks seeing all these settings show up. Can we somehow ensure only the Application/Update settings are shown? cc @rzhao271

image

@dmitrivMS
Copy link
Contributor Author

@joaomoreno

Thanks for testing!
Regarding issues identified:

  • Status bar ellipsis missing - this is not specific to this item, but a general status bar problem. The status bar element appears to have the CSS attribute, but since the width is not fixed, it does not work. I would rather not touch that behavior in this PR.
  • Regarding click messaging - updated strings to say "Click here to download." to make it clearer. Will also bring it up in UX review.
  • Icon: should be fixed, although I don't have a Mac, so would appreciate if you could verify
  • Hover updates while switching state: fixed
  • Inner buttons: will bring this up at UX review
  • Filter settings view to update only: fixed

@dmitrivMS dmitrivMS merged commit d158e4e into main Feb 4, 2026
22 checks passed
@dmitrivMS dmitrivMS deleted the dev/dmitriv/update-status-bar branch February 4, 2026 00:50
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.

"Downloading update..." should show actual progress to download the update

4 participants