Repository navigation
Fix extension uninstall state across local and remote servers - #343171
Tobias Hernstig (thernstig) wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
1 open issue
What changed in this PR
Fixes incorrect Uninstall/state behavior when the same Marketplace extension exists on multiple extension-management servers by scoping per-server state lookups, and adds regression coverage for local/remote/web combinations and action enablement behavior.
Changes:
- Scope extension state resolution to the owning server to prevent cross-server “installed” leakage.
- Add regression tests covering uninstall/reinstall flows across local/remote/web copies, including failure recovery and serverless gallery results.
- Expand actions/runtime-state tests to validate
Uninstall/Managebehavior (including “all profiles”) and correctly fire uninstall completion.
Review effort: Lite
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
2 open issues
1 resolved since last review
Review effort: Lite
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
3 open issues
2 resolved since last review
Review effort: Lite




Fixes #343155.
When the same Marketplace extension is installed on multiple servers, uninstalling one copy can leave its
Uninstallaction enabled because the state lookup finds the surviving copy on another server. The per-server lookup now ignores extension models owned by a different server. Models without a server still aggregate state across installations.The regression tests cover both removal directions for local/remote and web/remote copies, failed uninstall recovery, reinstalling, and serverless Marketplace results. Action tests cover
UninstallandManage, including extensions applied to all profiles. An existing runtime-state test now fires the completion event connected to its local service and supplies the missing removal stub, so it actually exercises successful uninstall.All eight new regression tests failed against the original code. With the fix, both complete test files pass: 356 tests passed. Targeted ESLint and editor diagnostics are also clean.
Validation used the repository's Electron test runner on Linux/WSL with test extension-management services. A manual local/remote UI scenario has not been run.