fix(javascript): retain cancellation after observed worker failure

This commit is contained in:
morluto
2026-10-20 19:13:06 +08:00
parent 5f0bc86d1a
commit f01dccab77
2 changed files with 53 additions and 10 deletions
@@ -429,6 +429,16 @@ export class JavaScriptAnalysisWorker {
throw this.#projectPrimaryFailure(file.path);
} catch (cause: unknown) {
const error = this.#failure(cause, file.path, deadline, signal);
if (
this.#primaryFailure !== undefined &&
deadline?.interruption === "cancelled"
)
error.retainSecondaryFailure(
new AnalysisCancelledError(OPERATION, {
cause: deadline.signal.reason,
capturedOutput: this.#captured(),
}),
);
this.#lastFailure = error;
// Complete checkpoints remain readable after a child crash or cancellation.
const cleanup = await this.#stop(error);