Commit Graph

18 Commits

Author SHA1 Message Date
0c5a70d5c4 Fix some theme colors & drill summary delete continue 2026-02-22 21:23:13 -05:00
f8bcad247b Fix kitty protocol, caps lock, code source desc 2026-02-22 16:51:34 -05:00
9d59c265dd Tweak value display in statistics keyboard visualizer 2026-02-22 15:28:05 -05:00
9deffc3d1d Import/export feature for config and data 2026-02-22 07:36:34 +00:00
9cc8a214ad Split up and clean up Keyboard Explorer detail stats 2026-02-20 23:44:31 +00:00
9e0411e1f4 Key milestone overlays + keyboard diagram improvements
Also splits out a separate store for ranked stats from overall key
stats.
2026-02-20 23:15:13 +00:00
4e39e99732 Some tweaks to pop-up UIs 2026-02-18 05:26:52 +00:00
d0605f8426 Code drill feature parity, downloading snippets from github
Phase 1 and 2. Phase 3 will allow custom github repo input.
2026-02-18 05:16:04 +00:00
2d63cffb33 Passage drill improvements, stats page cleanup 2026-02-18 00:14:37 +00:00
a61ed77ed6 Skill tree integration + tons of random fixes 2026-02-17 04:00:58 +00:00
edd2f7e6b5 Add more themes and rustfmt 2026-02-16 22:12:29 +00:00
6d6815af02 Skill tree progression system & whitespace support 2026-02-15 07:30:34 +00:00
13550505c1 Consistently refer to drills as drills now, rename from lesson/practice
Also fix some issues in the stats screen.
2026-02-15 04:44:49 +00:00
a51adafeb0 Continue into another drill after completing one 2026-02-15 00:41:59 +00:00
a0e8f3cafb Implement six major improvements to typing tutor
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>
2026-02-15 00:21:55 +00:00
c78a8a90a3 First improvement pass 2026-02-10 23:32:57 -05:00
f65e3d8413 First one-shot pass 2026-02-10 14:29:23 -05:00
739d79d6a2 cargo init 2026-02-09 15:14:03 -05:00