pub struct EscalationRecord {
pub mission_id: String,
pub kind: EscalationKind,
pub milestone_id: Option<String>,
pub ask: String,
pub decision: String,
pub latency_ms: Option<u64>,
pub ask_seq: u64,
pub decision_seq: Option<u64>,
}Expand description
One escalation as a labeled human-judgment example: what was asked, what
was decided, how long the decision took, and the seq refs that join it
to the replay. Grant/block rows mirror the ledger’s vocabulary
(approved / denied: <reason> / pending); a block’s decision is
unblocked: <reason>. Pending rows export with a null decision seq —
the ask is real log data the consumer may want, the missing label is
visible rather than silently dropped.
Fields§
§mission_id: String§kind: EscalationKind§milestone_id: Option<String>Grant/block: the milestone that parked; null on steers.
ask: StringGrant: <kind>: <command>; steer: the operator’s message; block:
the milestone.blocked reason.
decision: String§latency_ms: Option<u64>Ask→decision latency from the RECORDED timestamps (no clock is
consulted); null while pending and on steers.
ask_seq: u64Seq of the ask event (grant.requested / user.message / milestone.blocked) — the record’s ordering key.
decision_seq: Option<u64>Seq of the decision event — joins the replay’s human-decision chain
(crate::provenance::DecisionLink); null while pending.
Trait Implementations§
Source§impl Clone for EscalationRecord
impl Clone for EscalationRecord
Source§fn clone(&self) -> EscalationRecord
fn clone(&self) -> EscalationRecord
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more