pub struct SubagentRegistry { /* private fields */ }Implementations§
Source§impl SubagentRegistry
impl SubagentRegistry
pub fn new() -> SubagentRegistry
Sourcepub fn register(&mut self, handle: SubagentHandle) -> String
pub fn register(&mut self, handle: SubagentHandle) -> String
Register a handle and return its id.
pub fn get(&self, id: &str) -> Option<&SubagentHandle>
pub fn get_mut(&mut self, id: &str) -> Option<&mut SubagentHandle>
pub fn remove(&mut self, id: &str) -> Option<SubagentHandle>
Sourcepub fn list_active(&self) -> Vec<(String, String, SubagentStatus)>
pub fn list_active(&self) -> Vec<(String, String, SubagentStatus)>
Returns (id, agent_name, status) for every tracked handle.
Sourcepub fn display_rows(&self) -> Vec<SubagentDisplayRow>
pub fn display_rows(&self) -> Vec<SubagentDisplayRow>
Snapshot of every tracked handle for TUI reconcile. Reads all state under the lock POISON-SAFE; exposes cancel_requested which list_active() does not.
Sourcepub fn iter_mut_handles(&mut self) -> impl Iterator<Item = &mut SubagentHandle>
pub fn iter_mut_handles(&mut self) -> impl Iterator<Item = &mut SubagentHandle>
Drop handles that are no longer running. Iterate over all handles mutably (for bulk operations like cancel-all).
Sourcepub fn cleanup_finished_with_ttl(&mut self, ttl: Duration)
pub fn cleanup_finished_with_ttl(&mut self, ttl: Duration)
Reap a finished handle iff:
(a) its result was collected via subagent_collect, OR
(b) it has been finished longer than ttl (abandoned).
Finished-but-uncollected handles inside the TTL are RETAINED so the
completion event can wake the parent and collect still succeeds.
Additionally, handles whose OS thread is still running (e.g. still in the finalizer path) are deferred — joining a live thread blocks the TUI loop. They will be reaped on the next cleanup pass once the thread exits.
Sourcepub fn cleanup_finished(&mut self)
pub fn cleanup_finished(&mut self)
Reap finished handles using the production TTL. Finished-but-uncollected handles within the TTL window are retained.
Trait Implementations§
Source§impl Debug for SubagentRegistry
impl Debug for SubagentRegistry
Source§impl Default for SubagentRegistry
impl Default for SubagentRegistry
Source§fn default() -> SubagentRegistry
fn default() -> SubagentRegistry
Auto Trait Implementations§
impl !RefUnwindSafe for SubagentRegistry
impl !UnwindSafe for SubagentRegistry
impl Freeze for SubagentRegistry
impl Send for SubagentRegistry
impl Sync for SubagentRegistry
impl Unpin for SubagentRegistry
impl UnsafeUnpin for SubagentRegistry
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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.Source§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.Source§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.Source§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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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