From 7c7561f5a33e45080f791cd22c1be32374bca531 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Tue, 28 Apr 2026 22:19:07 -0700 Subject: [PATCH] fix(plugins): scope capability provider snapshots --- .../capability-provider-runtime.test.ts | 16 +++++++++++++++- src/plugins/capability-provider-runtime.ts | 18 +++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/plugins/capability-provider-runtime.test.ts b/src/plugins/capability-provider-runtime.test.ts index 87b5b72f2d4..dca838250e5 100644 --- a/src/plugins/capability-provider-runtime.test.ts +++ b/src/plugins/capability-provider-runtime.test.ts @@ -101,6 +101,7 @@ function expectBundledCompatLoadPath(params: { }); expect(mocks.resolveRuntimePluginRegistry).toHaveBeenCalledWith({ config: params.enablementCompat, + onlyPluginIds: ["openai"], activate: false, }); } @@ -400,6 +401,7 @@ describe("resolvePluginCapabilityProviders", () => { allow: ["openai", "microsoft"], }), }), + onlyPluginIds: ["microsoft"], activate: false, }); }); @@ -573,6 +575,7 @@ describe("resolvePluginCapabilityProviders", () => { expectNoResolvedCapabilityProviders(providers); expect(mocks.resolveRuntimePluginRegistry).toHaveBeenCalledWith({ config: expect.anything(), + onlyPluginIds: [], activate: false, }); }); @@ -600,7 +603,16 @@ describe("resolvePluginCapabilityProviders", () => { nativeDocumentInputs: ["pdf"], }, } as never); - setBundledCapabilityFixture("mediaUnderstandingProviders"); + mocks.loadPluginManifestRegistry.mockReturnValue({ + plugins: [ + { + id: "google", + origin: "bundled", + contracts: { mediaUnderstandingProviders: ["google"] }, + }, + ] as never, + diagnostics: [], + }); mocks.withBundledPluginEnablementCompat.mockReturnValue(compatConfig); mocks.withBundledPluginVitestCompat.mockReturnValue(compatConfig); mocks.resolveRuntimePluginRegistry.mockImplementation((params?: unknown) => @@ -616,6 +628,7 @@ describe("resolvePluginCapabilityProviders", () => { }); expect(mocks.resolveRuntimePluginRegistry).toHaveBeenCalledWith({ config: compatConfig, + onlyPluginIds: ["google"], activate: false, }); }); @@ -681,6 +694,7 @@ describe("resolvePluginCapabilityProviders", () => { }); expect(mocks.resolveRuntimePluginRegistry).toHaveBeenCalledWith({ config: enablementCompat, + onlyPluginIds: ["google"], activate: false, }); }); diff --git a/src/plugins/capability-provider-runtime.ts b/src/plugins/capability-provider-runtime.ts index de4603b27af..67b412fcebb 100644 --- a/src/plugins/capability-provider-runtime.ts +++ b/src/plugins/capability-provider-runtime.ts @@ -226,7 +226,9 @@ export function resolvePluginCapabilityProvider entry.provider) as CapabilityProviderForKey[]; } } - const compatConfig = resolveCapabilityProviderConfig({ key: params.key, cfg: params.cfg }); + const pluginIds = resolveBundledCapabilityCompatPluginIds({ + key: params.key, + cfg: params.cfg, + }); + const compatConfig = resolveCapabilityProviderConfig({ + key: params.key, + cfg: params.cfg, + pluginIds, + }); const loadOptions = - compatConfig === undefined ? undefined : { config: compatConfig, activate: false }; + compatConfig === undefined + ? { onlyPluginIds: pluginIds, activate: false } + : { config: compatConfig, onlyPluginIds: pluginIds, activate: false }; const registry = resolveRuntimePluginRegistry(loadOptions); const loadedProviders = registry?.[params.key] ?? []; if (params.key !== "memoryEmbeddingProviders") {