feat: add sticky error-aware key mastery

Persist ranked-only mastery and use it consistently across progression, milestones, counts, and localized UI. Preserve mastery during history rebuilds, replay errors accurately, and generate replay-derived test profiles. Document the follow-up plan to remove the drill history cap.
This commit is contained in:
2026-08-12 01:09:52 -04:00
parent 0f8493eb02
commit 5daa644d3b
47 changed files with 2683 additions and 722 deletions
+1 -2
View File
@@ -111,8 +111,7 @@ fn choose_cursor_style(colors: &crate::ui::theme::ThemeColors) -> Style {
// REVERSED modifier so the terminal itself swaps fg/bg, which guarantees a
// visible cursor in every colour scheme.
if colors.text_cursor_bg() == Color::Reset && colors.text_cursor_fg() == Color::Reset {
return Style::default()
.add_modifier(Modifier::REVERSED | Modifier::BOLD);
return Style::default().add_modifier(Modifier::REVERSED | Modifier::BOLD);
}
let base_bg = colors.bg();