pub struct AgentRow {Show 14 fields
pub slot: SessionSlot,
pub label: String,
pub lifecycle: SessionLifecycleState,
pub heal_attempt: Option<u32>,
pub heal_attempts: Option<u32>,
pub has_background_work: bool,
pub pending: Option<PendingKind>,
pub pending_depth: usize,
pub pending_seq: u64,
pub last_activity: Option<SystemTime>,
pub reason: Option<String>,
pub failed_turn: Option<SystemTime>,
pub died: bool,
pub tree: Option<String>,
}Expand description
One agent as a view reads it. A lead and a worker are the same row: which project spawned it, and what nests under what, are the view’s business rather than the row’s.
Fields§
§slot: SessionSlot§label: StringThe worker’s own label, or "lead" for a project’s own agent.
lifecycle: SessionLifecycleState§heal_attempt: Option<u32>Which heal attempt is next while the seat is Restarting; None
for every other lifecycle.
heal_attempts: Option<u32>How many restarts a heal may make, so the row can say “1 of 3” without the client holding a policy of its own.
has_background_work: bool§pending: Option<PendingKind>§pending_depth: usizeHow many prompts the session is holding. Zero when it holds none, and more than one when a prompt waits behind another.
pending_seq: u64How many asks have ever arrived for the seat. The ask’s identity: a client announces a new one by its number, so an ask replacing another at the same depth is news and an answer that shrinks the batch is not.
last_activity: Option<SystemTime>§reason: Option<String>Why this session failed, from the core’s own record: a worker’s
spawn diagnostic, or the failure the slot’s last connection left
behind. None for a session that has not failed.
failed_turn: Option<SystemTime>When this session’s newest turn ended in failure, which the rail
marks until the reader opens the seat. None when nothing failed,
when the reader cancelled that turn, or when a newer turn has since
been committed.
died: boolWhether a session on this seat ended and no reader has been shown it since. The row’s failure is the durable trace of a crash nobody watched, and this is what tells a seat that never came up (which stays parked with its reason) from one that should be started again.
tree: Option<String>The seat’s own tree, home-shortened, when the worker runs somewhere
other than its project’s directory. None for a lead, for a worker
in its project’s tree, and for one this cannot place - so a row
drawn with one can name the tree beside its project’s siblings.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for AgentRow
impl<'de> Deserialize<'de> for AgentRow
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 AgentRow
impl RefUnwindSafe for AgentRow
impl Send for AgentRow
impl Sync for AgentRow
impl Unpin for AgentRow
impl UnsafeUnpin for AgentRow
impl UnwindSafe for AgentRow
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§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