Skip to content

Conversation

@benibenj
Copy link
Contributor

@benibenj benibenj commented Oct 31, 2025

This is the only way I could come up with which would support both extensions contributing the same configuration and being able to write to them when either one or both are enabled.

https://github.com/microsoft/vscode-internalbacklog/issues/6073

@benibenj benibenj enabled auto-merge October 31, 2025 16:16
@benibenj benibenj self-assigned this Oct 31, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces a mechanism to bypass validation for certain configuration settings during extension unification. It creates an allowlist of settings (stored in IGNORE_VALIDATION_SETTINGS) that can skip validation checks that would normally reject unknown or duplicate settings.

  • Adds IGNORE_VALIDATION_SETTINGS set to bypass validation for specific settings from product configuration
  • Updates configuration editing and extension point validation to check this allowlist before rejecting settings
  • Temporarily allows settings defined in product.defaultChatAgent.completionsEnablementSetting to bypass validation

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
src/vs/workbench/services/configuration/common/configuration.ts Defines the IGNORE_VALIDATION_SETTINGS set populated from product configuration, with a temporary comment indicating removal after extension unification
src/vs/workbench/services/configuration/common/configurationEditing.ts Adds validation bypass check for settings in the ignore list when validating configuration keys
src/vs/workbench/api/common/configurationExtensionPoint.ts Skips validation warnings and duplicate property checks for settings in the ignore list during extension point registration

@benibenj benibenj closed this Oct 31, 2025
auto-merge was automatically disabled October 31, 2025 16:48

Pull request was closed

@benibenj benibenj reopened this Oct 31, 2025
@benibenj benibenj enabled auto-merge (squash) October 31, 2025 16:57
@benibenj benibenj disabled auto-merge October 31, 2025 17:28
@benibenj
Copy link
Contributor Author

PR is not ready, but open to different ideas if someone has a better approach

@benibenj
Copy link
Contributor Author

benibenj commented Nov 2, 2025

I considered a different approach which would allow two extensions to contribute the same configuration in a proper manner, however, that adds a ton of complexity and adds risks of causing a regression. As this would only lead to a small improvement I prefer to keep this less nice but simpler approach

@benibenj benibenj enabled auto-merge (squash) November 2, 2025 22:37
@benibenj benibenj merged commit d5d90be into main Nov 2, 2025
43 checks passed
@benibenj benibenj deleted the benibenj/hollow-alligator branch November 2, 2025 22:44
* - the operation is to delete the key
*/
if (!operation.workspaceStandAloneConfigurationKey) {
if (!operation.workspaceStandAloneConfigurationKey && !IGNORE_VALIDATION_SETTINGS.has(operation.key)) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this one in #274797

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.

3 participants