store: SBA Scout Rust Phase 4: Async TUI with Dashboard and Gameday screens
This commit is contained in:
parent
aff24b0c27
commit
b7c41836f6
@ -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
|
||||
Loading…
Reference in New Issue
Block a user