From b7c41836f6603954119c5a4888282f2dd84846f9 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Sat, 28 Feb 2026 10:52:43 -0600 Subject: [PATCH] store: SBA Scout Rust Phase 4: Async TUI with Dashboard and Gameday screens --- ...c-tui-with-dashboard-and-gameday-bc4abc.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 graph/decisions/sba-scout-rust-phase-4-async-tui-with-dashboard-and-gameday-bc4abc.md diff --git a/graph/decisions/sba-scout-rust-phase-4-async-tui-with-dashboard-and-gameday-bc4abc.md b/graph/decisions/sba-scout-rust-phase-4-async-tui-with-dashboard-and-gameday-bc4abc.md new file mode 100644 index 00000000000..53875376274 --- /dev/null +++ b/graph/decisions/sba-scout-rust-phase-4-async-tui-with-dashboard-and-gameday-bc4abc.md @@ -0,0 +1,43 @@ +--- +id: bc4abc6e-57c1-4d6c-b414-213c1367be9b +type: decision +title: "SBA Scout Rust Phase 4: Async TUI with Dashboard and Gameday screens" +tags: [sba-scout, rust, tui, ratatui, phase-4, async, tokio, decision] +importance: 0.8 +confidence: 0.8 +created: "2026-02-28T16:52:43.969652+00:00" +updated: "2026-02-28T16:52:43.969652+00:00" +--- + +# SBA Scout Rust Phase 4 Complete + +**Branch:** `feat/rust-rewrite` | **Commit:** `6d2b11a` + +## What Was Implemented + +Phase 4 replaced blocking `event::read()` with `tokio::select!` over `EventStream` + mpsc channel + tick interval, enabling a fully async TUI. + +## Architecture + +- **AppMessage enum** — typed channel messages for background task results +- **ActiveScreen enum** — owns screen-specific state (`DashboardState`, `GamedayState`) +- **SelectorWidget** — generic popup list widget for cascading selectors +- **Notification system** — UI notifications with auto-expiry + +## Screens + +### Dashboard +- Roster summary cards +- API sync trigger + +### Gameday +- Cascading team/pitcher selectors +- Matchup analysis table +- 9-slot lineup management with save/load + +## Navigation +- `d` = Dashboard, `g` = Gameday, `q` = quit (disabled during text input) + +## Stats +- 1739 lines added across 10 files +- 105 tests passing