SCM: "Open Changes" hangs while a commit message is being generated with Copilot
- 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
Assessment
This issue has not been assessed yet.