pub struct AppState {Show 18 fields
pub input: InputState,
pub view: ViewState,
pub selection: SelectionState,
pub web: WebState,
pub agents: HashMap<String, MonitoredAgent>,
pub agent_order: Vec<String>,
pub sort_by: SortBy,
pub monitor_scope: MonitorScope,
pub current_session: Option<String>,
pub current_window: Option<u32>,
pub teams: HashMap<String, TeamSnapshot>,
pub target_to_pane_id: HashMap<String, String>,
pub create_process: Option<CreateProcessState>,
pub confirmation_state: Option<ConfirmationState>,
pub error_message: Option<String>,
pub last_poll: Option<DateTime<Utc>>,
pub running: bool,
pub show_activity_name: bool,
}Expand description
Application state
Fields§
§input: InputStateInput-related state
view: ViewStateUI view state (overlays, scroll, animations)
selection: SelectionStateSelection/navigation state
web: WebStateWeb-related state
agents: HashMap<String, MonitoredAgent>All monitored agents by target ID
agent_order: Vec<String>Order of agents for display
sort_by: SortByCurrent sort method
monitor_scope: MonitorScopeMonitor scope for filtering panes
current_session: Option<String>Current session name (for scope display)
current_window: Option<u32>Current window index (for scope display)
teams: HashMap<String, TeamSnapshot>Team snapshots by team name
target_to_pane_id: HashMap<String, String>Mapping of tmux target (e.g. “main:0.1”) to pane_id (e.g. “5”) for IPC
create_process: Option<CreateProcessState>Create process flow state (None if not in create mode)
confirmation_state: Option<ConfirmationState>Confirmation dialog state (None if not showing)
error_message: Option<String>Error message to display
last_poll: Option<DateTime<Utc>>Last poll timestamp
running: boolWhether the app is running
show_activity_name: boolShow activity name (tool/verb) during Processing instead of generic “Processing”
Implementations§
Source§impl AppState
impl AppState
Sourcepub fn tick_spinner(&mut self)
pub fn tick_spinner(&mut self)
Advance the spinner animation frame (time-based, ~150ms per frame)
Sourcepub fn spinner_char(&self) -> char
pub fn spinner_char(&self) -> char
Get the current spinner character
Sourcepub fn tick_marquee(&mut self)
pub fn tick_marquee(&mut self)
Advance the marquee scroll offset (time-based)
Sourcepub fn reset_marquee(&mut self, new_id: Option<String>)
pub fn reset_marquee(&mut self, new_id: Option<String>)
Reset marquee state when selection changes
Sourcepub fn marquee_offset(&self) -> usize
pub fn marquee_offset(&self) -> usize
Get the current marquee scroll offset
Create a shared state
Sourcepub fn selected_agent(&self) -> Option<&MonitoredAgent>
pub fn selected_agent(&self) -> Option<&MonitoredAgent>
Get the currently selected agent
Sourcepub fn selected_agent_mut(&mut self) -> Option<&mut MonitoredAgent>
pub fn selected_agent_mut(&mut self) -> Option<&mut MonitoredAgent>
Get a mutable reference to the selected agent
Sourcepub fn selected_target(&self) -> Option<&str>
pub fn selected_target(&self) -> Option<&str>
Get the selected agent’s target ID
Sourcepub fn update_agents(&mut self, agents: Vec<MonitoredAgent>)
pub fn update_agents(&mut self, agents: Vec<MonitoredAgent>)
Update agents from a new list
Sourcepub fn cycle_sort(&mut self)
pub fn cycle_sort(&mut self)
Cycle through sort methods
Sourcepub fn cycle_monitor_scope(&mut self)
pub fn cycle_monitor_scope(&mut self)
Cycle through monitor scopes
Sourcepub fn get_group_key(&self, agent: &MonitoredAgent) -> Option<String>
pub fn get_group_key(&self, agent: &MonitoredAgent) -> Option<String>
Get the current group key for an agent (for display headers)
Sourcepub fn toggle_group_collapse(&mut self, group_key: &str)
pub fn toggle_group_collapse(&mut self, group_key: &str)
Toggle collapse state for a group
Sourcepub fn is_group_collapsed(&self, group_key: &str) -> bool
pub fn is_group_collapsed(&self, group_key: &str) -> bool
Check if a group is collapsed
Sourcepub fn select_previous(&mut self)
pub fn select_previous(&mut self)
Move selection up
Sourcepub fn select_next(&mut self)
pub fn select_next(&mut self)
Move selection down
Sourcepub fn select_first(&mut self)
pub fn select_first(&mut self)
Select first entry
Sourcepub fn select_last(&mut self)
pub fn select_last(&mut self)
Select last entry
Sourcepub fn update_selectable_entries(
&mut self,
selectable_count: usize,
agent_index: Option<usize>,
)
pub fn update_selectable_entries( &mut self, selectable_count: usize, agent_index: Option<usize>, )
Update selectable count and sync entry index
Sourcepub fn get_known_directories(&self) -> Vec<String>
pub fn get_known_directories(&self) -> Vec<String>
Get all unique directories from current agents
Sourcepub fn toggle_help(&mut self)
pub fn toggle_help(&mut self)
Toggle help screen
Sourcepub fn get_web_url(&self) -> Option<String>
pub fn get_web_url(&self) -> Option<String>
Get web URL for QR code
In WSL environments, returns Windows host IP instead of WSL internal IP, since external devices (phones) cannot access WSL’s internal network directly.
Sourcepub fn scroll_help_down(&mut self, amount: u16)
pub fn scroll_help_down(&mut self, amount: u16)
Scroll help screen down
Sourcepub fn scroll_help_up(&mut self, amount: u16)
pub fn scroll_help_up(&mut self, amount: u16)
Scroll help screen up
Sourcepub fn scroll_preview_down(&mut self, amount: u16)
pub fn scroll_preview_down(&mut self, amount: u16)
Scroll preview down
Sourcepub fn scroll_preview_up(&mut self, amount: u16)
pub fn scroll_preview_up(&mut self, amount: u16)
Scroll preview up
Sourcepub fn agents_needing_attention(&self) -> Vec<&MonitoredAgent>
pub fn agents_needing_attention(&self) -> Vec<&MonitoredAgent>
Get agents that need attention (awaiting approval or error)
Sourcepub fn attention_count(&self) -> usize
pub fn attention_count(&self) -> usize
Get count of agents needing attention
Sourcepub fn clear_error(&mut self)
pub fn clear_error(&mut self)
Clear error message
Sourcepub fn enter_input_mode(&mut self)
pub fn enter_input_mode(&mut self)
Enter input mode
Sourcepub fn enter_passthrough_mode(&mut self)
pub fn enter_passthrough_mode(&mut self)
Enter passthrough mode
Sourcepub fn exit_input_mode(&mut self)
pub fn exit_input_mode(&mut self)
Exit input mode and clear buffer
Sourcepub fn is_input_mode(&self) -> bool
pub fn is_input_mode(&self) -> bool
Check if in input mode
Sourcepub fn is_passthrough_mode(&self) -> bool
pub fn is_passthrough_mode(&self) -> bool
Check if in passthrough mode
Sourcepub fn get_cursor_position(&self) -> usize
pub fn get_cursor_position(&self) -> usize
Get cursor position
Sourcepub fn input_char(&mut self, c: char)
pub fn input_char(&mut self, c: char)
Insert a character at cursor position
Sourcepub fn input_backspace(&mut self)
pub fn input_backspace(&mut self)
Delete character before cursor (backspace)
Sourcepub fn input_delete(&mut self)
pub fn input_delete(&mut self)
Delete character at cursor (delete key)
Sourcepub fn cursor_left(&mut self)
pub fn cursor_left(&mut self)
Move cursor left
Sourcepub fn cursor_right(&mut self)
pub fn cursor_right(&mut self)
Move cursor right
Sourcepub fn cursor_home(&mut self)
pub fn cursor_home(&mut self)
Move cursor to start
Sourcepub fn cursor_end(&mut self)
pub fn cursor_end(&mut self)
Move cursor to end
Sourcepub fn take_input(&mut self) -> String
pub fn take_input(&mut self) -> String
Take the input buffer content and clear it
Sourcepub fn start_create_process(
&mut self,
group_key: String,
panes: Vec<PaneInfo>,
config: &CreateProcessSettings,
)
pub fn start_create_process( &mut self, group_key: String, panes: Vec<PaneInfo>, config: &CreateProcessSettings, )
Start create process flow from a group
Sourcepub fn toggle_tree_node(&mut self, key: &str)
pub fn toggle_tree_node(&mut self, key: &str)
Toggle a node’s collapsed state in the create process tree
Sourcepub fn cancel_create_process(&mut self)
pub fn cancel_create_process(&mut self)
Cancel create process flow
Sourcepub fn is_create_process_mode(&self) -> bool
pub fn is_create_process_mode(&self) -> bool
Check if in create process mode
Sourcepub fn show_confirmation(&mut self, action: ConfirmAction, message: String)
pub fn show_confirmation(&mut self, action: ConfirmAction, message: String)
Show a confirmation dialog
Sourcepub fn cancel_confirmation(&mut self)
pub fn cancel_confirmation(&mut self)
Cancel the confirmation dialog
Sourcepub fn is_showing_confirmation(&self) -> bool
pub fn is_showing_confirmation(&self) -> bool
Check if confirmation dialog is showing
Sourcepub fn get_confirmation_action(&self) -> Option<ConfirmAction>
pub fn get_confirmation_action(&self) -> Option<ConfirmAction>
Get the confirmation action (for execution)
Sourcepub fn create_process_cursor_up(&mut self)
pub fn create_process_cursor_up(&mut self)
Move cursor up in create process popup (skips headers in directory step)
Sourcepub fn create_process_cursor_down(&mut self, max: usize)
pub fn create_process_cursor_down(&mut self, max: usize)
Move cursor down in create process popup (skips headers in directory step)
Sourcepub fn create_process_cursor(&self) -> usize
pub fn create_process_cursor(&self) -> usize
Get create process cursor position
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 UnsafeUnpin 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> 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.