microsoft / microsoft/vscode

SCM: "Open Changes" hangs while a commit message is being generated with Copilot

Open
#332,444 0 comments 0 reactions 1 assignee Claimed by @lszomoru View on GitHub
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

Version: 1.134.0-insider (Universal)
Commit: 72f433c37ae15b2f1fb8e292a908964ad1673fbc
Date: 2026-08-13T04:55:17Z
Electron: 42.8.1
ElectronBuildId: 14906494
Chromium: 148.0.7778.280
Node.js: 24.18.1
V8: 14.8.178.38-electron.0
@github/copilot: 1.0.79
@github/copilot-sdk: 1.0.10-preview.0
OS: 72f433c37ae15b2f1fb8e292a908964ad1673fbc

## Summary

When a commit message is being generated with Copilot from the SCM input box, clicking **Open Changes** does not open the multi-file diff editor. It stays loading until the generation finishes (several seconds), so it looks blocked/frozen.

Notice that the generation of the message can take longer when setting a reasoning model as a BYOK [utility small model](https://code.visualstudio.com/blogs/2026/06/18/byok-vscode#_leveraging-utility-models).

## Steps to Reproduce

1. Stage some changes in a git repository.
2. Trigger commit message generation from the SCM input box (Copilot).
3. Immediately click **Open Changes**.
4. The multi-file diff editor does not open (spinner only) until generation completes.

## Expected Behavior

"Open Changes" opens immediately, showing the already-known resource group contents.

## Actual Behavior

The diff editor opens only after the commit message generation finishes.

## Analysis

While commit message generation is running, the Source Control view shows a progress badge. `ScmMultiDiffSourceResolver.resolveDiffSource()` ([src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.ts](https://github.com/microsoft/vscode/blob/d3b63787100c9c7d5d31207d720f41c4c2213304/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.ts#L65)) waits via `waitForState` until that badge is gone before resolving the diff editor contents. This was added to avoid opening an empty diff during the initial repository scan (#216788), but it also treats long-running progress like AI generation as "repository not ready", blocking Open Changes for its entire duration.

Possible fixes:
- Wait on an explicit readiness signal (e.g., initial scan completed) instead of absence of progress badges.
- Or at minimum, add a timeout fallback.

Written with GitHub Copilot + OX Alpha free (stealth model)

CC: @lszomoru

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.