fix(vscode): stop background-project session spinners from leaking - #14348
Merged
Merged
Conversation
Session status events were filtered against the active project, so an idle event from a session that finished in another project was dropped and its spinner kept running. Accept terminal events for tracked sessions using their own directory, and reconcile status across every retained session directory after reconnecting.
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (5 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
marius-kilocode
enabled auto-merge
September 21, 2026 10:10
WebReflection
approved these changes
Sep 21, 2026
This was referenced Sep 22, 2026
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.
Issue
No linked issue. This is a regression observed directly in multi-project Agent Manager usage.
Context
When several projects are open in Agent Manager, a session running in a project that is not currently selected could keep showing a running spinner after it had already finished. The status only corrected itself later if something else refreshed it.
Implementation
Session status is directory scoped, but the provider was filtering status events against the currently active project directory. Terminal events (
idle,offline,deleted) from a session whose project was no longer active were rejected, so the last known status stayedbusy.The change routes status by the session's own directory instead of the active project:
owned()now resolves a session directory from the registered project route, a released-child owner, or the tracked session directory, and accepts a terminal status that matches that directory.Screenshots / Video
N/A. This is a behavior fix with no visual styling change. Evidence is the Agent Manager self-test described below.
How to Test
Manual/local verification
bun run typecheckinpackages/kilo-vscode: passed.Reviewer test steps
Blocked checks and substitute verification
bun run test:unit) timed out in this environment, both before and after the change, with no assertion failures. Substitute verification was the focused provider, status, and project suites plus the isolated VS Code Agent Manager flow above.Checklist