pub struct App {Show 17 fields
pub input: String,
pub cursor_position: usize,
pub output_lines: Vec<String>,
pub scroll: u16,
pub auto_scroll: bool,
pub focus: FocusPanel,
pub todo_scroll: u16,
pub input_scroll: u16,
pub should_quit: bool,
pub workflow_rx: UnboundedReceiver<TuiMessage>,
pub workflow_tx: UnboundedSender<TuiMessage>,
pub workflow_running: bool,
pub config_toml: Option<String>,
pub secrets: Option<HashMap<String, String>>,
pub build_info: Option<BuildInfo>,
pub resume_info: Option<ResumeInfo>,
pub todo_lines: Vec<String>,
/* private fields */
}Expand description
Main application state for the TUI
Fields§
§input: StringInput buffer for user commands
cursor_position: usizeCursor position in input buffer (char index, not byte offset)
output_lines: Vec<String>Output log lines
scroll: u16Scroll position in output (vertical). u16::MAX = auto-follow bottom.
auto_scroll: boolWhether auto-scroll is enabled (follows new output)
focus: FocusPanelWhich panel has keyboard focus (Tab cycles)
todo_scroll: u16Scroll position in todo panel
input_scroll: u16Manual scroll offset for input box (user-driven)
should_quit: boolWhether the app should quit
workflow_rx: UnboundedReceiver<TuiMessage>Receiver for messages from async workflows
workflow_tx: UnboundedSender<TuiMessage>Sender for messages from async workflows (clone and pass to workflow runners)
workflow_running: boolWhether a workflow is currently running
config_toml: Option<String>Configuration TOML for ABK workflows (Task 50)
secrets: Option<HashMap<String, String>>Secrets for ABK workflows (Task 50)
build_info: Option<BuildInfo>Build info for ABK workflows (Task 50)
resume_info: Option<ResumeInfo>Resume info from the last completed task for session continuity
todo_lines: Vec<String>Latest todo list from LLM todowrite tool
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for App
impl RefUnwindSafe for App
impl Send for App
impl Sync for App
impl Unpin for App
impl UnsafeUnpin 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> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
self file descriptor. Read moreSource§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