feat: TUI Phase 1 common widgets + scoring/path beads

bd-26f2: Common widgets (render_breadcrumb, render_status_bar,
render_loading, render_error_toast, render_help_overlay) + render_screen
top-level dispatch wired to LoreApp::view(). 27 widget tests.

bd-2w1p: Add half-life fields to ScoringConfig with validation.
bd-1soz: Add half_life_decay() pure function.
bd-18dn: Add normalize_query_path() for path canonicalization.

Phase 1 modules: CommandRegistry, NavigationStack, CrashContext,
TaskSupervisor, AppState with per-screen states.

172 lore-tui tests passing, clippy clean, fmt clean.
This commit is contained in:
teernisse
2026-02-12 15:28:53 -05:00
parent d224a88738
commit eb98595251
27 changed files with 4893 additions and 305 deletions

View File

@@ -0,0 +1,14 @@
#![allow(dead_code)]
//! Search screen state.
use crate::message::SearchResult;
/// State for the search screen.
#[derive(Debug, Default)]
pub struct SearchState {
pub query: String,
pub query_focused: bool,
pub results: Vec<SearchResult>,
pub selected_index: usize,
}