Fix stuck changes-since-review progress - #8897
Open
Christof Marti (chrmarti) wants to merge 2 commits into
Open
Conversation
Always end the changes-since-review progress when refreshing PR data fails, while preserving the original error for existing logging and handling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Fixes stuck Changes in Pull Request progress when refresh operations fail.
Changes:
- Adds failure-safe progress handling.
- Wraps refresh operations with progress cleanup.
- Adds regression coverage for rejected tasks.
Show a summary per file
| File | Summary |
|---|---|
src/view/reviewManager.ts |
Uses the progress helper during refresh handling. |
src/view/progress.ts |
Guarantees progress completion. |
src/test/view/progress.test.ts |
Tests cleanup and error propagation. |
Review details
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 3/3 changed files
- Comments generated: 0
- Review effort level: Lite
Alex Ross (alexr00)
marked this pull request as ready for review
August 27, 2026 11:09
Alex Ross (alexr00)
enabled auto-merge (squash)
August 27, 2026 11:09
Contributor
There was a problem hiding this comment.
Review details
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
src/test/view/progress.test.ts:25
- The test asserts progress completion via a
thencallback plus an extra microtask tick (await Promise.resolve()), which is more indirect and can be flaky if scheduling changes. You can make this deterministic by awaitinghelper.progressafter the rejection, which directly verifies that progress settled even whenrun()rethrows.
helper.progress.then(() => {
progressEnded = true;
});
await assert.rejects(task, candidate => candidate === error);
- Files reviewed: 3/3 changed files
- Comments generated: 0 new
- Review effort level: Lite
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.
Summary
Prevent the changes-since-review progress indicator from remaining active when refreshing pull request data fails.
Session Context
Key decisions from the development session:
ProgressHelper.run, which ends progress in afinallyblock so network and GitHub API failures cannot leave the Changes in Pull Request view loading indefinitely.rundoes not catch or replace task failures. The original error continues to propagate to the extension's existing logging and error handling.api.github.com.Changes
ProgressHelper.runto pair progress start/end around asynchronous work.Log Excerpt
Local workspace paths are shortened below.
Validation
npm test— 477 passingnpm run lintnpm run hygienegit diff --checkScreenshot