useEnvExtension() used the effective value of python.useEnvironmentsExtension, while the Python Environments extension declines activation if any user, workspace, or workspace-folder scope explicitly sets it to false.
With a user-level false and workspace-level true, the Python extension therefore tried to consume an API that the Python Environments extension did not export and failed on undefined.onDidChangeEnvironment.
This change aligns the activation checks; it does not change configuration-scope precedence.
Change
Require both the effective opt-in and shouldEnvExtHandleActivation() before using the Python Environments API.
Add a regression test for conflicting user/workspace settings.
Validation
TypeScript compile and targeted ESLint pass.
Focused activation-check suite: 7 passing.
Fresh stable baseline reproduces the exception.
Patched Python VSIX with the same settings activates and uses the legacy locator.
Stable extensions with the user-level false removed start Python Environments and discover the nested .venv.
AI disclosure: Prepared with assistance from OpenAI Codex.
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
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.
Fixes #26068.
Problem
useEnvExtension() used the effective value of python.useEnvironmentsExtension, while the Python Environments extension declines activation if any user, workspace, or workspace-folder scope explicitly sets it to false.
With a user-level false and workspace-level true, the Python extension therefore tried to consume an API that the Python Environments extension did not export and failed on undefined.onDidChangeEnvironment.
This change aligns the activation checks; it does not change configuration-scope precedence.
Change
Validation
AI disclosure: Prepared with assistance from OpenAI Codex.