store: SBA Scout Rust Phase 4: Async TUI with Dashboard and Gameday screens

This commit is contained in:
Cal Corum 2026-02-28 10:52:43 -06:00
parent aff24b0c27
commit b7c41836f6

View File

@ -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<T>** — 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