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>,
}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: StringShort agent name within the project (the YAML key).
project: StringProject id this agent belongs to.
tmux_session: StringResolved 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: AgentStateProcess state — Running, Stopped, or Unknown per the
supervisor trait. Drives the primary glyph in the roster.
unread_mail: u32Count of mailbox messages addressed to this agent that haven’t
been ack’d yet. Surfaces the ✉ glyph when nonzero.
pending_approvals: u32Count of request_approval rows still in pending state for
this agent. Surfaces the ! glyph when nonzero (highest
priority — overrides the unread-mail glyph).
is_manager: booltrue 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.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AgentInfo
impl RefUnwindSafe for AgentInfo
impl Send for AgentInfo
impl Sync for AgentInfo
impl Unpin for AgentInfo
impl UnsafeUnpin for AgentInfo
impl UnwindSafe for AgentInfo
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,
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