pub struct AppState {Show 23 fields
pub auth_key: String,
pub version: String,
pub app_path: String,
pub wstore: Arc<WaveStore>,
pub filestore: Arc<FileStore>,
pub event_bus: Arc<EventBus>,
pub broker: Arc<Broker>,
pub reactive_handler: &'static ReactiveHandler,
pub poller: Arc<Poller>,
pub config_watcher: Arc<ConfigWatcher>,
pub messagebus: Arc<MessageBus>,
pub subagent_watcher: Arc<SubagentWatcher>,
pub history_service: Arc<HistoryService>,
pub process_tracker: Arc<AgentProcessRegistry>,
pub lan_discovery: Option<Arc<LanDiscovery>>,
pub local_web_url: String,
pub http_client: Client,
pub srv_state: Arc<Mutex<State>>,
pub srv_events_tx: Sender<Event>,
pub saga_id_alloc: Arc<AtomicU64>,
pub saga_log: Arc<SagaLog>,
pub auth_session_manager: Arc<AuthSessionManager>,
pub install_sessions: Arc<InstallSessionRegistry>,
}Fields§
§auth_key: String§version: String§app_path: String§wstore: Arc<WaveStore>§filestore: Arc<FileStore>§event_bus: Arc<EventBus>§broker: Arc<Broker>§reactive_handler: &'static ReactiveHandler§poller: Arc<Poller>§config_watcher: Arc<ConfigWatcher>§messagebus: Arc<MessageBus>§subagent_watcher: Arc<SubagentWatcher>§history_service: Arc<HistoryService>§process_tracker: Arc<AgentProcessRegistry>Tracks every OS-level process each agent CLI has spawned, via
platform-specific mechanisms (Windows Job Objects, Linux cgroups,
macOS process groups). Surfaces the tree to the swarm pane and
provides kill-tree on pane close / host exit.
See backend::process_tracker + agentmux-ai/AGENT_SPAWNED_PROCESSES_SPEC.md.
lan_discovery: Option<Arc<LanDiscovery>>§local_web_url: StringLocal HTTP URL of this instance (e.g. “http://127.0.0.1:PORT”). Used for cross-instance inject forwarding and file registry entries.
http_client: ClientShared HTTP client for cross-instance inject forwarding.
srv_state: Arc<Mutex<State>>Phase E.2c.2 — srv reducer’s canonical state. Workspace HTTP/WS
RPC handlers route through the reducer (dispatch
Command::Create/Delete/...Workspace and read out of
state.workspaces); the persist subscriber mirrors emitted
events back to SQLite. Tab/Block RPC migrations land in
E.2c.3 / E.2c.4.
srv_events_tx: Sender<Event>Phase E.2c.2 — broadcast bus for srv reducer events. RPC handlers publish reducer-emitted events here so the persist subscriber writes them back to SQLite. Pipe IPC server (when bound) shares the same bus.
saga_id_alloc: Arc<AtomicU64>Phase E.5.5 — monotonic saga-id allocator. Each saga
(TearOffTab, TearOffBlock, RestoreTornOffTab, etc.) calls
fetch_add to claim a unique id; the id is stamped onto
Event::SagaStarted/Completed/Failed so subscribers can
correlate. Per-instance scope (no cross-process sharing — see
docs/retro/saga-coordinator-location-analysis-2026-04-30.md).
saga_log: Arc<SagaLog>Saga durability — durable on-disk log of saga lifecycle.
Written by SagaCtx::dispatch / compensate (per-step) and
emit_terminal (per-saga) so a srv crash mid-saga leaves a
recoverable trail. PR 1 ships the log + instrumentation; PR 2
adds resume-on-startup + --diag sagas.
See docs/specs/SPEC_SAGA_DURABILITY_2026-05-01.md.
auth_session_manager: Arc<AuthSessionManager>Pre-launch OAuth session state — one entry per in-flight
“Connect with OAuth” attempt from the launch modal. See
docs/specs/SPEC_PRE_LAUNCH_OAUTH_FLOW_2026_05_14.md.
install_sessions: Arc<InstallSessionRegistry>In-flight install.start sessions. Frontend subscribes to
install_chunk WPS events scoped by session id; the registry
holds per-session cancel handles so install.cancel can abort
an install mid-flight.
See SPEC_AGENT_INSTALL_STAGE_2026_05_17.md §9.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AppState
impl !RefUnwindSafe for AppState
impl Send for AppState
impl Sync for AppState
impl Unpin for AppState
impl !UnwindSafe for AppState
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.