Skip to main content

AgentInfo

Struct AgentInfo 

Source
pub struct AgentInfo {
    pub id: String,
    pub agent: String,
    pub project: String,
    pub tmux_session: String,
    pub state: AgentState,
    pub unread_mail: u32,
    pub pending_approvals: u32,
    pub is_manager: bool,
    pub display_name: Option<String>,
    pub rate_limit_resets_at: Option<f64>,
    pub last_activity_at: Option<f64>,
    pub reports_to: Option<String>,
}
Expand description

Per-agent fields the UI reads to render the roster + drive selection / detail-pane streaming.

Fields§

§id: String

<project>:<agent> — the canonical id used in teamctl send targets, MCP tool calls, and reports_to chains.

§agent: String

Short agent name within the project (the YAML key).

§project: String

Project id this agent belongs to.

§tmux_session: String

Resolved tmux session name (<prefix><project>-<agent>) — fed to the pane-capture call so the detail pane targets the right session even when tmux_prefix rotates.

§state: AgentState

Process state — Running, Stopped, or Unknown per the supervisor trait. Drives the primary glyph in the roster.

§unread_mail: u32

Count of mailbox messages addressed to this agent that haven’t been ack’d yet. Sourced from the mailbox DB. No longer drives a roster glyph (the unread glyph was dropped in #429); retained for future unread surfacing.

§pending_approvals: u32

Count of request_approval rows still in pending state for this agent. Surfaces the ! glyph when nonzero (highest priority — overrides the process-state glyph).

§is_manager: bool

true for managers (is_manager: true in compose), used when the roster wants to draw a tier separator. Read but unused in PR-UI-2; kept on the struct so PR-UI-4’s approvals modal can route based on tier without a second compose lookup.

§display_name: Option<String>

T-160: optional human-friendly label from team-compose.yaml. When Some, the TUI renders this in place of id everywhere an agent label surfaces to the operator (roster, detail header, mailbox attribution, statusline, approvals, compose modal). When None, label falls back to id. The id stays canonical for routing/tmux/CLI.

§rate_limit_resets_at: Option<f64>

T-212: most recent rate-limit reset timestamp (unix epoch seconds) for this agent, sourced from the rate_limits table populated by teamctl rl-watch. None when rl-watch has never recorded a resets_at for this agent. The TUI status bar formats this against now() via format_rate_limit_window to render “5m 12s” / “1h 23m” — past timestamps render as None (no active limit).

§last_activity_at: Option<f64>

#428: unix epoch seconds of this agent’s activity-heartbeat marker mtime (see team_core::render::heartbeat_path), or None when the marker is absent — the agent has done nothing since boot, or is a non-claude runtime that gets no heartbeat hooks. The agent is Working when this is fresh within HEARTBEAT_FRESH_SECS (see is_working), else Idle — a UI sub-state of Running. #429 (C2b) renders the working/idle glyph from it.

§reports_to: Option<String>

T-211: short agent name (the YAML key in the manager’s project) this agent reports to. None for top-level agents (no parent) — they render at depth 0 in the Agents pane. When Some, the renderer nests this row under its manager with a tree glyph. Schema validation (team-core/src/validate.rs) guarantees the referenced name resolves to an existing agent.

Trait Implementations§

Source§

impl Clone for AgentInfo

Source§

fn clone(&self) -> AgentInfo

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AgentInfo

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more