pub struct HarnessRun {
pub id: String,
pub harness: String,
pub job_id: String,
pub status: String,
pub claimed_at: Option<String>,
pub started_at: Option<String>,
pub finished_at: Option<String>,
pub error: Option<String>,
pub session_id: Option<String>,
pub delivery: Option<RunDelivery>,
}Expand description
One fire of one scheduled job, projected onto the uniform Domain 11 row.
Fields§
§id: StringHarness-native run id: Hermes’s executions.id (a uuid hex),
OpenClaw’s run_id — or <job_id>#<seq> when a run-log row predates
run ids, since the (job_id, seq) pair is that store’s own key.
harness: StringOwning harness.
job_id: StringThe scheduled job this fire belongs to.
status: StringThe harness’s own outcome word: Hermes claimed | running | completed | failed | unknown, OpenClaw ok | error | skipped.
claimed_at: Option<String>When the scheduler claimed the fire. Hermes only — OpenClaw’s run log is written once, at finish, and records no claim.
started_at: Option<String>When the fire began executing.
finished_at: Option<String>When the fire reached a terminal state.
error: Option<String>The failure the harness recorded, verbatim.
session_id: Option<String>The session this fire opened, when it is recoverable: OpenClaw records
it on the row; Hermes does not, so it is recovered by matching
cron_<job_id>_<YYYYMMDD_HHMMSS> session ids inside the fire’s own
window (see [join_hermes_session]). None means no session is
recoverable — never a guess.
delivery: Option<RunDelivery>Where this fire’s output went, when the harness recorded a delivery
for it. None means nothing in the harness’s delivery record matches
this fire — never that the delivery failed.
Implementations§
Source§impl HarnessRun
impl HarnessRun
Sourcepub fn from_fire(
harness: &str,
fire: &Fire,
session_id: Option<String>,
delivery: Option<RunDelivery>,
) -> HarnessRun
pub fn from_fire( harness: &str, fire: &Fire, session_id: Option<String>, delivery: Option<RunDelivery>, ) -> HarnessRun
The observed row of a typed world [Fire] (docs/ONTOLOGY.md §2.7):
the join to its session and delivery is the caller’s, as it is for the
ledger read, so runs list and the world never disagree about a fire.
Trait Implementations§
Source§impl Clone for HarnessRun
impl Clone for HarnessRun
Source§fn clone(&self) -> HarnessRun
fn clone(&self) -> HarnessRun
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 HarnessRun
impl Debug for HarnessRun
Source§impl<'de> Deserialize<'de> for HarnessRun
impl<'de> Deserialize<'de> for HarnessRun
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<HarnessRun, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<HarnessRun, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for HarnessRun
Source§impl PartialEq for HarnessRun
impl PartialEq for HarnessRun
Source§impl Serialize for HarnessRun
impl Serialize for HarnessRun
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,
impl StructuralPartialEq for HarnessRun
Auto Trait Implementations§
impl Freeze for HarnessRun
impl RefUnwindSafe for HarnessRun
impl Send for HarnessRun
impl Sync for HarnessRun
impl Unpin for HarnessRun
impl UnsafeUnpin for HarnessRun
impl UnwindSafe for HarnessRun
Blanket Implementations§
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>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.