1. Start in Adaptive Drill by default: App launches directly into a
typing lesson instead of the menu screen.
2. Fix error tracking for backspaced corrections: Add typo_flags
HashSet to LessonState that persists error positions through
backspace. Errors at a position are counted even if corrected,
matching keybr.com behavior. Multiple errors at the same position
count as one.
3. Fix keyboard visualization with depressed keys: Enable crossterm
keyboard enhancement flags for key Release events. Track depressed
keys in a HashSet with 150ms fallback clearing. Depressed keys
render with bright/bold styling at highest priority. Add compact
keyboard mode for medium-width terminals.
4. Responsive UI for small terminals: Add LayoutTier enum (Wide >=100,
Medium 60-99, Narrow <60 cols). Medium hides sidebar and shows
compact stats header and compact keyboard. Narrow hides keyboard
and progress bar entirely. Short terminals (<20 rows) also hide
keyboard/progress.
5. Delete sessions from history: Add j/k row navigation in history
tab, x/Delete to initiate deletion with y/n confirmation dialog.
Full chronological replay rebuilds key_stats, letter_unlock,
profile scoring, and streak tracking. Only adaptive sessions update
key_stats/letter_unlock during rebuild. LessonResult now persists
lesson_mode for correct replay gating.
6. Improved statistics display: Bordered summary table on dashboard,
WPM bar graph using block characters (green above goal, red below),
accuracy Braille trend chart, bordered history table with WPM goal
indicators and selected-row highlighting, character speed
distribution with time labels, keyboard accuracy heatmap with
percentage text per key, worst accuracy keys panel, new 7-month
activity calendar heatmap widget with theme-derived intensity
colors, side-by-side panel layout for terminals >170 cols wide.
Also: ignore KeyEventKind::Repeat for typing input, clamp history
selection to visible 20-row range, and suppress dead_code warnings
on now-unused WpmChart.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>