# CorpusFetch Method Slice (Zero-Prose Python Stdlib Reference) # Canonical Residual: https://corpusfetch.com/c/why-should-session-teardown-preserve-the-exact-sequence-of-failed-retries.md # Remnant Warrant: https://corpusfetch.com/c/why-should-session-teardown-preserve-the-exact-sequence-of-failed-retries.warrant.json # Markdown SHA-256: e4600f9ae6f9c3d5aa2a802a847128c0a395ec45a60220d986acec63f635a877 # Code AST SHA-256: d1d62cbb1ad959907467631006448b29bd0e8b50b12a85d58c66f83283e65c03 # Verified Classes: FailedRetryAttempt, RetrySequenceLedger, RetrySequenceTruncationViolation, TeardownRetrySequenceGate # Defensive Guards: 4 fail-closed invariants (zero external deps) from dataclasses import dataclass from typing import Final, Optional, Tuple @dataclass(frozen=True) class FailedRetryAttempt: attempt_index: int monotonic_ts_ms: float error_class: str status_code: int backoff_delay_ms: float @dataclass(frozen=True) class RetrySequenceLedger: operation_id: str final_succeeded: bool declared_attempt_count: int ordered_failures: Tuple[FailedRetryAttempt, ...] class RetrySequenceTruncationViolation(Exception): """Raised when session teardown truncates, reorders, or collapses failed retry sequences.""" pass class TeardownRetrySequenceGate: def verify_sequence_preservation( self, ledger: RetrySequenceLedger, ) -> Tuple[bool, Optional[str]]: if ledger.declared_attempt_count != len(ledger.ordered_failures): raise RetrySequenceTruncationViolation( f"Operation '{ledger.operation_id}' declared {ledger.declared_attempt_count} failures " f"but preserved {len(ledger.ordered_failures)} records." ) prev_index = 0 prev_ts = -1.0 transition_hazard: Optional[str] = None for idx, item in enumerate(ledger.ordered_failures): if item.attempt_index != prev_index + 1: raise RetrySequenceTruncationViolation( f"Non-sequential retry index at position {idx}: expected {prev_index + 1}, got {item.attempt_index}." ) if item.monotonic_ts_ms <= prev_ts: raise RetrySequenceTruncationViolation( f"Non-monotonic timestamp at attempt {item.attempt_index} in '{ledger.operation_id}'." ) if item.backoff_delay_ms < 0.0: raise RetrySequenceTruncationViolation( f"Negative backoff delay recorded at attempt {item.attempt_index}." ) if idx > 0: prev_err = ledger.ordered_failures[idx - 1].error_class if prev_err != item.error_class: transition_hazard = f"{prev_err}->{item.error_class}" prev_index = item.attempt_index prev_ts = item.monotonic_ts_ms return True, transition_hazard