From 37fcea78cecbeeadd869e9a3d77dd133ed264a0a Mon Sep 17 00:00:00 2001 From: morluto <76467478+morluto@users.noreply.github.com> Date: Sat, 10 Oct 2026 03:59:42 +0800 Subject: [PATCH] fix(cli): avoid duplicate primary cleanup diagnostics --- src/application/DirectAnalysisCleanup.ts | 1 - tests/composition/directAnalysisCleanup.test.ts | 8 +++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/application/DirectAnalysisCleanup.ts b/src/application/DirectAnalysisCleanup.ts index 3f3c54425e..3f073f7b5e 100644 --- a/src/application/DirectAnalysisCleanup.ts +++ b/src/application/DirectAnalysisCleanup.ts @@ -55,7 +55,6 @@ export const directAnalysisCleanupFailure = ( "execution_failure" in primary.data.details ? (primary.data.details.execution_failure ?? primary.data.code) : primary.data.code, - primary_error: projection, cleanup_error: cleanup, }, }; diff --git a/tests/composition/directAnalysisCleanup.test.ts b/tests/composition/directAnalysisCleanup.test.ts index 9e533bb890..22fd849428 100644 --- a/tests/composition/directAnalysisCleanup.test.ts +++ b/tests/composition/directAnalysisCleanup.test.ts @@ -6,6 +6,7 @@ import { } from "../../src/application/DirectAnalysis.js"; import type { DirectAnalysisDependencies } from "../../src/application/DirectAnalysisDependencies.js"; import { parseConfig } from "../../src/config/parseConfig.js"; +import { analysisCliErrorEnvelopeSchema } from "../../src/contracts/errorSchemas.js"; import type { AnalysisError } from "../../src/domain/analysisErrorBase.js"; import { AnalysisTimeoutError } from "../../src/domain/analysisErrorCore.js"; import { projectAnalysisError } from "../../src/domain/analysisErrorProjection.js"; @@ -104,7 +105,8 @@ describe("one-shot analysis cleanup outcomes", () => { "read_bytes", {}, ); - expect(result).toMatchObject({ + const callerError = analysisCliErrorEnvelopeSchema.parse(result); + expect(callerError).toMatchObject({ code: "cleanup_incomplete", category: primary.category, message: primary.message, @@ -114,6 +116,10 @@ describe("one-shot analysis cleanup outcomes", () => { cleanup_error: projectAnalysisError(cleanupError), }, }); + expect(callerError.details).not.toHaveProperty("primary_error"); + expect( + JSON.stringify(callerError).match(/retained observation/g), + ).toHaveLength(1); expect(isCliOperationFailure(result)).toBe(true); });