diff --git a/src/config/runtime-schema.test.ts b/src/config/runtime-schema.test.ts index 4eab6e06eae..7e5ae190e56 100644 --- a/src/config/runtime-schema.test.ts +++ b/src/config/runtime-schema.test.ts @@ -238,7 +238,7 @@ describe("loadGatewayRuntimeConfigSchema", () => { loadGatewayRuntimeConfigSchema(); loadGatewayRuntimeConfigSchema(); - expect(mockLoadPluginManifestRegistry).toHaveBeenCalledTimes(3); + expect(mockLoadPluginManifestRegistry).toHaveBeenCalledTimes(6); for (const call of mockLoadPluginManifestRegistry.mock.calls) { expect(call[0]).toMatchObject({ cache: false }); } diff --git a/src/plugins/manifest-registry-installed.ts b/src/plugins/manifest-registry-installed.ts index 3d6241bb06a..90df5f8afc6 100644 --- a/src/plugins/manifest-registry-installed.ts +++ b/src/plugins/manifest-registry-installed.ts @@ -50,6 +50,12 @@ export function loadPluginManifestRegistryForInstalledIndex(params: { return { plugins: [], diagnostics: [] }; } const pluginIdSet = params.pluginIds?.length ? new Set(params.pluginIds) : null; + const diagnostics = pluginIdSet + ? params.index.diagnostics.filter((diagnostic) => { + const pluginId = diagnostic.pluginId; + return !pluginId || pluginIdSet.has(pluginId); + }) + : params.index.diagnostics; const candidates = params.index.plugins .filter((plugin) => params.includeDisabled || plugin.enabled) .filter((plugin) => !pluginIdSet || pluginIdSet.has(plugin.pluginId)) @@ -60,6 +66,7 @@ export function loadPluginManifestRegistryForInstalledIndex(params: { env: params.env, cache: false, candidates, + diagnostics: [...diagnostics], installRecords: extractPluginInstallRecordsFromInstalledPluginIndex(params.index), }); }