Skip to main content

SubagentRegistry

Struct SubagentRegistry 

Source
pub struct SubagentRegistry { /* private fields */ }

Implementations§

Source§

impl SubagentRegistry

Source

pub fn new() -> Self

Source

pub fn archive_path(&self, id: &str) -> Option<PathBuf>

Resume archive of id, whether its handle is still live or was reaped.

Source

pub fn register(&mut self, handle: SubagentHandle) -> String

Register a handle and return its id.

Source

pub fn register_with_cancellation( &mut self, handle: SubagentHandle, origin: Option<&CancellationToken>, ) -> String

Source

pub fn set_spawn_cancellation( &mut self, cancel: Option<CancellationToken>, ) -> u64

Frontend-owned launch fence. Model tools cannot clear or replace it.

Source

pub fn cancel_spawn_epoch(&mut self, epoch: u64)

A stale deadline/Drop must not cancel workers belonging to newer work.

Source

pub fn get(&self, id: &str) -> Option<&SubagentHandle>

Source

pub fn get_mut(&mut self, id: &str) -> Option<&mut SubagentHandle>

Source

pub fn remove(&mut self, id: &str) -> Option<SubagentHandle>

Source

pub fn release_finished_resources(&mut self, id: &str)

Drop finished execution transports and resumable context while retaining bounded terminal diagnostics and output under normal session retention.

Source

pub fn list_active(&self) -> Vec<(String, String, SubagentStatus)>

Returns (id, agent_name, status) for every tracked handle.

Source

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.

Source

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).

Source

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. Orchestration-required expired handles become bounded tombstones instead of being removed; a later collect/reconcile makes them normally reapable.

Source

pub fn cleanup_finished_with_ttl_and_retention( &mut self, ttl: Duration, retain_unreconciled: impl Fn(&str) -> bool, )

Reap normally, except that an expired uncollected handle still required by orchestration is downgraded to a bounded, collectible tombstone.

Source

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

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for SubagentRegistry

Source§

fn default() -> Self

Returns the “default value” for a type. 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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &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
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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