Skip to main content

ActorPresenceStore

Struct ActorPresenceStore 

Source
pub struct ActorPresenceStore { /* private fields */ }
Expand description

Manages actor presence stored in .heddle/actor-presence/.

Implementations§

Source§

impl ActorPresenceStore

Source

pub fn new(heddle_dir: &Path) -> Self

Create a store backed by <heddle_dir>/actor-presence/.

Source

pub fn current_entries(&self) -> Result<Vec<ActorPresence>>

Source

pub fn active_entries(&self) -> Result<Vec<ActorPresence>>

Source

pub fn create_generated_entry<F>(&self, build_entry: F) -> Result<ActorPresence>
where F: FnMut(&str) -> Result<ActorPresence>,

Create and persist a new agent entry with a unique generated session ID.

Source

pub fn save(&self, entry: &ActorPresence) -> Result<()>

Persist an agent entry.

Atomic write: uses write-to-temp-then-rename so a crash mid-write never leaves the TOML file truncated or partially written.

Source

pub fn load(&self, session_id: &str) -> Result<Option<ActorPresence>>

Load a single agent entry by session ID.

Source

pub fn list(&self) -> Result<Vec<ActorPresence>>

List all agent entries, most-recently-started first.

Source

pub fn update_status( &self, session_id: &str, status: ActorPresenceStatus, ) -> Result<()>

Update the status of an agent entry in place.

Source

pub fn update_entry<F>( &self, session_id: &str, update: F, ) -> Result<Option<ActorPresence>>
where F: FnMut(&mut ActorPresence),

Mutate an existing agent entry under the registry write lock.

Source

pub fn find_or_create_active_entry<FMatch, FUpdate, FBuild>( &self, matches: FMatch, update_existing: FUpdate, build_entry: FBuild, ) -> Result<(ActorPresence, bool)>
where FMatch: FnMut(&ActorPresence) -> bool, FUpdate: FnMut(&mut ActorPresence), FBuild: FnMut(&str) -> Result<ActorPresence>,

Under one registry write lock, reuse a matching active entry if one exists; otherwise create a new generated entry.

Source

pub fn find_active_by_path( &self, worktree_root: &Path, ) -> Result<Option<ActorPresence>>

Find the active session whose visible or private execution root matches the given worktree root.

Source

pub fn find_active_by_heddle_session_id( &self, heddle_session_id: &str, ) -> Result<Option<ActorPresence>>

Find the active registry entry associated with the given Heddle session ID.

Source

pub fn find_active_by_client_instance_id( &self, client_instance_id: &str, ) -> Result<Option<ActorPresence>>

Find the active registry entry associated with a stable harness-side client instance identifier.

Source

pub fn find_active_by_native_actor_key( &self, native_actor_key: &str, ) -> Result<Option<ActorPresence>>

Find the active registry entry associated with a harness-native actor key.

Source

pub fn actor_chain_for_session( &self, session_id: &str, ) -> Result<Vec<ActorChainNode>>

Return this actor’s native parent chain, ordered root to leaf.

The lookup intentionally follows harness-native actor keys rather than thread names: subagents may work in lightweight directories or forked threads, but the native parent key is the stable “who spawned whom” edge that preserves Human -> agent -> agent attribution.

Source

pub fn find_active_by_native_instance_key_at_path( &self, native_instance_key: &str, worktree_root: &Path, ) -> Result<Option<ActorPresence>>

Find the active registry entry associated with a harness-native instance key inside the given worktree root.

Source

pub fn log_context_query( &self, session_id: &str, query: ContextQueryEntry, ) -> Result<()>

Append a context query to an active session’s log.

Best-effort: silently ignored if the session no longer exists or has completed.

Source

pub fn delete(&self, session_id: &str) -> Result<()>

Delete an agent entry.

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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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 = 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