fix: preserve manifest fallback for derived provider indexes

This commit is contained in:
Shakker
2026-04-27 14:41:48 +01:00
parent 7f316b917b
commit 246fd9d3c0
2 changed files with 25 additions and 1 deletions

View File

@@ -210,6 +210,30 @@ describe("loadProviderCatalogModelsForList", () => {
expect(providerDiscoveryMocks.resolveOwningPluginIdsForProvider).not.toHaveBeenCalled();
});
it("falls back to manifest ownership when the plugin index is derived", async () => {
providerDiscoveryMocks.loadPluginRegistrySnapshotWithMetadata.mockReturnValueOnce({
source: "derived",
snapshot: {
plugins: [],
},
diagnostics: [],
});
await expect(
resolveProviderCatalogPluginIdsForFilter({
cfg: baseParams.cfg,
env: baseParams.env,
providerFilter: "moonshot",
}),
).resolves.toEqual(["moonshot"]);
expect(providerDiscoveryMocks.resolveOwningPluginIdsForProvider).toHaveBeenCalledWith({
provider: "moonshot",
config: baseParams.cfg,
env: baseParams.env,
});
});
it("does not fall back to legacy manifest ownership for disabled persisted plugin owners", async () => {
providerDiscoveryMocks.resolveProviderOwners
.mockReturnValueOnce([])

View File

@@ -76,7 +76,7 @@ function resolveInstalledIndexPluginIdsForProviderFilter(params: {
cache: true,
});
if (snapshot.source !== "persisted" && snapshot.source !== "provided") {
return [];
return undefined;
}
const index = snapshot.snapshot;
const pluginIds = [