feat(FN-3313): add plugin slot registry, planning mode rewind, and docker n

This merge lands five features spanning the Fusion stack: research settings key renaming (FN-3313, Steps 2–7) across types, defaults, CLI, and engine packages; static plugin slot-host rendering contract documentation (FN-3260); Docker node provisioning routes with a planning modal (FN-3116); plannin

Fusion-Task-Id: FN-3313
This commit is contained in:
Fusion
2026-05-04 20:14:46 -07:00
committed by gsxdsm
parent fccec582f4
commit d790854e24
16 changed files with 118 additions and 90 deletions

View File

@@ -22,7 +22,7 @@ const researchStoreMock = {
const storeMock = {
init: vi.fn(),
getSettings: vi.fn(async () => ({ researchSettings: { enabled: true }, researchWebSearchProvider: "tavily", researchTavilyApiKey: "x" })),
getSettings: vi.fn(async () => ({ researchSettings: { enabled: true }, researchGlobalWebSearchProvider: "tavily", researchGlobalTavilyApiKey: "x" })),
getResearchStore: vi.fn(() => researchStoreMock),
};
@@ -145,7 +145,7 @@ describe("research commands", () => {
});
it("errors when provider credentials are missing", async () => {
storeMock.getSettings.mockResolvedValueOnce({ researchSettings: { enabled: true }, researchWebSearchProvider: "tavily" });
storeMock.getSettings.mockResolvedValueOnce({ researchSettings: { enabled: true }, researchGlobalWebSearchProvider: "tavily" });
await expect(runResearchCreate({ query: "hello" })).rejects.toThrow("process.exit:1");
expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining("missing-credentials"));
});