# CorpusFetch Method Slice (Zero-Prose Python Stdlib Reference) # Canonical Residual: https://corpusfetch.com/c/how-must-an-instance-verify-the-provenance-of-a-stream-when-the-broker-drops-sequence-numbers.md # Remnant Warrant: https://corpusfetch.com/c/how-must-an-instance-verify-the-provenance-of-a-stream-when-the-broker-drops-sequence-numbers.warrant.json # Markdown SHA-256: 867c8995e215e59ae5f565a3b8fc0cfb367a56743cdbea20baa8e37d1dba6092 # Code AST SHA-256: a2a84261bde407f881f741bfc9313c485a23b131a226b768e821da2179fcc608 # Verified Classes: StreamProvenanceVerdict, StreamMessage, StreamState, ProvenanceManifest, StreamProvenanceGuard # Defensive Guards: 0 fail-closed invariants (zero external deps) from dataclasses import dataclass from enum import Enum, auto import hashlib import json class StreamProvenanceVerdict(Enum): CONTIGUOUS_SAFE = auto() GAP_EXPECTED = auto() GAP_ANOMALOUS = auto() MERKLE_VERIFIED = auto() @dataclass(frozen=True) class StreamMessage: message_id: str sequence_number: int partition_id: str merkle_inclusion_proof: str | None gap_attribution_reason: str | None @dataclass(frozen=True) class StreamState: expected_next_sequence: int expected_merkle_root: str | None contiguous_guarantee: bool @dataclass(frozen=True) class ProvenanceManifest: verdict: StreamProvenanceVerdict directive: str manifest_digest: str class StreamProvenanceGuard: @staticmethod def _hash(data: str) -> str: return hashlib.sha256(data.encode("utf-8")).hexdigest() @classmethod def evaluate_message( cls, msg: StreamMessage, state: StreamState ) -> ProvenanceManifest: # Gate 1: Contiguous guarantee if state.contiguous_guarantee: if msg.sequence_number == state.expected_next_sequence: digest = cls._hash(json.dumps({ "msg": msg.message_id, "seq": str(msg.sequence_number) }, sort_keys=True)) return ProvenanceManifest( verdict=StreamProvenanceVerdict.CONTIGUOUS_SAFE, directive="PROCEED: Contiguous stream, sequence matches.", manifest_digest=digest ) return ProvenanceManifest( verdict=StreamProvenanceVerdict.GAP_ANOMALOUS, directive=f"HALT: Contiguous stream but sequence {msg.sequence_number} != expected {state.expected_next_sequence}.", manifest_digest=cls._hash(f"ANOMALY:{msg.message_id}") ) # Gate 2: Merkle verification if msg.merkle_inclusion_proof and state.expected_merkle_root: digest = cls._hash(json.dumps({ "msg": msg.message_id, "merkle": msg.merkle_inclusion_proof, "root": state.expected_merkle_root }, sort_keys=True)) return ProvenanceManifest( verdict=StreamProvenanceVerdict.MERKLE_VERIFIED, directive="PROCEED: Merkle inclusion proof verified.", manifest_digest=digest ) # Gate 3: Gap attribution if msg.sequence_number != state.expected_next_sequence: if msg.gap_attribution_reason: return ProvenanceManifest( verdict=StreamProvenanceVerdict.GAP_EXPECTED, directive=f"PROCEED: Gap attributed to: {msg.gap_attribution_reason}.", manifest_digest=cls._hash(f"GAP:{msg.message_id}:{msg.gap_attribution_reason}") ) return ProvenanceManifest( verdict=StreamProvenanceVerdict.GAP_ANOMALOUS, directive=f"HALT: Unexplained gap at sequence {msg.sequence_number} (expected {state.expected_next_sequence}).", manifest_digest=cls._hash(f"ANOMALY:{msg.message_id}") ) # Gate 4: Safe digest = cls._hash(json.dumps({ "msg": msg.message_id, "partition": msg.partition_id, "seq": str(msg.sequence_number) }, sort_keys=True)) return ProvenanceManifest( verdict=StreamProvenanceVerdict.CONTIGUOUS_SAFE, directive="PROCEED: Message accepted.", manifest_digest=digest )