Problem (one or two sentences)
Code-index status updates can stop reaching the UI when a workspace-folder change changes the selected indexing workspace without changing the active editor. Status routing remains subscribed to the previous workspace until an active-editor change triggers a refresh.
Context (who is affected and when)
Users working with multiple workspace folders can encounter stale indexing status after adding or removing a folder while keeping the same editor selected. This affects status delivery; it does not by itself establish that indexing stops.
Reproduction steps
This is a code-verified finding; the following manual scenario has not yet been executed in a real VS Code extension host.
- Use the source build based on main commit 778ad3e (package version 3.84.0), with code indexing configured and a multi-root workspace.
- Include a parent folder and a nested folder as separate workspace roots, plus another folder listed first so that removing the nested root does not change the first root.
- Keep a file from the nested root active, using the default active-editor workspace selection. Initialize indexing status routing for the nested root.
- Remove the nested root from the workspace while retaining its parent root and leaving the same file/editor active. The selected workspace now resolves to the parent root.
- Generate indexing progress for the parent root without switching editors. Observe whether its status is delivered to the UI.
- Switch active editors and compare status delivery after the subscription refresh.
A focused unit regression test should deterministically simulate the selected workspace changing, emit only the workspace-folder change event (no editor-change event), and assert immediate status publication and subscription switching.
Expected result
When a workspace-folder change changes the selected workspace, status routing immediately unsubscribes from the previous manager, subscribes to the newly selected manager, and publishes its current status without requiring an editor change.
Actual result
Initialization subscribes only to active-editor changes. After the selected workspace changes, the old progress callback rejects events because its manager no longer matches the currently resolved manager, while no subscription exists for the new manager. Status delivery remains stale until an editor change refreshes routing.
Variations tried (optional)
Static inspection of main commit 778ad3e and rebased PR #1778 commit 68383e7; no manual cross-platform reproduction performed.
The affected implementation is already in main via #1768 and is no longer part of the remaining diff in #1778. Rebasing #1778 did not fix this finding.
App Version
Source package version 3.84.0, main commit 778ad3e. This identifies the inspected source revision, not a confirmed affected Marketplace release.
API Provider (optional)
Not Applicable / Other
Model Used (optional)
N/A
Zoo Code Task Links (optional)
None.
Relevant logs or errors (optional)
No runtime logs collected. Original review finding: #1778 (comment)
Implementation references:
Planned fix and acceptance criteria:
- Subscribe to workspace-folder changes and refresh status routing when they occur.
- Dispose the new subscription alongside editor and progress subscriptions, preserving idempotent cleanup and error handling.
- Add focused unit coverage for switching managers without an editor change, immediate publication of the new status, rejecting stale events, and disposal of the new subscription.
- Verify that a folder change which leaves the selected manager unchanged does not duplicate progress subscriptions.
Related indexing work: #1594.
Problem (one or two sentences)
Code-index status updates can stop reaching the UI when a workspace-folder change changes the selected indexing workspace without changing the active editor. Status routing remains subscribed to the previous workspace until an active-editor change triggers a refresh.
Context (who is affected and when)
Users working with multiple workspace folders can encounter stale indexing status after adding or removing a folder while keeping the same editor selected. This affects status delivery; it does not by itself establish that indexing stops.
Reproduction steps
This is a code-verified finding; the following manual scenario has not yet been executed in a real VS Code extension host.
A focused unit regression test should deterministically simulate the selected workspace changing, emit only the workspace-folder change event (no editor-change event), and assert immediate status publication and subscription switching.
Expected result
When a workspace-folder change changes the selected workspace, status routing immediately unsubscribes from the previous manager, subscribes to the newly selected manager, and publishes its current status without requiring an editor change.
Actual result
Initialization subscribes only to active-editor changes. After the selected workspace changes, the old progress callback rejects events because its manager no longer matches the currently resolved manager, while no subscription exists for the new manager. Status delivery remains stale until an editor change refreshes routing.
Variations tried (optional)
Static inspection of main commit 778ad3e and rebased PR #1778 commit 68383e7; no manual cross-platform reproduction performed.
The affected implementation is already in main via #1768 and is no longer part of the remaining diff in #1778. Rebasing #1778 did not fix this finding.
App Version
Source package version 3.84.0, main commit 778ad3e. This identifies the inspected source revision, not a confirmed affected Marketplace release.
API Provider (optional)
Not Applicable / Other
Model Used (optional)
N/A
Zoo Code Task Links (optional)
None.
Relevant logs or errors (optional)
No runtime logs collected. Original review finding: #1778 (comment)
Implementation references:
Planned fix and acceptance criteria:
Related indexing work: #1594.