fix(javascript): preserve cancellation through recovery publication cleanup

This commit is contained in:
morluto
2026-10-13 15:19:18 +08:00
parent e802441bce
commit eaa9616585
2 changed files with 138 additions and 2 deletions
+10 -2
View File
@@ -9,7 +9,11 @@ import type {
import { SafeOutputTree } from "../../artifacts/SafeOutputTree.js";
import { SafeOutputTreeCreationFailure } from "../../artifacts/SafeOutputTreeCreationFailure.js";
import { AnalysisError } from "../../domain/analysisErrorBase.js";
import { AnalysisOutputError } from "../../domain/analysisErrorCore.js";
import {
AnalysisCancelledError,
AnalysisOutputError,
} from "../../domain/analysisErrorCore.js";
import { ArtifactReaderFailure } from "../../artifacts/ArtifactReader.js";
import {
javascriptRecoveryResultSchema,
type JavaScriptRecoveryInput,
@@ -144,7 +148,11 @@ export class WakaruProvider implements JavaScriptRecoveryPort {
failed = { cause };
}
if (failed !== undefined) {
const failure = failed.cause;
const failure =
failed.cause instanceof ArtifactReaderFailure &&
failed.cause.reason === "cancelled"
? new AnalysisCancelledError(OPERATION, { cause: failed.cause })
: failed.cause;
const residuals: string[] = [];
const cleanupFailures: { resource: string; reason: string }[] = [];
const cleanupOwner =