Struct SopRun
pub struct SopRun {Show 15 fields
pub run_id: String,
pub sop_name: String,
pub trigger_event: SopEvent,
pub frame_marker_id: String,
pub status: SopRunStatus,
pub current_step: u32,
pub total_steps: u32,
pub started_at: String,
pub completed_at: Option<String>,
pub failure_reason: Option<String>,
pub step_results: Vec<SopStepResult>,
pub waiting_since: Option<String>,
pub llm_calls_saved: u64,
pub revision: u32,
pub revision_base: u32,
}Expand description
A full SOP execution run (from trigger to completion).
Fields§
§run_id: String§sop_name: String§trigger_event: SopEvent§frame_marker_id: StringStable per-run boundary marker for untrusted trigger framing.
status: SopRunStatus§current_step: u32§total_steps: u32§started_at: String§completed_at: Option<String>§failure_reason: Option<String>Why this run reached a Failed terminal state, captured at the
transition that failed it. None while the run is live and for runs
that ended any other way. Serialized only when present, so runs
persisted before this field existed round-trip unchanged.
step_results: Vec<SopStepResult>§waiting_since: Option<String>ISO-8601 timestamp when the run entered WaitingApproval (for timeout tracking).
llm_calls_saved: u64Number of LLM calls saved by deterministic execution in this run.
revision: u32Gate-presentation counter: bumped on each Revise re-presentation AND on
each new checkpoint park after the first, so EVERY prompt this run ever
sends has a unique revision-qualified reference (<run_id>#<rev>; bare =
0, the run’s very first gate). An answer on a superseded prompt — an older
draft, or an earlier GATE’s leftover buttons — can never resolve the
current one.
revision_base: u32revision as of the CURRENT gate’s first presentation. revision - revision_base = re-drafts spent at this gate (the per-gate revise cap);
reset when a new checkpoint parks, untouched by revise re-parks.
Trait Implementations§
Source§impl Attributable for SopRun
impl Attributable for SopRun
fn role(&self) -> Role
fn alias(&self) -> &str
Source§fn tool_provenance(&self) -> ToolProvenance
fn tool_provenance(&self) -> ToolProvenance
Source§impl<'de> Deserialize<'de> for SopRun
impl<'de> Deserialize<'de> for SopRun
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SopRun, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SopRun, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for SopRun
impl Serialize for SopRun
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for SopRun
impl RefUnwindSafe for SopRun
impl Send for SopRun
impl Sync for SopRun
impl Unpin for SopRun
impl UnsafeUnpin for SopRun
impl UnwindSafe for SopRun
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more