pub enum CassMsg {
Show 192 variants
TerminalEvent(TerminalEventPayload),
QueryChanged(String),
QueryCleared,
QueryLineKilled,
QueryForwardKilled,
QueryWordDeleted,
QuerySubmitted,
SearchRequested,
SearchMoreRequested,
SearchCompleted {
generation: u64,
pass: SearchPass,
requested_limit: usize,
hits: Vec<SearchHit>,
elapsed_ms: u128,
suggestions: Vec<QuerySuggestion>,
wildcard_fallback: bool,
append: bool,
},
SearchFailed {
generation: u64,
error: String,
},
SearchRefinementFailed {
generation: u64,
latency_ms: u128,
error: String,
},
SearchStreamFinished {
generation: u64,
},
CursorMoved {
delta: i32,
},
CursorWordMoved {
forward: bool,
},
DeleteForward,
CursorJumped {
to_end: bool,
},
WildcardFallbackToggled,
FilterAgentSet(HashSet<String>),
FilterWorkspaceSet(HashSet<String>),
FilterTimeSet {
from: Option<i64>,
to: Option<i64>,
},
FilterSourceSet(SourceFilter),
FiltersClearAll,
TimePresetCycled,
SourceFilterCycled,
SearchModeCycled,
MatchModeCycled,
RankingModeCycled,
ContextWindowCycled,
DensityModeCycled,
ThemeToggled,
ThemePreviousToggled,
SelectionMoved {
delta: i32,
},
SelectionJumped {
to_end: bool,
},
ActivePaneChanged {
index: usize,
},
FocusToggled,
FocusDirectional {
direction: FocusDirection,
},
DetailScrolled {
delta: i32,
},
PageScrolled {
delta: i32,
},
Undo,
Redo,
GroupingCycled,
TimelineJumped {
forward: bool,
},
DetailOpened,
DetailLoadRequested {
hit: SearchHit,
},
DetailClosed,
DetailTabChanged(DetailTab),
DetailWrapToggled,
DetailPaneToggled,
DetailFindToggled,
DetailFindQueryChanged(String),
DetailFindNavigated {
forward: bool,
},
DetailSessionHitNavigated {
forward: bool,
},
ToggleJsonView,
ToolCollapseToggled(usize),
ToolExpandAll,
ToolCollapseAll,
DetailMessageJumped {
forward: bool,
user_only: bool,
},
StatsBarToggled,
SelectionToggled,
SelectAllToggled,
ItemEnqueued,
BulkActionsOpened,
BulkActionsClosed,
BulkActionExecuted {
action_index: usize,
},
CopySnippet,
CopyPath,
CopyContent,
CopyQuery,
OpenInEditor,
OpenInNano,
OpenAllQueued,
ViewRaw,
PeekToggled,
ResultsRefreshed,
PaneFilterOpened,
PaneFilterChanged(String),
PaneFilterClosed {
apply: bool,
},
InputModeEntered(InputMode),
InputBufferChanged(String),
InputModeApplied,
InputModeCancelled,
InputAutoCompleted,
HistoryNavigated {
forward: bool,
},
HistoryCycled,
PaletteOpened,
PaletteClosed,
PaletteQueryChanged(String),
PaletteSelectionMoved {
delta: i32,
},
PaletteActionExecuted,
PaletteEvidenceToggled,
PaletteBenchToggled,
PaletteMatchModeCycled,
InspectorToggled,
InspectorTabCycled,
InspectorModeCycled,
CockpitModeToggled,
CockpitExpandToggled,
HelpToggled,
HelpScrolled {
delta: i32,
},
HelpPinToggled,
ExportModalOpened,
ExportModalClosed,
ExportFieldChanged {
field: ExportField,
value: String,
},
ExportFieldToggled(ExportField),
ExportFocusMoved {
forward: bool,
},
ExportExecuted,
ExportMarkdownExecuted,
ExportProgressUpdated(ExportProgress),
ExportCompleted {
output_path: PathBuf,
file_size: usize,
encrypted: bool,
},
ExportFailed(String),
ConsentDialogOpened,
ConsentDialogClosed,
ModelDownloadAccepted,
ModelDownloadProgress {
bytes_downloaded: u64,
total: u64,
},
ModelDownloadCompleted,
ModelDownloadFailed(String),
ModelDownloadCancelled,
HashModeAccepted,
SourceFilterMenuToggled,
SourceFilterSelected(SourceFilter),
UpdateCheckCompleted(UpdateInfo),
UpdateUpgradeRequested,
UpdateSkipped,
UpdateReleaseNotesRequested,
UpdateDismissed,
SuggestionApplied(u8),
BordersToggled,
PaneGrew,
PaneShrunk,
SavedViewsOpened,
SavedViewsClosed,
SavedViewsSelectionMoved {
delta: i32,
},
SavedViewLoadedSelected,
SavedViewRenameStarted,
SavedViewRenameCommitted,
SavedViewDeletedSelected,
SavedViewsCleared,
ViewSaved(u8),
ViewLoaded(u8),
IndexRefreshRequested,
IndexProgress {
processed: usize,
total: usize,
new_items: usize,
},
IndexRefreshCompleted,
IndexRefreshFailed(String),
StateLoadRequested,
StateLoaded(Box<PersistedState>),
StateLoadFailed(String),
StateSaveRequested,
StateSaved(u64),
StateSaveFailed {
save_token: u64,
err: String,
},
StateResetRequested,
ToastShown {
message: String,
toast_type: ToastType,
},
ToastTick,
Resized {
width: u16,
height: u16,
},
TerminalFocusChanged(bool),
Tick,
MouseEvent {
kind: MouseEventKind,
x: u16,
y: u16,
},
AnalyticsEntered,
AnalyticsLoadRequested,
AnalyticsChartDataLoaded(Box<AnalyticsChartData>),
AnalyticsChartDataFailed(String),
AnalyticsViewChanged(AnalyticsView),
ViewStackPopped,
AnalyticsTimeRangeSet {
since_ms: Option<i64>,
until_ms: Option<i64>,
},
AnalyticsAgentFilterSet(HashSet<String>),
AnalyticsWorkspaceFilterSet(HashSet<String>),
AnalyticsSourceFilterSet(SourceFilter),
AnalyticsFiltersClearAll,
AnalyticsDrilldown(DrilldownContext),
AnalyticsSelectionMoved {
delta: i32,
},
ExplorerMetricCycled {
forward: bool,
},
ExplorerOverlayCycled,
ExplorerGroupByCycled {
forward: bool,
},
ExplorerZoomCycled {
forward: bool,
},
BreakdownTabCycled {
forward: bool,
},
HeatmapMetricCycled {
forward: bool,
},
SwarmEntered,
SourcesEntered,
SourcesRefreshed,
SourceSyncRequested(String),
SourceSyncCompleted {
report: SyncReport,
},
SourceDoctorRequested(String),
SourceDoctorCompleted {
source_name: String,
passed: usize,
warnings: usize,
failed: usize,
},
SourcesSelectionMoved {
delta: i32,
},
ScreenshotRequested(ScreenshotFormat),
ScreenshotCompleted(PathBuf),
ScreenshotFailed(String),
MacroRecordingToggled,
MacroRecordingSaved(PathBuf),
MacroRecordingFailed(String),
QuitRequested,
ForceQuit,
}Expand description
Messages that drive the cass TUI state machine.
Every user action, system event, and async completion maps to exactly
one variant. The CassApp::update() function pattern-matches on
these to produce pure state transitions + side-effect commands.
Variants§
TerminalEvent(TerminalEventPayload)
Raw terminal event (key, mouse, resize, paste, tick). The update() function converts this into more specific messages.
QueryChanged(String)
User typed or edited the query string.
QueryCleared
User cleared the entire query line (Ctrl+L).
QueryLineKilled
User killed text left of cursor (Ctrl+U, Unix line-kill).
QueryForwardKilled
User killed text right of cursor (Ctrl+K, Unix forward-kill).
QueryWordDeleted
User deleted word-backward (Ctrl+W).
QuerySubmitted
User pressed Enter to submit the query (force immediate search, push to history).
SearchRequested
Search execution requested (Enter or debounce expired).
SearchMoreRequested
Load the next page of results for the current query (infinite scroll).
SearchCompleted
Async search completed with results.
SearchFailed
Search failed with an error message.
SearchRefinementFailed
Refinement failed after initial live results were already displayed.
SearchStreamFinished
Live progressive stream fully completed or was cancelled.
CursorMoved
Move cursor within the query string (Left/Right arrow keys).
CursorWordMoved
Move cursor by word boundary (Ctrl+Left/Right).
DeleteForward
Delete the character after the cursor (Del key).
CursorJumped
Jump cursor to start or end of query (Home/End keys).
WildcardFallbackToggled
Toggle the wildcard fallback indicator (Ctrl+F).
FilterAgentSet(HashSet<String>)
Agent filter added or changed.
FilterWorkspaceSet(HashSet<String>)
Workspace filter added or changed.
FilterTimeSet
Time range filter set.
FilterSourceSet(SourceFilter)
Source filter changed.
FiltersClearAll
All filters cleared.
TimePresetCycled
Cycle time filter preset (All -> Today -> Week -> Month -> All).
SourceFilterCycled
Cycle source filter (All -> Local -> Remote -> All).
SearchModeCycled
Cycle search mode (Hybrid -> Lexical -> Semantic).
MatchModeCycled
Cycle match mode (Standard <-> Prefix).
RankingModeCycled
Cycle ranking mode through all 6 variants.
ContextWindowCycled
Cycle context window (S -> M -> L -> XL).
DensityModeCycled
Cycle density mode (Compact -> Cozy -> Spacious).
ThemeToggled
Cycle through all built-in theme presets.
ThemePreviousToggled
Cycle to the previous theme preset (Shift+F2).
SelectionMoved
Move selection in the results pane.
SelectionJumped
Jump to first or last result.
ActivePaneChanged
Change active pane.
FocusToggled
Toggle focus between Results and Detail.
FocusDirectional
Move focus in a specific direction.
Fields
direction: FocusDirectionDetailScrolled
Scroll the detail pane.
PageScrolled
Page-level scroll.
Undo
Undo the last query/filter change (Ctrl+Z).
Redo
Redo the last undone change (Ctrl+Y).
GroupingCycled
Cycle the results grouping mode (Agent → Conversation → Workspace → Flat).
TimelineJumped
Jump to the next/previous day boundary in results.
DetailOpened
Open the detail modal for the currently selected result.
DetailLoadRequested
Load full conversation detail for the selected search hit.
DetailClosed
Close the detail modal.
DetailTabChanged(DetailTab)
Switch detail tab.
DetailWrapToggled
Toggle text wrap in detail view.
DetailPaneToggled
Toggle detail preview pane visibility (Alt+D).
DetailFindToggled
Enter/exit inline find mode in detail.
DetailFindQueryChanged(String)
Update the detail find query.
Move to next/previous find match.
Move to next/previous session search hit in contextual Messages view.
ToggleJsonView
Toggle JSON viewer tab (syntax-highlighted tree view).
ToolCollapseToggled(usize)
Toggle collapse for a tool/system message at the given index.
ToolExpandAll
Expand all collapsed tool/system messages.
ToolCollapseAll
Collapse all tool/system messages.
DetailMessageJumped
Jump to the next/previous message in the detail view.
StatsBarToggled
Toggle the aggregate stats bar in the results pane (Ctrl+S).
SelectionToggled
Toggle select on the current item.
SelectAllToggled
Select or deselect all items in the current pane.
ItemEnqueued
Enqueue current item and advance to next.
BulkActionsOpened
Open bulk actions modal.
BulkActionsClosed
Close bulk actions modal.
BulkActionExecuted
Execute a bulk action.
CopySnippet
Copy the current snippet to clipboard.
CopyPath
Copy the current source path to clipboard.
CopyContent
Copy the rendered detail content to clipboard.
CopyQuery
Copy the current search query to clipboard.
OpenInEditor
Open the current result in $EDITOR.
OpenInNano
Open content in nano.
OpenAllQueued
Open all enqueued items in $EDITOR.
ViewRaw
View raw source file.
PeekToggled
Peek XL context (toggle).
ResultsRefreshed
Refresh results (re-run current query).
PaneFilterOpened
Enter pane-local filter mode.
PaneFilterChanged(String)
Update pane filter text.
PaneFilterClosed
Apply or cancel pane filter.
InputModeEntered(InputMode)
Enter a specific input mode (Agent, Workspace, DateFrom, DateTo).
InputBufferChanged(String)
Update the ephemeral input buffer.
InputModeApplied
Apply the current input buffer as a filter and return to Query mode.
InputModeCancelled
Cancel input mode and return to Query mode.
InputAutoCompleted
Auto-complete the input buffer to the first suggestion.
Navigate query history.
HistoryCycled
Cycle through history (Ctrl+R).
PaletteOpened
Open the command palette.
PaletteClosed
Close the command palette.
PaletteQueryChanged(String)
Update the palette search query.
PaletteSelectionMoved
Move palette selection.
PaletteActionExecuted
Execute the selected palette action.
PaletteEvidenceToggled
Toggle the palette evidence ledger panel.
PaletteBenchToggled
Toggle palette micro-bench mode for latency profiling.
PaletteMatchModeCycled
Cycle the palette match-type filter (F9 while palette is open).
InspectorToggled
Toggle the inspector debug overlay (Ctrl+Shift+I).
InspectorTabCycled
Cycle the active inspector tab (Timing → Layout → HitRegions).
InspectorModeCycled
Cycle the ftui inspector mode (Off → HitRegions → WidgetBounds → Full).
CockpitModeToggled
Toggle cockpit mode on/off within the inspector overlay.
CockpitExpandToggled
Toggle cockpit between overlay and expanded display modes.
HelpToggled
Toggle the help overlay.
HelpScrolled
Scroll the help overlay.
HelpPinToggled
Toggle help strip pinned state.
ExportModalOpened
Open the export modal.
ExportModalClosed
Close the export modal.
ExportFieldChanged
Update an export modal field.
ExportFieldToggled(ExportField)
Toggle an export modal checkbox.
ExportFocusMoved
Move focus within the export modal.
ExportExecuted
Execute the export.
ExportMarkdownExecuted
Quick-export the current session as Markdown.
ExportProgressUpdated(ExportProgress)
Export progress update from background task.
ExportCompleted
Export completed successfully.
ExportFailed(String)
Export failed.
ConsentDialogOpened
Open the consent dialog.
ConsentDialogClosed
Close the consent dialog.
ModelDownloadAccepted
User accepted model download.
ModelDownloadProgress
Model download progress update.
ModelDownloadCompleted
Model download completed.
ModelDownloadFailed(String)
Model download failed.
ModelDownloadCancelled
User cancelled the active download.
HashModeAccepted
User accepted hash mode fallback (no ML model).
SourceFilterMenuToggled
Toggle the source filter popup menu.
SourceFilterSelected(SourceFilter)
Select a source filter from the menu.
UpdateCheckCompleted(UpdateInfo)
Update check completed.
UpdateUpgradeRequested
User chose to upgrade.
UpdateSkipped
User chose to skip this version.
UpdateReleaseNotesRequested
User chose to view release notes.
UpdateDismissed
User dismissed the update banner.
SuggestionApplied(u8)
Apply a did-you-mean suggestion by index (1, 2, or 3).
BordersToggled
Toggle fancy/plain borders.
PaneGrew
Grow the pane item count.
PaneShrunk
Shrink the pane item count.
SavedViewsOpened
Open saved views manager modal.
SavedViewsClosed
Close saved views manager modal.
SavedViewsSelectionMoved
Move selection in saved views modal.
SavedViewLoadedSelected
Load currently selected saved view.
SavedViewRenameStarted
Enter rename mode for selected saved view.
SavedViewRenameCommitted
Commit rename for selected saved view.
SavedViewDeletedSelected
Delete selected saved view slot.
SavedViewsCleared
Clear all saved view slots.
ViewSaved(u8)
Save current view to a slot (1-9).
ViewLoaded(u8)
Load a saved view from a slot (1-9).
IndexRefreshRequested
User requested index refresh.
IndexProgress
Index progress update.
IndexRefreshCompleted
Index refresh completed.
IndexRefreshFailed(String)
Index refresh failed.
StateLoadRequested
Load persisted state from disk.
StateLoaded(Box<PersistedState>)
Persisted state loaded.
StateLoadFailed(String)
Persisted state load failed.
StateSaveRequested
Save current state to disk.
StateSaved(u64)
Persisted state save completed.
StateSaveFailed
Persisted state save failed.
StateResetRequested
Reset all persisted state to defaults.
ToastShown
Show a toast notification.
ToastTick
Dismiss expired toasts (called on tick).
Resized
Terminal resized.
TerminalFocusChanged(bool)
Terminal focus gained or lost.
Tick
Periodic tick for animations and debounce.
MouseEvent
Mouse event with coordinates.
AnalyticsEntered
Switch to analytics surface (pushes Search onto back-stack).
AnalyticsLoadRequested
Deferred analytics data load (lets UI render a loading frame first).
AnalyticsChartDataLoaded(Box<AnalyticsChartData>)
Async analytics chart data loaded successfully.
AnalyticsChartDataFailed(String)
Async analytics chart data load failed.
AnalyticsViewChanged(AnalyticsView)
Navigate to a specific analytics subview.
ViewStackPopped
Pop the view stack (Esc from analytics returns to search).
AnalyticsTimeRangeSet
Update analytics time range filter.
AnalyticsAgentFilterSet(HashSet<String>)
Update analytics agent filter.
AnalyticsWorkspaceFilterSet(HashSet<String>)
Update analytics workspace filter.
AnalyticsSourceFilterSet(SourceFilter)
Update analytics source filter.
AnalyticsFiltersClearAll
Clear all analytics filters.
AnalyticsDrilldown(DrilldownContext)
Drilldown from analytics selection into the search view.
AnalyticsSelectionMoved
Move selection within the current analytics subview.
ExplorerMetricCycled
Cycle the Explorer metric forward or backward.
ExplorerOverlayCycled
Cycle the Explorer overlay mode.
ExplorerGroupByCycled
Cycle the Explorer group-by granularity forward or backward.
ExplorerZoomCycled
Cycle the Explorer zoom preset forward or backward.
BreakdownTabCycled
Cycle the Breakdowns tab forward or backward.
HeatmapMetricCycled
Cycle the Heatmap metric forward or backward.
SwarmEntered
Switch to the cached swarm operations cockpit surface.
SourcesEntered
Switch to the sources management surface.
SourcesRefreshed
Reload sources config + sync status from disk.
SourceSyncRequested(String)
Trigger sync for the selected source (by name).
SourceSyncCompleted
Sync completed with a structured result report.
Fields
report: SyncReportSourceDoctorRequested(String)
Trigger doctor diagnostics for the selected source.
SourceDoctorCompleted
Doctor diagnostics completed.
SourcesSelectionMoved
Move selection in the sources list.
ScreenshotRequested(ScreenshotFormat)
Capture a screenshot of the current TUI state.
ScreenshotCompleted(PathBuf)
Screenshot file was written successfully.
ScreenshotFailed(String)
Screenshot export failed.
MacroRecordingToggled
Toggle interactive macro recording (start/stop).
MacroRecordingSaved(PathBuf)
Macro recording saved to path.
MacroRecordingFailed(String)
Macro recording failed.
QuitRequested
Application quit requested.
ForceQuit
Force quit (Ctrl+C).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CassMsg
impl RefUnwindSafe for CassMsg
impl Send for CassMsg
impl Sync for CassMsg
impl Unpin for CassMsg
impl UnsafeUnpin for CassMsg
impl UnwindSafe for CassMsg
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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>, which can then be
downcast into Box<dyn 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>, which 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.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.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for 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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> 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