fix(channels): preserve external catalog overrides (#52988)

* fix(channels): preserve external catalog overrides

* fix(channels): clarify catalog precedence

* fix(channels): respect overridden install specs
This commit is contained in:
Nimrod Gutman
2026-03-23 18:08:17 +02:00
committed by GitHub
parent 29ad211e76
commit 041c47419f
5 changed files with 260 additions and 16 deletions

View File

@@ -82,6 +82,29 @@ describe("plugin install plan helpers", () => {
expect(result).toBeNull();
});
it("rejects plugin-id bundled matches when the catalog npm spec was overridden", () => {
const findBundledSource = vi
.fn()
.mockImplementation(({ kind }: { kind: "pluginId" | "npmSpec"; value: string }) => {
if (kind === "pluginId") {
return {
pluginId: "whatsapp",
localPath: "/tmp/extensions/whatsapp",
npmSpec: "@openclaw/whatsapp",
};
}
return undefined;
});
const result = resolveBundledInstallPlanForCatalogEntry({
pluginId: "whatsapp",
npmSpec: "@vendor/whatsapp-fork",
findBundledSource,
});
expect(result).toBeNull();
});
it("uses npm-spec bundled fallback only for package-not-found", () => {
const findBundledSource = vi.fn().mockReturnValue({
pluginId: "voice-call",