pub struct AuditLogEntry {Show 17 fields
pub timestamp: u64,
pub source_agent: Option<String>,
pub target_agent: String,
pub block_id: String,
pub message_hash: String,
pub message_length: usize,
pub success: bool,
pub error_message: Option<String>,
pub request_id: String,
pub outcome: Option<String>,
pub reason: Option<String>,
pub event_kind: String,
pub evicted_block: Option<String>,
pub evicted_agent: Option<String>,
pub audit_source_uid: String,
pub lan_claimed_uid: String,
pub wan: Option<WanAudit>,
}Expand description
Audit log entry for message injection.
Fields§
§timestamp: u64§source_agent: Option<String>§target_agent: String§block_id: String§message_hash: String§message_length: usize§success: bool§error_message: Option<String>§request_id: String§outcome: Option<String>“nudge_sent” | “nudge_failed” | “nudge_declined” — present only for
Warden Supervisor-originated entries (see
ANALYSIS_WARDEN_AUTO_CONTROLLER_CONTINUATION_WATCHER_2026_08_12.md);
absent for ordinary jekt injections. “nudge_sent” only when delivery
actually succeeded; “nudge_failed” when the Supervisor attempted a
nudge but delivery itself failed (rate limit, unavailable
controller, etc — see entry.success/error_message for why). A
“nudge_declined” entry has no corresponding delivery attempt at
all — this field is the ONLY record that decision ever existed.
reason: Option<String>The Supervisor’s stated reasoning, populated alongside outcome.
Not used by ordinary (non-Supervisor) jekt entries.
event_kind: String“delivery” (default — an inject_message attempt, the only kind this
log ever recorded before this field existed) | “register” |
“unregister”. Lets GET /agentmux/reactive/audit reconstruct
registration/eviction history, not just delivery attempts — prior to
this, register_agent_with_nonce/unregister_agent* wrote nothing here
at all, so a same-host cross-instance identity collision left no
trace of who registered as an agent_id or who it evicted.
evicted_block: Option<String>For a “register” event: the block_id this agent_key was previously
mapped to, if registering evicted an existing mapping. None if this
was a fresh registration (no prior holder).
evicted_agent: Option<String>For a “register” event: the agent_id this block_id was previously
registered to, if registering evicted an existing mapping. None if
this block had no prior tenant.
audit_source_uid: StringIdentity M4c-2d: the sending agent’s UID when its request was
attributed (InjectionRequest::audit_source_uid), beside the
source_agent name it claimed. Empty = Unattributed, or not a
delivery.
lan_claimed_uid: StringIdentity M4d-6: the UID a LAN v2 signature claimed
(InjectionRequest::lan_claimed_uid). Not verified attribution.
wan: Option<WanAudit>W3-S: the WAN verdict for a cloud-delivered jekt, when there was one.
Trait Implementations§
Source§impl Clone for AuditLogEntry
impl Clone for AuditLogEntry
Source§fn clone(&self) -> AuditLogEntry
fn clone(&self) -> AuditLogEntry
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 AuditLogEntry
impl Debug for AuditLogEntry
Source§impl<'de> Deserialize<'de> for AuditLogEntry
impl<'de> Deserialize<'de> for AuditLogEntry
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>,
Auto Trait Implementations§
impl Freeze for AuditLogEntry
impl RefUnwindSafe for AuditLogEntry
impl Send for AuditLogEntry
impl Sync for AuditLogEntry
impl Unpin for AuditLogEntry
impl UnsafeUnpin for AuditLogEntry
impl UnwindSafe for AuditLogEntry
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
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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