mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-15 10:15:04 +01:00
Fix repository retention leaks in git and github extensions ProgressManager subscribed to workspace.onDidChangeConfiguration and repository.onDidChangeOperations in its constructor but discarded both subscriptions, so the global configuration emitter pinned every Repository ever created. GitHubBranchProtectionProviderManager registered a branch protection provider per opened repository into a single DisposableStore that was only disposed when the feature was turned off. There was no onDidCloseRepository handling, and the providers themselves were never disposed. Track them per repository root instead and dispose on close. Also make DisposableStore dispose anything added after it has been disposed, so the async registration in GitHubBranchProtectionProvider's constructor cannot outlive the provider. Refs #327438 (Written by Copilot) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 041724a6-5bc9-4e5f-98b2-a910995f083c