Honor managed plugin disablement for executor capabilities (#40640)

## Why

Selected executor plugin roots could still expose capabilities when managed
requirements disabled the `plugins` feature.

## What changed

- Suppress MCP servers, skills, apps, and connectors from selected executor
  plugins when `plugins` is disabled, while preserving the selected-root
  identity used to filter those capabilities.
- Apply the policy consistently to direct selected-root discovery and batched
  executor capability discovery.

## Testing

- Add contributor-level and app-server coverage that verifies disabled plugin
  capabilities are absent and their MCP servers never start.

GitOrigin-RevId: e30bd8a936c4b0e083908b89a65f4d02e01747de
This commit is contained in:
hefuc-oai authored and copyberry committed 2026-08-25 16:47:13 +00:00
1 parent e44bd9b64d
commit 5ce04789fb
6 files changed
+162 -1

No files matched your search

@@ -52,6 +52,9 @@ pub(crate) fn attribute_executor_plugins(
catalog: &mut SkillCatalog,
snapshot: &SelectedPluginSnapshot,
) {
catalog
.entries
.retain(|skill| !snapshot.disabled_plugin_roots.contains(&skill.authority.id));
for skill in &mut catalog.entries {
if let Some(plugin) = snapshot
.plugins