fix: restore MCP auto-approval behavior to approve all tools when enabled #9191
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.
This PR attempts to address Issue #9190. Feedback and guidance are welcome.
Problem
After the recent refactoring that moved auto-approval logic from ChatView to Task (#9157), the MCP auto-approval behavior changed. Previously, when
alwaysAllowMcpwas enabled, ALL MCP tools would be auto-approved. After the refactor, bothalwaysAllowMcpAND the individual toolalwaysAllowflag had to be true, which broke the expected behavior.Solution
Changed the logic from AND to OR condition:
alwaysAllowMcpis enabled → auto-approve all MCP toolsalwaysAllowflag → auto-approve that specific toolChanges
src/core/auto-approval/index.tsto use OR logic instead of ANDsrc/core/auto-approval/__tests__/index.spec.tsTesting
Fixes #9190
Important
Fixes MCP auto-approval logic to approve tools if either global or individual flags are set, with added tests.
checkAutoApproval()inindex.tsto use OR condition.alwaysAllowMcpis true or if the tool'salwaysAllowflag is true.index.spec.tsto cover scenarios for MCP tool and resource auto-approval.This description was created by
for 00102b6. You can customize this summary. It will automatically update as commits are pushed.