pub struct BrokerStateInner {
pub agents: HashMap<String, AgentRecord>,
pub agent_clis: HashMap<String, String>,
pub queues: HashMap<String, Vec<(u64, BrokerMessage)>>,
pub message_log: Vec<(u64, SystemTime, BrokerMessage)>,
pub republish_working_ttl: Duration,
pub watched_paths: HashSet<PathBuf>,
}Expand description
Mutable broker state protected by an RwLock.
Fields§
§agents: HashMap<String, AgentRecord>Known agents keyed by agent ID.
agent_clis: HashMap<String, String>CLI label per agent, populated from WatchTarget at broker start.
queues: HashMap<String, Vec<(u64, BrokerMessage)>>Per-agent message inboxes: (sequence_number, message).
message_log: Vec<(u64, SystemTime, BrokerMessage)>Append-only message log for disk flush.
republish_working_ttl: DurationPost-commit re-entry TTL for the filesystem watcher (bug 8).
A file modification observed within this window after an agent’s
committed event re-publishes working. Duration::ZERO disables
the behaviour (v0.5.0 model). Defaults to 60s; overwritten from
[broker.watcher].republish_working_ttl_seconds at broker start.
watched_paths: HashSet<PathBuf>Worktree paths the broker is currently watching, for idempotent live
registration via POST /watch. Seeded with the start-time watch
targets in start_broker_with and extended at runtime by
BrokerState::register_watch_target. A vanished worktree is pruned
by its watcher task (see watcher::watch_worktree), so re-adding the
same path later spawns a fresh watcher.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BrokerStateInner
impl RefUnwindSafe for BrokerStateInner
impl Send for BrokerStateInner
impl Sync for BrokerStateInner
impl Unpin for BrokerStateInner
impl UnsafeUnpin for BrokerStateInner
impl UnwindSafe for BrokerStateInner
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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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