pub struct AgentEntry {Show 16 fields
pub agent_id: String,
pub agent_type: String,
pub role: Option<String>,
pub project_root: String,
pub started_at: DateTime<Utc>,
pub last_active: DateTime<Utc>,
pub pid: u32,
pub process_identity: Option<ProcessIdentity>,
pub durable_identity_id: Option<String>,
pub status: AgentStatus,
pub status_message: Option<String>,
pub transport: Option<TransportClient>,
pub role_source: Option<RoleSource>,
pub parent: Option<String>,
pub app_session_id: Option<String>,
pub display_name: Option<String>,
}Fields§
§agent_id: String§agent_type: String§role: Option<String>§project_root: String§started_at: DateTime<Utc>§last_active: DateTime<Utc>§pid: u32§process_identity: Option<ProcessIdentity>PID alone is not an identity: operating systems reuse it. The immutable process start marker prevents a retired MCP record from becoming “live” again when an unrelated process receives the same PID.
durable_identity_id: Option<String>Optional explicit binding to the durable identity registry. Generated presence IDs remain independent and unchanged for legacy callers.
status: AgentStatus§status_message: Option<String>§transport: Option<TransportClient>Present only on the presence an MCP server registers for its own
connection. A transport stays listed while its process lives; worker
leases (ctx_agent) expire independently of it.
role_source: Option<RoleSource>Whether role was stated by the agent or its environment, or filled
in by LeanCTX (placeholder, client-name heuristic, coder default).
parent: Option<String>The presence this one was registered next to inside the same MCP process (a subagent shares its parent’s connection): it has its own id, so its reads never consume the parent’s directed messages.
app_session_id: Option<String>The launching app’s session id (LEAN_CTX_SESSION_ID) of the
process that registered this presence, so the app maps presences to
its sessions without walking the process tree.
display_name: Option<String>The name people see for this presence: ctx_agent register’s
name, else the launching app’s session name
(LEAN_CTX_SESSION_NAME). Display only, never an address or a role.
Trait Implementations§
Source§impl Clone for AgentEntry
impl Clone for AgentEntry
Source§impl Debug for AgentEntry
impl Debug for AgentEntry
Source§impl<'de> Deserialize<'de> for AgentEntry
impl<'de> Deserialize<'de> for AgentEntry
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 Forget for AgentEntry
impl Freeze for AgentEntry
impl Move for AgentEntry
impl RefUnwindSafe for AgentEntry
impl Send for AgentEntry
impl Sync for AgentEntry
impl Unpin for AgentEntry
impl UnsafeUnpin for AgentEntry
impl UnwindSafe for AgentEntry
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>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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