Skip to content

Fix environment extension activation scope mismatch - #26069

Open
atomiechen wants to merge 1 commit into
microsoft:mainfrom
atomiechen:fix-env-extension-setting-scope-conflict
Open

Fix environment extension activation scope mismatch#26069
atomiechen wants to merge 1 commit into
microsoft:mainfrom
atomiechen:fix-env-extension-setting-scope-conflict

Conversation

@atomiechen

@atomiechen atomiechen commented Jul 28, 2026

Copy link
Copy Markdown

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

  • 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Python activation fails when environment extension settings conflict across scopes

1 participant