pub struct ObserverQuarantine {
pub schema_version: u16,
pub observer_module_digest: [u8; 32],
pub quarantine_tick: Tick,
pub trap_class: ObserverTrapClass,
pub attestation_class: RuntimeSignatureClass,
}Expand description
ObserverQuarantine — chain-anchored Observer host v2 trap-
quarantine receipt (E15 axiom).
Emitted by the runtime supervisor when an observer wasm execution trips a sandbox-boundary failure (panic / budget / capability denial / other trap). The receipt anchors the operator’s audit trail without observer wasm authorship — chain-non-affecting clause 3: the host supervises emission.
Trigger boundary: only ObserverError variants from the host
trip Quarantine emission. CapabilityExecutionError (PG unreachable
etc.) is operational, NOT chain-anchored — those surface via
metric / runtime_doctor_journal instead.
Replay-side verification: replay re-checks the
observer_module_digest against the bytes the manifest pinned at
registration time (mirrors HookModuleRegister’s replay
verification). Mismatch indicates manifest tampering or operator
mis-deployment.
3-tier ingestion mirror: attestation_class records the
observer module’s ingestion attestation tier (Tier 1 BLAKE3 digest
pin active by default; Tier 2 sigstore + Tier 3 cargo-vet
scaffolded). Per-Quarantine the attestation_class reflects the
state at registration time so audit logs distinguish “trapped after
Tier-1-only ingestion” from Tier-2/3 paths.
Fields§
§schema_version: u16Wire schema version.
observer_module_digest: [u8; 32]BLAKE3 digest of the registered observer module bytes that
trapped. Equals the expected_digest the operator pinned at
registration; recorded so replay can re-verify the module
bytes against the same hash.
quarantine_tick: TickTick at which the trap occurred + Quarantine was emitted by the host supervisor.
trap_class: ObserverTrapClassTrap classification — distinguishes panic / budget / cap- deny / other for forensic + operator triage.
attestation_class: RuntimeSignatureClassAttestation class signalling the Tier 2/3 ingestion state at
registration time. The default path is
RuntimeSignatureClass::None (Tier 1 BLAKE3 digest pin
only); Tier 2/3 paths set Ed25519 / MlDsa65 / Hybrid.
Semantics distinction: in this ObserverQuarantine
context the value records the observer module ingestion
attestation tier — NOT the event-signing class. The
Quarantine event itself is chain-anchored under the runtime’s
standard signing path (E13 shell-per-tick
SignatureClassPolicy), independent of this field.
Trait Implementations§
Source§impl ArkheEvent for ObserverQuarantine
impl ArkheEvent for ObserverQuarantine
Source§impl Clone for ObserverQuarantine
impl Clone for ObserverQuarantine
Source§fn clone(&self) -> ObserverQuarantine
fn clone(&self) -> ObserverQuarantine
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ObserverQuarantine
impl Debug for ObserverQuarantine
Source§impl<'de> Deserialize<'de> for ObserverQuarantine
impl<'de> Deserialize<'de> for ObserverQuarantine
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ObserverQuarantine
impl PartialEq for ObserverQuarantine
Source§fn eq(&self, other: &ObserverQuarantine) -> bool
fn eq(&self, other: &ObserverQuarantine) -> bool
self and other values to be equal, and is used by ==.