fix(artifacts): bind inventory and extraction cleanup to exact owners

Preserve typed failed attempts through root admission, hashing, inventory,
nested JavaScript readers and extraction rollback. Remove the intermediate
cause/resource records that discarded canonical cleanup capabilities.

Resolve original provider errors after confirmed release while preserving
primary failures, partial observations and invalidated-handle uncertainty.

Fixes #4928
This commit is contained in:
morluto
2026-10-18 08:44:49 +08:00
parent 2582c267af
commit bbfe6edd60
7 changed files with 38 additions and 57 deletions
@@ -306,9 +306,11 @@ const visitReader = async (
});
if (cleanup.kind === "failed") {
failure = {
cause: ArtifactReaderFailure.withCleanup(
failure === undefined ? cleanup.cause : failure.cause,
ArtifactReaderFailure.cleanupObservation(cleanup.cause, resource),
cause: context.resources.cleanupFailure(
failure === undefined
? { kind: "completed" }
: { kind: "failed", cause: failure.cause },
[cleanup],
),
};
}