| search.contribution.ts:142 |
Removed the deprecated search.useRipgrep setting and its query-builder fallback behavior. |
Rob Lourens, 2017-03 |
@roblourens |
✅ |
| search.contribution.ts:234, ripgrepTextSearchEngine.ts:478 |
Removed the deprecated search.usePCRE2 setting and manual PCRE2 override plumbing in favor of automatic engine selection. |
Rob Lourens, 2018-10 |
@roblourens |
✅ |
| chatListRenderer.ts:2195, chatWidget.ts:2243 |
Removed the hidden chat.experimental.renderMarkdownImmediately development path. |
Rob Lourens, 2025-06 |
@roblourens |
✅ |
| search.contribution.ts:148 |
Removed the deprecated search.maintainFileSearchCache setting, which was obsolete after the search cache moved into the long-lived extension host. |
Rob Lourens, 2019-02 |
@roblourens |
✅ |
| search.contribution.ts:214 |
Removed the deprecated search.location setting, superseded by dragging the Search view to a new location. |
SteVen Batten, 2020-02 |
@roblourens |
✅ |
| editorOptions.ts:5229 |
Removed the deprecated editor.suggest.maxVisibleSuggestions setting after the suggest widget became resizable. |
Alex Dima, 2019-09 |
@roblourens |
✅ |
| configuration.ts:228 |
Removed the expired Insiders-only testing.automaticallyOpenResults migration after its 1.97 deadline. |
Connor Peet, 2024-11 |
@roblourens |
✅ |
| mainThreadEditorTabs.ts:534 |
Removed the old commented-out _eventToString editor-tabs debugging helper. |
Logan Ramos, 2021-09 |
@roblourens |
✅ |
| build/win32/code.iss:1746 |
Remove in 1.111; current is 1.130 |
Deepak Mohan, 2026-01-30 |
@deepak1556 |
✅ |
| build/azure-pipelines/darwin/product-build-darwin-universal.yml:116, product-build-darwin-compile.yml:254 |
Remove once main is on 1.112 |
Deepak Mohan, 2026-02-03 |
@deepak1556 |
✅ |
| scripts/test-remote-integration.bat:6, test-web-integration.bat:6 |
Remove above Node 24.16; hooks run Node 24.18 |
Deepak Mohan, 2026-06-29 |
@deepak1556 |
✅ |
| build/npm/postinstall.ts:340 |
Remove at Copilot SDK >=0.1.32; dependency is 1.0.7-preview |
Tyler Leonhardt, 2026-03-23 |
@TylerLeonhardt |
|
| extensions/copilot/src/platform/promptFiles/vscode-node/promptsServiceImpl.ts:90 |
Temporary workaround for a bug fixed in 1.114 |
Martin Aeschlimann, 2026-04-15 |
@aeschli |
|
| abstractLanguageModelChatProvider.ts:47, azureProvider.ts:99, customOAIProvider.ts:191 |
Remove after six months; six months elapsed |
Sandeep Somavarapu, 2026-01-15 |
@sandy081 |
|
| terminalServiceImpl.ts:32 |
Safe to remove after a few months; linked issue is closed |
Don Jayamanne, 2025-11-06 |
@DonJayamanne |
|
| extensions/microsoft-authentication/src/node/authProvider.ts:26 |
Remove after one or two releases |
Copilot-authored PR #276787, 2025-11-11 |
* @TylerLeonhardt |
|
| chatHistoryBuilder.ts:120, chatHistoryBuilder.ts:132 |
Added in 0.38.x; remove after a few releases; extension is 0.58 |
Tyler Leonhardt, 2026-02-06 |
@TylerLeonhardt |
|
| extensions/html-language-features/server/src/htmlServer.ts:548 |
Remove when vscode-languageserver-node issue #700 is fixed; closed 2025-10 |
Martin Aeschlimann, 2021-07-08 |
@aeschli |
|
| src/vs/platform/hover/browser/hoverService.ts:289 |
Remove when VS Code issue #189076 is fixed; closed 2024-05 |
Megan Rogge, 2023-07-28 |
@meganrogge |
|
| src/vs/workbench/api/common/extHostNotebook.ts:462 |
Temporary fix for VS Code issue #205044; closed 2024-12 |
Andrea Mah, 2024-02-12 |
* @roblourens |
✅ |
| nativeEditContext.ts:381, view.ts:528 |
Workarounds for VS Code issue #229825; closed 2024-10 |
Aiday Marlen Kyzy, 2024-10 |
@aiday-mar |
|
| src/vs/platform/windows/electron-main/windowImpl.ts:210 |
Workaround for VS Code issue #250626; closed 2025-06 |
Benjamin Pasero, 2025-11; TODO names Deepak |
@deepak1556 |
✅ |
| src/main.ts:282, encryption.contribution.ts:28 |
Gnome password-store migration: remove after three months |
Tyler Leonhardt, 2024-02 |
@TylerLeonhardt |
|
| mainThreadStorage.ts:68, mainThreadStorage.ts:77 |
Web extension-storage casing migration: remove after six months |
Sandeep Somavarapu, 2022-01 |
@sandy081 |
|
| src/vs/workbench/contrib/scm/common/scmService.ts:316 |
Change migration behavior from January 2024 onward |
Joao Moreno, 2023-09 |
* @lszomoru |
|
| extensionsProfileScannerService.ts:235, extensionsProfileScannerService.ts:247 |
Remove old-location migrations after a couple releases |
Sandeep Somavarapu, 2022-11/12 |
@sandy081 |
|
| src/vs/workbench/contrib/notebook/browser/notebookOptions.ts:181 |
Remove deprecated-setting migration after a few iterations |
Peng Lyu, 2023-02 |
* @roblourens |
✅ |
| authenticationExtensionsService.ts:203 |
Remove after a couple iterations |
Tyler Leonhardt, 2024-09 |
@TylerLeonhardt |
|
| authenticationMcpService.ts:258 |
Remove after a couple iterations |
Tyler Leonhardt, 2025-05 |
@TylerLeonhardt |
|
| mainThreadAuthentication.ts:553, mainThreadAuthentication.ts:556 |
Temporary telemetry; remove in a few iterations |
Tyler Leonhardt, 2024-11 |
@TylerLeonhardt |
|
| src/vs/platform/extensionManagement/node/extensionManagementService.ts:566 |
Remove initialization after a couple releases |
Sandeep Somavarapu, 2025-01 |
@sandy081 |
|
| src/vs/workbench/contrib/chat/common/languageModelStats.ts:32 |
Remove after a while |
Sandeep Somavarapu, 2025-01 |
@sandy081 |
|
| dynamicAuthenticationProviderStorageService.ts:124 |
Migration: remove after one or two iterations |
Tyler Leonhardt, 2025-06 |
@TylerLeonhardt |
|
| accountAccess.ts:125, publicClientCache.ts:54, publicClientCache.ts:277, publicClientCache.ts:302 |
Remove after one release/version or two |
Tyler Leonhardt, 2025-03 |
@TylerLeonhardt |
|
| src/vs/platform/terminal/node/terminalProcess.ts:164 |
The node-pty environment type now accepts string | undefined, matching IProcessEnvironment, so the compatibility cast appears removable. |
Daniel Imms, 2021-03 |
* @anthonykim1 |
|
| src/vs/workbench/api/common/extHost.api.impl.ts:347 |
The compatibility API was waiting for GHPR and Codespaces to migrate; current code search finds no hasSession consumer in either first-party extension repository. |
Tyler Leonhardt, 2021-10 |
@TylerLeonhardt |
|
| src/vs/code/browser/workbench/workbench.ts:331 |
The GitHub-authentication URL-callback special case points to microsoft/vscode-dev#62, which closed in 2021. |
Benjamin Pasero, 2022-01; TODO names Joao Moreno |
* @aeschli |
|
| src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts:336 |
The compatibility check says to remove it when workbench.welcomePage.preferReducedMotion is deprecated, and that setting now has a deprecation message directing users to workbench.reduceMotion. |
Jackson Kearl, 2022-03 |
* @lramos15 |
|
| extHostTypes.ts:2929, extHostTypes.ts:2941, extHostTypes.ts:2953 |
The test-coverage API is finalized with executed; these executionCount aliases only preserve the old proposed shape. |
Connor Peet, 2024-02 |
@connor4312 |
|
| chatParticipantTelemetry.ts:321, chatParticipantTelemetry.ts:448 |
The temporary patch-response telemetry points to microsoft/vscode-copilot#16608, which closed in 2025-07. |
Bulk Copilot extension import; TODO names Connor Peet |
@connor4312 |
|
| extensions/copilot/src/platform/authentication/common/copilotToken.ts:278 |
The unconfigured telemetry-consent state is documented as pre-GA and removable post-GA. |
Bulk Copilot extension import, 2025-06 |
* @connor4312 |
|
| extensions/copilot/src/extension/prompts/node/base/common.tsx:9 |
The class is explicitly deprecated as a workaround for microsoft/vscode-prompt-tsx#90, whose fix was merged in 2024. |
Bulk Copilot extension import, 2025-06 |
* @connor4312 |
|
| src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.ts:45 |
The elevated keybinding weight was meant to override an extension-contributed binding, but the current Copilot extension no longer contributes that binding. |
Daniel Imms, 2024-03 |
* @meganrogge |
|
| src/vs/server/node/serverConnectionToken.ts:20 |
ServerConnectionTokenType.Optional has carried a “remove soon” comment since 2022, and every production token is still constructed as either None or Mandatory. |
Alex Dima, 2022-01 |
@alexdima |
|
| extensions/github-authentication/src/github.ts:281 |
The scopesSeen compatibility set has an eventual-removal comment, but current code only adds values and never reads them, so it has no effect. |
Tyler Leonhardt, 2021-12 |
@TylerLeonhardt |
|
| extensions/copilot/src/extension/tools/common/toolNames.ts:111 |
ContributedToolName.RunTests is deprecated in favor of the core run-tests tool and has no remaining references outside its declaration. |
Connor Peet, 2025-07 |
@connor4312 |
|
| src/vs/workbench/contrib/chat/common/model/chatSessionStore.ts:576 |
The pre-1.109 session guard has passed its stated transition period; moreover, inside ??= the value is necessarily nullish, so its Pending and NeedsInput checks cannot be true. |
Connor Peet, 2026-01 |
@connor4312 |
|
Stale Removal Comments
Last reviewed: 2026-07-18
This audit covers code that is explicitly temporary, transitional,
compatibility-only, deprecated, or intended for removal after a condition,
version, release, or period of time. It also includes nearby obsolete-code
signals such as unused legacy enum members and superseded experimental paths.
Ownership
*before an assignee means the original author or named owner is no longer anappropriate assignee, and the assignee was inferred from current ownership,
nearby history, or the responsible pull request.
Hello Copilotcommit have importblame rather than useful authorship history. Those entries are assigned to
the current human owner of the relevant code.
Conditions Appear Satisfied or Deadlines Expired
search.useRipgrepsetting and its query-builder fallback behavior.search.usePCRE2setting and manual PCRE2 override plumbing in favor of automatic engine selection.chat.experimental.renderMarkdownImmediatelydevelopment path.search.maintainFileSearchCachesetting, which was obsolete after the search cache moved into the long-lived extension host.search.locationsetting, superseded by dragging the Search view to a new location.editor.suggest.maxVisibleSuggestionssetting after the suggest widget became resizable.testing.automaticallyOpenResultsmigration after its 1.97 deadline._eventToStringeditor-tabs debugging helper.*@TylerLeonhardt*@roblourens*@lszomoru*@roblourensstring | undefined, matchingIProcessEnvironment, so the compatibility cast appears removable.*@anthonykim1hasSessionconsumer in either first-party extension repository.*@aeschliworkbench.welcomePage.preferReducedMotionis deprecated, and that setting now has a deprecation message directing users toworkbench.reduceMotion.*@lramos15executed; theseexecutionCountaliases only preserve the old proposed shape.unconfiguredtelemetry-consent state is documented as pre-GA and removable post-GA.*@connor4312*@connor4312*@meganroggeServerConnectionTokenType.Optionalhas carried a “remove soon” comment since 2022, and every production token is still constructed as eitherNoneorMandatory.scopesSeencompatibility set has an eventual-removal comment, but current code only adds values and never reads them, so it has no effect.ContributedToolName.RunTestsis deprecated in favor of the core run-tests tool and has no remaining references outside its declaration.??=the value is necessarily nullish, so itsPendingandNeedsInputchecks cannot be true.Could Be Removable, but Needs Owner Judgment
Menuobjects for ten seconds to avoid garbage-collection crashes; electron/electron#14213 closed only because the reported Electron version was unsupported, not because a fix was recorded.telemetry.enableTelemetrysetting still overridestelemetry.telemetryLevel; removal is technically straightforward but could re-enable telemetry for users carrying the old persisted opt-out.TimelineItem.detailshape totooltip; removal depends on old timeline providers no longer sendingdetail.*@lramos15data-vscode-theme-nameattribute to webview content, so removal depends on third-party webviews no longer reading it.*@deepak1556*@amunger~/.vscode-clidata directory into the current CLI data directory, so removal depends on whether skipped-version upgrades remain supported.*@meganroggevisiblevalue from persisted pane-composite state, so removal depends on the supported age of stored profiles.showNativeHoverandnativeHoverDelegateare explicitly a temporary context-view fix, but there is no linked issue establishing whether the underlying problem still reproduces.*@alexr00*@roblourenseditor.inlineSuggest.triggerCommandOnProviderChangebranch has a TODO to always use the selective provider-refresh path; removal depends on whether that experiment has concluded.fileNamefield is read only from old serialized chat paste entries, so removal depends on the retention policy for stored chat history.*@connor4312Future-Dated Cleanups Not Yet Stale
remove after August 2026.
remoteAgentHostSessionsProvider.ts:45, and
sessionsListModelService.ts:140:
remove after October 14, 2026.