pub struct App {Show 22 fields
pub project_root: Option<PathBuf>,
pub session_name: String,
pub session: Option<SpawnSession>,
pub selected: usize,
pub view_mode: ViewMode,
pub show_help: bool,
pub error: Option<String>,
pub live_output: Vec<String>,
pub input_buffer: String,
pub scroll_offset: usize,
pub auto_scroll: bool,
pub focused_panel: FocusedPanel,
pub waves: Vec<Wave>,
pub selected_tasks: HashSet<String>,
pub wave_task_index: usize,
pub wave_scroll_offset: usize,
pub agents_scroll_offset: usize,
pub active_tag: Option<String>,
pub ralph_mode: bool,
pub ralph_max_parallel: usize,
pub swarm_mode: bool,
pub swarm_session_data: Option<SwarmSession>,
/* private fields */
}Expand description
Application state
Fields§
§project_root: Option<PathBuf>Project root directory
session_name: StringSession name being monitored
session: Option<SpawnSession>Current spawn session data
selected: usizeSelected agent index
view_mode: ViewModeCurrent view mode
show_help: boolShow help overlay
error: Option<String>Error message to display
live_output: Vec<String>Live terminal output for selected agent (cached)
input_buffer: StringInput buffer for sending commands to agent
scroll_offset: usizeScroll offset for terminal output (0 = bottom, positive = scrolled up)
auto_scroll: boolAuto-scroll to bottom on new output
focused_panel: FocusedPanelWhich panel is currently focused
waves: Vec<Wave>Execution waves with tasks
selected_tasks: HashSet<String>Selected task IDs for batch spawning
wave_task_index: usizeSelected task index within waves panel
wave_scroll_offset: usizeScroll offset for waves panel (first visible line)
agents_scroll_offset: usizeScroll offset for agents panel (first visible line)
active_tag: Option<String>Active tag for loading waves
ralph_mode: boolWhether Ralph mode is enabled (auto-spawn ready tasks)
ralph_max_parallel: usizeMaximum parallel agents in Ralph mode
swarm_mode: boolWhether we’re monitoring a swarm session (vs spawn session)
swarm_session_data: Option<SwarmSession>Swarm session data (when swarm_mode is true)
Implementations§
Source§impl App
impl App
Sourcepub fn new(
project_root: Option<PathBuf>,
session_name: &str,
swarm_mode: bool,
) -> Result<Self>
pub fn new( project_root: Option<PathBuf>, session_name: &str, swarm_mode: bool, ) -> Result<Self>
Create new app state
Sourcepub fn refresh(&mut self) -> Result<()>
pub fn refresh(&mut self) -> Result<()>
Refresh session data from disk and update agent statuses
Sourcepub fn refresh_live_output(&mut self)
pub fn refresh_live_output(&mut self)
Refresh live output from the selected agent’s tmux pane
Sourcepub fn toggle_ralph_mode(&mut self)
pub fn toggle_ralph_mode(&mut self)
Toggle Ralph mode (autonomous wave execution)
Sourcepub fn agents(&self) -> &[AgentState]
pub fn agents(&self) -> &[AgentState]
Get agents list
Sourcepub fn next_agent(&mut self)
pub fn next_agent(&mut self)
Select next agent
Sourcepub fn previous_agent(&mut self)
pub fn previous_agent(&mut self)
Select previous agent
Sourcepub fn adjust_agents_scroll(&mut self)
pub fn adjust_agents_scroll(&mut self)
Adjust agents scroll offset to keep selected agent visible Assumes roughly 8 visible lines in the agents panel
Sourcepub fn toggle_fullscreen(&mut self)
pub fn toggle_fullscreen(&mut self)
Toggle fullscreen mode
Sourcepub fn exit_fullscreen(&mut self)
pub fn exit_fullscreen(&mut self)
Exit current mode (go back to split)
Sourcepub fn enter_input_mode(&mut self)
pub fn enter_input_mode(&mut self)
Enter input mode
Sourcepub fn input_char(&mut self, c: char)
pub fn input_char(&mut self, c: char)
Add character to input buffer
Sourcepub fn input_backspace(&mut self)
pub fn input_backspace(&mut self)
Delete last character from input buffer
Sourcepub fn send_input(&mut self) -> Result<()>
pub fn send_input(&mut self) -> Result<()>
Send the input buffer to the selected agent’s tmux pane
Sourcepub fn restart_agent(&mut self) -> Result<()>
pub fn restart_agent(&mut self) -> Result<()>
Restart the selected agent (kill and respawn claude)
Sourcepub fn toggle_help(&mut self)
pub fn toggle_help(&mut self)
Toggle help overlay
Sourcepub fn scroll_down(&mut self, lines: usize)
pub fn scroll_down(&mut self, lines: usize)
Scroll terminal output down (show newer content)
Sourcepub fn scroll_to_bottom(&mut self)
pub fn scroll_to_bottom(&mut self)
Jump to bottom of terminal output
Sourcepub fn status_counts(&self) -> (usize, usize, usize, usize)
pub fn status_counts(&self) -> (usize, usize, usize, usize)
Get status counts (starting, running, completed, failed)
Sourcepub fn selected_agent(&self) -> Option<&AgentState>
pub fn selected_agent(&self) -> Option<&AgentState>
Get the selected agent (if any)
Sourcepub fn refresh_waves(&mut self)
pub fn refresh_waves(&mut self)
Refresh waves data from phases
Sourcepub fn all_wave_tasks(&self) -> Vec<&WaveTask>
pub fn all_wave_tasks(&self) -> Vec<&WaveTask>
Get flat list of all tasks in waves for navigation
Sourcepub fn selected_wave_task(&self) -> Option<&WaveTask>
pub fn selected_wave_task(&self) -> Option<&WaveTask>
Get currently selected wave task
Sourcepub fn next_panel(&mut self)
pub fn next_panel(&mut self)
Switch focus to next panel
Sourcepub fn previous_panel(&mut self)
pub fn previous_panel(&mut self)
Switch focus to previous panel
Sourcepub fn toggle_task_selection(&mut self)
pub fn toggle_task_selection(&mut self)
Toggle selection of currently highlighted task
Sourcepub fn select_all_ready(&mut self)
pub fn select_all_ready(&mut self)
Select all ready tasks in waves
Sourcepub fn clear_selection(&mut self)
pub fn clear_selection(&mut self)
Clear all task selections
Sourcepub fn ready_task_count(&self) -> usize
pub fn ready_task_count(&self) -> usize
Get count of ready tasks
Sourcepub fn selected_task_count(&self) -> usize
pub fn selected_task_count(&self) -> usize
Get count of selected tasks
Sourcepub fn get_selected_tasks(&self) -> Vec<&WaveTask>
pub fn get_selected_tasks(&self) -> Vec<&WaveTask>
Get selected tasks for spawning
Sourcepub fn spawn_selected_tasks(&mut self) -> Result<usize>
pub fn spawn_selected_tasks(&mut self) -> Result<usize>
Spawn the selected tasks Returns the number of tasks successfully spawned
Sourcepub fn prepare_swarm_start(&self) -> Option<(String, String)>
pub fn prepare_swarm_start(&self) -> Option<(String, String)>
Prepare to start swarm - returns swarm command and tag
Sourcepub fn set_selected_task_status(&mut self, new_status: TaskStatus) -> Result<()>
pub fn set_selected_task_status(&mut self, new_status: TaskStatus) -> Result<()>
Update the status of the currently selected agent’s task
Auto Trait Implementations§
impl Freeze for App
impl RefUnwindSafe for App
impl Send for App
impl Sync for App
impl Unpin for App
impl UnwindSafe for App
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> 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