From bb49252523d13c48e6d3fb7c4cfd5f95400fcd53 Mon Sep 17 00:00:00 2001 From: morluto <76467478+morluto@users.noreply.github.com> Date: Thu, 15 Oct 2026 05:38:36 +0800 Subject: [PATCH] test(ida): verify typed timeout and retained cleanup through the CLI --- src/ida/IdaSessionClient.test.ts | 20 ------------------- .../cli/idaRetainedCleanupCli.test.ts | 7 ++++++- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/src/ida/IdaSessionClient.test.ts b/src/ida/IdaSessionClient.test.ts index 3e2ec1b6e2..c6bffd2e09 100644 --- a/src/ida/IdaSessionClient.test.ts +++ b/src/ida/IdaSessionClient.test.ts @@ -7,7 +7,6 @@ import { RecordingIdaMcp, } from "../../tests/fixtures/idaMcp.js"; import { IdaSessionClient } from "./IdaSessionClient.js"; -import { AnalysisTimeoutError } from "../domain/analysisErrorCore.js"; import { functionDossierSchema } from "../domain/hopperValues.js"; import { jsonValueSchema, type JsonValue } from "../domain/jsonValue.js"; import { ProviderAdapterError } from "../domain/providerAdapterError.js"; @@ -474,25 +473,6 @@ describe("attached IDA function observations", () => { }); }); -it("preserves a typed MCP request timeout through the public session result", async () => { - const { producer, client } = await fixture(); - expect((await client.execute("health", {})).ok).toBe(true); - producer.overrideCall = (name) => { - if (name === "decompile_function") - throw new AnalysisTimeoutError(name, 1_000); - return undefined; - }; - - const result = await client.execute("procedure_pseudo_code", { - procedure: "main", - }); - - if (result.ok) throw new Error("Expected the request timeout to surface"); - expect(result.error._tag).toBe("AnalysisTimeoutError"); - expect(projectAnalysisError(result.error).code).toBe("provider_timeout"); - await client.close(); -}); - const busyHealth = (busyTool?: JsonValue): JsonValue => ({ status: "busy", uptime_sec: 1.041, diff --git a/tests/boundary/cli/idaRetainedCleanupCli.test.ts b/tests/boundary/cli/idaRetainedCleanupCli.test.ts index 826bb7f1d9..cca51531ca 100644 --- a/tests/boundary/cli/idaRetainedCleanupCli.test.ts +++ b/tests/boundary/cli/idaRetainedCleanupCli.test.ts @@ -65,11 +65,16 @@ describe("headless IDA timeout through the one-shot CLI", () => { expect(result.json).toMatchObject({ code: "cleanup_incomplete", details: { - provider_id: "ida", cleanup: "incomplete", + execution_failure: "provider_timeout", + operation: "idb_open", + timeout_ms: 500, resources: [expect.stringContaining(workspaceRoot)], cleanup_error: { + code: "cleanup_incomplete", details: { + provider_id: "ida", + operation: "close", diagnostics: { upstream_sessions: { state: "unverified",