pub struct PanelManager {Show 17 fields
pub focused: PanelId,
pub panel_states: HashMap<PanelId, PanelState>,
pub scroll_offsets: HashMap<PanelId, u16>,
pub task_order: Vec<TaskId>,
pub tasks: HashMap<TaskId, TaskView>,
pub selected_task_idx: usize,
pub output_lines: Vec<String>,
pub output_auto_scroll: bool,
pub explain_summary: Option<String>,
pub transient_status: Option<String>,
pub gate_results: Vec<(String, bool, Option<String>)>,
pub copy_mode: bool,
pub run_id: Option<Uuid>,
pub objective: Option<String>,
pub run_state: Option<RunState>,
pub show_help: bool,
pub continuation_payload: Option<ContinuationPayload>,
/* private fields */
}Expand description
Retained state for the dashboard panels.
Fields§
§focused: PanelIdWhich panel has focus.
panel_states: HashMap<PanelId, PanelState>Per-panel visual state.
scroll_offsets: HashMap<PanelId, u16>Per-panel scroll offset (lines from top).
task_order: Vec<TaskId>Task list: ordered task IDs.
tasks: HashMap<TaskId, TaskView>Task list: task views keyed by ID.
selected_task_idx: usizeSelected task index in task_order (for cursor).
output_lines: Vec<String>Output lines for the selected task (view into per-task buffer).
output_auto_scroll: boolWhether output auto-scrolls (true until user scrolls up).
explain_summary: Option<String>Current “Why Not Done?” summary.
transient_status: Option<String>Latest transient status (heartbeat/progress) from scheduler.
gate_results: Vec<(String, bool, Option<String>)>Gate results (gate_name -> passed).
copy_mode: boolWhether copy mode is active (strips borders, disables mouse capture).
run_id: Option<Uuid>Current run ID being displayed.
objective: Option<String>Current run objective.
run_state: Option<RunState>Current run state.
show_help: boolHelp overlay visible.
continuation_payload: Option<ContinuationPayload>Continuation payload from run exit.
Implementations§
Source§impl PanelManager
impl PanelManager
pub fn new() -> Self
Sourcepub fn focus_next(&mut self)
pub fn focus_next(&mut self)
Cycle focus to the next panel (Tab).
Sourcepub fn focus_prev(&mut self)
pub fn focus_prev(&mut self)
Cycle focus to the previous panel (Shift+Tab).
Sourcepub fn focus_panel(&mut self, panel: PanelId)
pub fn focus_panel(&mut self, panel: PanelId)
Jump to panel by shortcut number.
Sourcepub fn panel_state(&self, panel: PanelId) -> PanelState
pub fn panel_state(&self, panel: PanelId) -> PanelState
Get panel state, defaulting to Expanded.
Sourcepub fn collapse_focused(&mut self)
pub fn collapse_focused(&mut self)
Collapse the focused panel.
Sourcepub fn expand_focused(&mut self)
pub fn expand_focused(&mut self)
Expand the focused panel.
Sourcepub fn restore_all(&mut self)
pub fn restore_all(&mut self)
Restore all panels to expanded.
Sourcepub fn select_next_task(&mut self)
pub fn select_next_task(&mut self)
Move task list cursor down.
Sourcepub fn select_prev_task(&mut self)
pub fn select_prev_task(&mut self)
Move task list cursor up.
Sourcepub fn selected_task(&self) -> Option<&TaskView>
pub fn selected_task(&self) -> Option<&TaskView>
Get the currently selected task.
Sourcepub fn scroll_down(&mut self, lines: u16)
pub fn scroll_down(&mut self, lines: u16)
Scroll the focused panel down by N lines.
Sourcepub fn scroll_to_top(&mut self)
pub fn scroll_to_top(&mut self)
Scroll to top of focused panel.
Sourcepub fn scroll_to_bottom(&mut self)
pub fn scroll_to_bottom(&mut self)
Scroll to bottom of focused panel (re-engages auto-scroll for output).
Sourcepub fn update_task(
&mut self,
task_id: TaskId,
name: &str,
state: TaskState,
elapsed: Option<Duration>,
blocked_by: Option<Vec<String>>,
)
pub fn update_task( &mut self, task_id: TaskId, name: &str, state: TaskState, elapsed: Option<Duration>, blocked_by: Option<Vec<String>>, )
Update a task’s state from a stream event.
Sourcepub fn append_output(&mut self, task_id: TaskId, line: String)
pub fn append_output(&mut self, task_id: TaskId, line: String)
Append an output line for a task.
Sourcepub fn task_summary(&self) -> TaskSummary
pub fn task_summary(&self) -> TaskSummary
Get total number of tasks in each state for the status bar.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PanelManager
impl RefUnwindSafe for PanelManager
impl Send for PanelManager
impl Sync for PanelManager
impl Unpin for PanelManager
impl UnsafeUnpin for PanelManager
impl UnwindSafe for PanelManager
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request