feat(FN-3074): sort done column by recency, preserve merge-active state, ad

This merge adds done-column sorting by most recent completion while preserving merge-active state on verification bounces, introduces a comprehensive droid runtime regression test suite covering engine delegation, auth routes, and model routing, hardens the CLI native bundle externalization, and fix

Fusion-Task-Id: FN-3074
This commit is contained in:
Fusion
2026-05-04 07:15:57 -07:00
committed by gsxdsm
parent 0c1900c583
commit 3f5893bdc1
6 changed files with 285 additions and 0 deletions

View File

@@ -109,6 +109,42 @@ describe("provider registration (default export)", () => {
vi.doUnmock("../../../../plugins/fusion-plugin-droid-runtime/src/process-manager.js");
vi.doUnmock("../../../../plugins/fusion-plugin-droid-runtime/src/mcp-config.js");
});
it("delegates streamSimple execution to plugin-owned streamViaCli", async () => {
vi.resetModules();
const pluginStreamViaCli = vi.fn(() => ({ delegated: true }));
vi.doMock("../../../../plugins/fusion-plugin-droid-runtime/src/provider.js", () => ({
streamViaCli: pluginStreamViaCli,
}));
vi.doMock("../../../../plugins/fusion-plugin-droid-runtime/src/process-manager.js", () => ({
validateCliPresenceAsync: vi.fn(async () => ({ ok: true })),
validateCliAuthAsync: vi.fn(async () => true),
killAllProcesses: vi.fn(),
discoverDroidModels: vi.fn(async () => ["droid-pro"]),
}));
vi.doMock("../../../../plugins/fusion-plugin-droid-runtime/src/mcp-config.js", () => ({
getCustomToolDefs: vi.fn(() => []),
toolsFromContext: vi.fn(() => []),
writeMcpConfig: vi.fn(() => undefined),
}));
const registerProvider = vi.fn();
const on = vi.fn();
const getAllTools = vi.fn(() => []);
const setActiveTools = vi.fn();
const mod = await import("../../index");
mod.default({ registerProvider, on, getAllTools, setActiveTools } as any);
await new Promise((resolve) => setTimeout(resolve, 0));
const [, config] = registerProvider.mock.calls[0];
config.streamSimple({ id: "droid-pro", provider: "droid-cli" }, { messages: [] }, {});
expect(pluginStreamViaCli).toHaveBeenCalled();
vi.doUnmock("../../../../plugins/fusion-plugin-droid-runtime/src/provider.js");
vi.doUnmock("../../../../plugins/fusion-plugin-droid-runtime/src/process-manager.js");
vi.doUnmock("../../../../plugins/fusion-plugin-droid-runtime/src/mcp-config.js");
});
});
describe("streamViaCli", { timeout: 90_000 }, () => {