Task · SKT-0173

Retain HTTP-client interruption causes inside engineReadExact

Description

Five exact-read callers now preserve errors returned by engineReadExact, but engineReadExact itself still collapses non-404 management failures to bare ErrConflict when the outer caller context is active. An HTTP-client-only timeout can therefore still be mistaken for the behavior under test by lifecycle helpers. Preserve interruption evidence without changing refusal decisions or exposing unsanitized request data.

Acceptance Criteria

Definition of Done

Implementation Plan

Loop54: real HTTP-client-only interruption red proof with active outer context; preserve exact-read conflict and safe absence predicates, sanitized causes, remote focused proof and guarded review.

Implementation Notes

Loop54 landed 63fccfea90d76092e4008fb2f27ecfe6450bc7e4. Exact one-line engineReadExact cause wrap preserves conflict plus sanitized client interruption; all presence/inventory/hash/refusal and safe404 decisions unchanged. Real TLS five-caller active-outer-context regression red at unchanged source, green complete scoped package; lifecycle helper rejects interruption. Guarded independent review and dsreview PASS; CodeRabbit complete2/2 zero findings; composed remote full just check passed clean exact tree6831e8256f9d9a2dee507b3a95d522bbbde5a343 run20261023T193031Z-synthkit-81f0e82a, local privacy guard clean2003files. Hosted exact-SHA CI pending. Generation/dump inapplicable: no schema/skill/emitted signal changes. No private-cancellation/body-read normalization or runtime admission claim.

Final Summary

Preserved sanitized HTTP-client-only interruption causes under ErrConflict at the exact-read helper. Required refusal semantics unchanged; real TLS red/green, guarded review, complete CodeRabbit and exact composed gate passed before publication.

View the source file on GitHub