Skip to content

Latest commit

 

History

History
705 lines (598 loc) · 67.7 KB

File metadata and controls

705 lines (598 loc) · 67.7 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.8.0] - 2025-09-24

✨ Features

  • feat: add comprehensive documentation for trending and themes features (b86ff98)
  • feat: reorder Game Help sections to show Code Challenge Types before Typing Tips (9bfbaae)
  • feat: add language validation for trending command (6b458bf)
  • feat: add HTTP and API error handling for trending feature (9347cf4)
  • feat: add trending repositories selection feature (ccf589e)
  • feat: add Starforge and Runic themes with comprehensive color adjustments (8ba14d4)
  • feat: add Colors::key_action() and Colors::key_navigation() methods (8dbae6c)
  • feat: add custom theme support via ~/.gittype/custom-theme.json (ba482da)
  • feat: add settings screen with theme and color mode selection (90fd06e)
  • feat: restructure theme system with simplified Theme struct and proper separation of concerns (c157160)
  • feat: add Nix support with flake configuration and dependencies (310b577)
  • feat: reorganize theme structure and add extensive theme collection (3197abb)
  • feat: add new dark and light themes with improved color schemes (9ca8b74)
  • feat: add ColorScheme caching and in-game theme switching (f768443)
  • feat: restructure theme system with consolidated and separated colors (08d49b5)
  • feat: improve typing interface color usage (2a79fde)
  • feat: replace hardcoded color constants with dynamic theme system (ee322e4)
  • feat: rename themes to ascii_dark and ascii_light (b8403a5)

🐛 Bug Fixes

  • fix: refresh repository list in records screen to prevent unknown display (58ac54b)
  • fix: remove TrendingConfig and hardcode values (8a20f72)
  • fix: correct comment range detection in middle chunk extraction (a2fe4a6)
  • fix: remove left-right margins and fix key colors in session detail screen (b212175)
  • fix: remove unnecessary margins and spacing from screen layouts (eedec04)
  • fix: rename typing_current_cursor to typing_cursor_fg in ascii theme (0653b10)
  • fix: add horizontal padding to settings screen content sections (a297926)
  • fix: restore manual Default implementation for ThemeConfig (4872ae8)
  • fix: update tests and resolve clippy warnings after theme system refactor (d43b47a)
  • fix: ensure key colors match semantic colors in all themes (bfa5028)

📝 Other Changes

  • chore: bump version to v0.8.0 (ab1f563)
  • docs: enhance README with comprehensive screenshots (335ee87)
  • refactor: split trending_view into separate files and add help info (32f3312)
  • chore(deps): bump tree-sitter from 0.25.9 to 0.25.10 (9524aa5)
  • chore(deps): bump tempfile from 3.22.0 to 3.23.0 (9448eb5)
  • chore(deps): bump serde from 1.0.225 to 1.0.226 (7a887b7)
  • chore(deps): bump clap from 4.5.47 to 4.5.48 (4d5aa49)
  • chore(deps): bump anyhow from 1.0.99 to 1.0.100 (7931060)
  • Apply suggestion from @coderabbitai[bot] (1cd74a0)
  • Apply suggestion from @coderabbitai[bot] (1e67c43)
  • Apply suggestion from @coderabbitai[bot] (13a0301)
  • refactor: improve analytics screen navigation UI consistency (633d257)
  • refactor: save theme ID instead of entire theme object in config (d475f01)
  • remove: CLI theme-related commands (fb44a83)
  • refactor: use Colors::key_action() instead of Colors::success() for key descriptions (4a92b04)
  • docs: clean up commit and wording (b8d6e6b)
  • docs: update CONTRIBUTING and README to include Nix development instructions (bec7820)
  • test: skip tests in nix build environments if they are incompatible with nix sandboxing (a412a73)
  • refactor: update all UI components to use new consolidated color system (1641183)
  • refactor: remove unused StageRendererView component (b6aeb45)

[0.7.0] - 2025-09-19

✨ Features

  • feat: add crossterm to ratatui color conversion utility (29f4058)
  • feat: update title screen to use help screen and rename history to records (9e3aa4e)
  • feat: integrate help screen into screen management system (0873eb7)
  • feat: implement comprehensive help screen to replace basic info dialog (08aa7f3)
  • feat: add basic repository management commands (1618953)
  • feat: implement Zen mode comment exclusion (5e97c75)
  • feat: add File chunk type for Zen mode (04fb821)
  • feat: implement middle code chunk extraction for issue #199 (03dd376)
  • feat: add BestStatus struct for accurate session comparison (51ce784)
  • feat: use display_name for language names in Analytics Screen (fcd65df)
  • feat: add color-coded language display in typing interface (bab7971)
  • feat: implement challenge caching system (730ced1)

🐛 Bug Fixes

  • fix: correct stage number display in StageSummary (3619480)
  • fix: restore difficulty challenge count display on title screen (6ab9f77)
  • fix: improve cache reliability and error handling for issue #244 (34c248c)
  • fix: improve Git URL parsing robustness for multi-host support (15c1c3e)
  • fix: center typing line in viewport and fix scroll bug (4883150)
  • fix(extractor): correct Haskell type_synomym usage and JS/TS arrow function mapping (3ab668b)
  • fix: update bincode API calls for v2.0 compatibility (cbc85f9)
  • fix: add vendored-libgit2 feature for cross-compilation (a6bfb5a)
  • fix: correct score comparison logic in ScoreView (156d7fa)
  • fix: capture best records at session start consistently (4d7e85e)
  • fix: improve session details dialog layout and sizing (c0a27f0)
  • fix: address security vulnerabilities in cache implementation (7f9cb9e)
  • fix: respect update notification exit (dff6c2b)
  • fix: invalidate version cache when current version changes (149d003)

📝 Other Changes

  • chore: bump version to v0.7.0 (2261823)
  • docs: add updated screenshots and new analytics images (0f598d2)
  • docs: update documentation structure and language support (52d6428)
  • Update src/game/session_manager.rs (8278d20)
  • refactor: remove old history_screen.rs file (f0bcf30)
  • refactor: update screen transitions to use Records instead of History (3341c8d)
  • refactor: rename history_screen.rs to records_screen.rs for consistency (9686baf)
  • lint: fix manual_is_multiple_of clippy warnings (9086e9a)
  • lint: fix clippy warnings and apply cargo fmt (437bbad)
  • perf: remove performance logging code for issue #244 (8f359d7)
  • perf: optimize generating step performance with caching and filtering (fc047b7)
  • perf: optimize ExtractingStep performance for issue #244 (e57177a)
  • test: fix failing language extraction tests expectations (c31f589)
  • perf: eliminate excessive clone() calls for issue #244 item 2 (9bc5c7c)
  • perf: reduce typing screen frame rate from 60 FPS to 30 FPS (9a13979)
  • refactor: update screens to use new repo commands integration (5bc2790)
  • ui: improve repo list display with ratatui and better formatting (ba92b3c)
  • test: update snapshots and integration tests for File chunk (a72977a)
  • refactor: simplify git repository extractor tests (eca4f27)
  • test: fix tests affected by File chunk addition (d8c069e)
  • test: add insta snapshots for middle chunk extraction tests (49b2d4f)
  • test: add comprehensive test cases for middle chunk extraction (a4cf86c)
  • chore(deps): bump bincode from 1.3.3 to 2.0.1 (649b886)
  • chore: remove unused screen configuration methods (326b6db)
  • refactor: optimize SessionDetailsDialog best status handling (dbe86bc)
  • refactor: improve stage results display format (46fc4ad)
  • chore(deps): bump git2 from 0.18.3 to 0.20.2 (1ac1df8)
  • chore: satisfy clippy lint in game tests (43920e7)
  • style: format tests (8c0a909)
  • test: assert database error helper (cc5ab96)
  • refactor: add countdown test helper (384d042)
  • test: cover game data state management (aedc39d)
  • test: add storage, ui, and sharing suites (909cc83)
  • test: assert rank calculator extremes (be0434d)
  • test: broaden model coverage (12b5d00)
  • test: document difficulty level metadata (9330ec6)
  • test: validate language registry helpers (7d6bb8e)
  • test: extend repository manager coverage (57608e7)
  • test: cover version cache validity (d473abd)
  • chore(deps): bump serde from 1.0.223 to 1.0.225 (3266fb6)
  • chore(deps): bump serde from 1.0.219 to 1.0.223 (b63a29f)
  • chore(deps): bump serde_json from 1.0.143 to 1.0.145 (5e00b3e)

[0.6.2] - 2025-09-13

🐛 Bug Fixes

  • fix: finalize TotalResult to prevent MAX value display in TotalSummaryScreen (5b2b165)

📝 Other Changes

  • chore: bump version to v0.6.2 (d1ebea1)

[0.6.1] - 2025-09-12

🐛 Bug Fixes

  • fix: display default TotalSummaryScreen when no sessions exist (e7fd86d)
  • fix: prevent duplicate LoadingScreen initialization causing repository clone conflicts (3a90250)

📝 Other Changes

  • chore: bump version to v0.6.1 (4950eee)
  • docs: fix ScreenManager doctest after run method removal (7358f8d)

[0.6.0] - 2025-09-12

✨ Features

  • feat: implement dedicated panic/error screen with comprehensive error handling (219cd50)
  • feat: add comprehensive view components for UI rendering (e8c9000)
  • feat: add new extractor components and models (cdf9d44)
  • feat: implement core Screen trait architecture (efb4327)
  • feat: complete Phase 3 - migrate all screens to new Screen trait (3a86d6d)
  • feat: migrate major screens to new Screen trait architecture (Phase 3) (25d64ef)
  • feat: implement ScreenManager core architecture and UpdateStrategy system (2196197)
  • feat: ignore entire .claude directory in gitignore (4c22865)
  • feat: add comprehensive Scala test suite (d79029c)
  • feat: added scala language with model and parser, then deleted this file (7465c9d)
  • feat: add automatic version update check functionality (2202d53)

🐛 Bug Fixes

  • fix: optimize Scala parser to prevent duplicate extractions (596ecd9)
  • fix: remove version_cache.json and add to gitignore (2c9f926)
  • fix: remove version check from CLI runner (b83eb8e)
  • fix: improve homebrew formula update script reliability (0d859b2)

📝 Other Changes

  • chore: bump version to v0.6.0 (14c0188)
  • docs: add demo section to README with demo.gif (fe98070)
  • perf: optimize typing_content_view with individual caching and function splitting (bdddc83)
  • chore: remove temporary files and documentation (ee4deb2)
  • refactor: complete screen manager architecture migration (9167b85)
  • style: fix clippy warnings for code quality (c3f4a4c)
  • refactor: add new screen implementations for Screen trait (3986365)
  • chore(deps): bump tree-sitter-python from 0.23.6 to 0.25.0 (12e1481)
  • chore(deps): bump tempfile from 3.21.0 to 3.22.0 (3e8d090)
  • chore: apply cargo fmt to Scala implementation (8909847)
  • docs: update Scala language documentation (766b61d)
  • chore: reordered languages alphabetically with new Scala to pass fmt (8dc6b40)
  • chore: restore title_screen.rs from main after rebase (1dbfd8c)
  • chore: restore options.rs from main after rebase (549f0df)
  • chore: fattened up main screen arrows, changed Info indicator to [I] deleted this change and file (683be16)
  • chore(deps): bump chrono from 0.4.41 to 0.4.42 (09adf9d)
  • chore(deps): bump tree-sitter from 0.25.8 to 0.25.9 (fe4ff03)
  • chore(deps): bump ctrlc from 3.4.7 to 3.5.0 (530fd59)
  • chore(deps): bump log4rs from 1.3.0 to 1.4.0 (ef4e6ae)
  • chore(deps): bump log from 0.4.27 to 0.4.28 (fd105e3)
  • docs: Add demo.gif file (e9f5502)

[0.5.1] - 2025-09-08

✨ Features

  • feat: improve exclude patterns for dependency and generated source directories (21a63fe)
  • feat: improve install script with better sudo handling (dcf43d7)
  • feat: improve package manager distribution support (6e246b7)

🐛 Bug Fixes

  • fix: resolve multibyte character input issues in typing core (c67924a)
  • fix: improve permission detection for macOS compatibility (fbd17ce)

📝 Other Changes

  • chore: bump version to v0.5.1 (f4b8466)
  • docs: improve README installation section formatting (87da908)

[0.5.0] - 2025-09-07

✨ Features

  • feat: standardize color patterns across all result screens (648a930)
  • feat: Add centralized UI color definitions (6377c97)
  • feat: Add unit tests for scoring module (cf0550d)
  • feat: reorganize title screen key layout into 3-tier structure and hide cursor (488c73f)
  • feat: implement 'Press SPACE to start' prompt with integrated countdown (b95f9b0)
  • feat: add UserQuit error type and graceful exit handling (02d409f)
  • feat: Organize test files into unit and integration directories (ac12b54)
  • feat(ui): improve title screen key organization and styling (127dd77)
  • feat: implement analytics screen with repository and language stats (973b48d)
  • feat: Add typing core tests for C# and Haskell (ca1b2ca)
  • feat: add History screen with session detail viewing (23c7362)
  • feat: add comprehensive seed data system for development (113d637)
  • feat: add 1000 record limit to session queries for performance (5cba280)
  • feat: integrate logging into CLI error handling and panic hooks (8638cfd)
  • feat: add comprehensive panic and error logging system (3e847dd)
  • feat: enhance session summary with personal best tracking (dd2ff09)
  • feat: implement new details dialog for session results (66ac30c)
  • feat: add challenge_path to StageResult for proper stage name display (ce8ce79)
  • feat: integrate session recording into game flow (e292934)
  • feat: add database initialization and development environment setup (8969268)
  • feat: implement session recording to database (DAO/Repository pattern) (460bb0e)
  • feat: export migrations module in storage (dcae523)
  • feat: implement SQLite database with migration support (0a15588)
  • feat: add database migration system infrastructure (6d0690f)
  • feat(extractor): preserve original indentation characters for first line (999f3db)

🐛 Bug Fixes

  • fix: correct ranking position calculation to show higher scores first (b7d1226)
  • fix: reset pause timer between countdown stages (f274c48)
  • fix: implement proper countdown pause during dialog (b94d1e2)
  • fix: allow dialog during countdown instead of immediate exit (c1a136c)
  • fix: prevent duration overflow panics with saturating_sub (bf33e4d)
  • fix: apply additional cargo fmt formatting (4f27716)
  • fix: apply automatic code formatting (4a7a9de)
  • fix: resolve clippy warnings in analytics screen (8e79df9)
  • fix: update ratatui 0.29.0 compatibility (00ca7be)
  • fix: update seeders for rand 0.9.2 compatibility (cdbf247)
  • fix: update rand usage for 0.9.2 compatibility (c0aa6b6)
  • fix: allow invisible characters in multibyte test file (62ed39e)
  • fix: resolve clippy warnings (9c976b0)
  • fix(ui): center typing cursor in viewport and clamp scroll to content (87e82c6)
  • fix(ui): restore typing view scrolling by using actual current line for Paragraph::scroll (1be66fa)
  • fix(extractor,typing): align comment positions to char-based indices and fix display offset after indent normalization (df16f30)
  • fix: suppress clippy too_many_arguments warning (30b4999)
  • fix: resolve clippy warnings (cfd25ed)
  • fix: resolve CI failures - add tempfile dependency and fix formatting (4495575)
  • fix: apply clippy needless_borrows suggestions in rust integration tests (1dc68d8)
  • fix: apply clippy needless_borrows suggestions in extractor unit tests (05a2e5a)
  • fix: use consistent file filtering logic for zen challenge generation (fb95b63)

📝 Other Changes

  • chore: bump version to v0.5.0 (2a6a917)
  • style: apply cargo fmt formatting (afe7aca)
  • style: Change typing screen header border to dark blue (85639eb)
  • style: Format code with cargo fmt (31c5517)
  • test: Add comprehensive unit tests for scoring modules and mirror src structure (010ef93)
  • style: apply cargo fmt formatting (883eabb)
  • refactor: remove unused CountdownScreen module (5f8654b)
  • refactor: remove unused UserQuit error variant (b84dec0)
  • Fix: Resolve cargo fmt and clippy issues. Fixed formatting and module_inception clippy lints. Ensured clippy passes with -D warnings. (c375471)
  • style: rustfmt (c2fee8f)
  • test: Add more test cases for C# and Haskell (a4d4abc)
  • chore(deps): bump ratatui from 0.26.3 to 0.29.0 (b2cf114)
  • docs: Align documentation with current source code (f489063)
  • trigger CI rerun (bcbfdb9)
  • chore(deps): bump rand from 0.8.5 to 0.9.2 (bfef016)
  • docs: Add documentation for local data storage (136e53c)
  • refactor: remove unnecessary indentation normalization (5b4aa22)
  • refactor: update scoring system and integrate history feature (37472c3)
  • style: apply cargo fmt formatting (b41fc25)
  • refactor: remove SessionResult mutation methods (421c84c)
  • refactor: update game logic and storage for new scoring system (d7d9db6)
  • refactor: split scoring system into calculator/tracker pattern (42adc73)
  • refactor: move logging setup to application initialization (f64a1af)
  • test: isolate database and logging for tests (e7e4028)
  • refactor: fix clippy warnings and apply code formatting (ccc0aed)
  • chore: update project configuration and loading steps (6309ef2)
  • chore(deps): bump insta from 1.43.1 to 1.43.2 (876ce47)
  • style: apply cargo fmt to test files (586541d)
  • test: fix failing repository loader tests by adding git initialization (96feec3)
  • refactor: improve conditional nesting in collect_source_files (d0ecf76)

[0.4.1] - 2025-09-04

🐛 Bug Fixes

  • fix(ci): correct workflow order for CHANGELOG generation (2c7e02b)

📝 Other Changes

  • chore: bump version to v0.4.1 (f69a76d)
  • Revert "Merge pull request #156 from unhappychoice/dependabot/cargo/git2-0.20.2" (b2c6eb7)
  • perf: optimize typing screen display updates to improve performance (39f9aa9)
  • chore(deps): bump tree-sitter-go from 0.23.4 to 0.25.0 (13c0186)
  • chore(deps): bump dirs from 5.0.1 to 6.0.0 (b8ca782)
  • docs: convert demo.mov to mp4 format without audio (23e69b8)
  • docs: add screenshots to README (3955bed)
  • chore: Update CHANGELOG.md (fba7238)
  • chore(deps): bump tree-sitter-javascript from 0.23.1 to 0.25.0 (8d7449d)
  • chore(deps): bump tree-sitter-rust from 0.23.3 to 0.24.0 (73dfea7)
  • chore(deps): bump tree-sitter-swift from 0.6.0 to 0.7.1 (2d0ec3e)
  • chore(deps): bump tree-sitter-c from 0.23.4 to 0.24.1 (c01a66b)
  • chore(deps): bump git2 from 0.18.3 to 0.20.2 (43d8db9)
  • chore(deps): bump tree-sitter-php from 0.23.11 to 0.24.2 (e162b5e)

[0.4.0] - 2025-09-04

✨ Features

  • feat(typing): add context lines display and preserve indentation (4fc40e3)
  • feat(typing): improve color scheme and UI elements (1c64bbc)
  • feat(countdown): enhance visual experience with ASCII art and improved colors (7a8c0f8)
  • feat: add CODEOWNERS file with @unhappychoice as global owner (f5d4b33)
  • feat: add dependabot configuration for daily Cargo updates (06687e4)
  • feat(stage-manager): integrate TotalTracker for comprehensive session tracking (749f6a7)
  • feat(tracking): add TotalTracker for game-wide statistics (94f6f2a)
  • feat(ui): implement comment highlighting in stage renderer (ae03906)
  • feat(typing-core): add display_comment_ranges method (929b5e4)
  • feat(tests): unify typing core tests with parser-based comment detection (58a1a10)
  • feat(extractor): make extract_comment_ranges public (c92c3a8)
  • feat(display): improve newline symbol display and positioning (e6afae6)
  • feat(typing): preserve empty lines in all challenges (452874f)
  • feat(text-processing): add empty line preservation option (db73ac3)
  • feat: include Zen challenges in main challenge loading (cacf6c0)
  • feat(ui): improve typing screen layout with blue theme and line numbers (5a345e7)
  • feat(ui): add real-time metrics updates during typing (9ba9561)
  • feat(models): create unified model structure (f971864)
  • feat: rename RepoManager to RepositoryManager for consistency (7fc3958)
  • feat: complete SessionSummary to SessionResult unification with full implementation (1cb5d45)
  • feat: rename GameDisplayRatatui to StageRenderer for consistency (f121860)
  • feat: rename GameState to SessionState for consistency (558563b)
  • feat: complete terminology unification across entire codebase (7fb0b5f)
  • feat: fix semantic accuracy of all field and function names (845aeda)
  • feat: complete method and variable name unification (04fc71e)
  • feat: fix Rank/RankingTitle naming inconsistency (64263f3)
  • feat: complete UI text terminology updates (76cf9e3)
  • feat: complete model terminology unification (4afec8c)
  • feat: add new unified model structure (ee464f5)
  • feat(options): improve ExtractionOptions with dynamic language patterns (646900c)
  • feat(language): split Language implementations into individual files (24528ec)
  • feat: implement comprehensive Dart language extractor (731e083)
  • feat: add Dart language detection and file pattern support (6fee1f4)
  • feat: add tree-sitter-dart dependency for Dart language support (0356278)
  • feat: register Haskell language in core system (97c558f)
  • feat: add Haskell language support (6839932)
  • feat: add C++ file patterns to default extraction options (eb1f4c0)
  • feat: implement C++ code parser with comprehensive extraction (ad882a1)
  • feat: add C++ language detection and validation (f883f92)
  • feat: add tree-sitter-cpp dependency for C++ language support (502f0c3)
  • feat: add C comment detection support (5a7c55d)
  • feat: add TreeSitterLanguageError support (3a090ef)
  • feat: add C file patterns to extraction options (a85eb4f)
  • feat: implement C language parser (ad0dbae)
  • feat: add C language enum and detection (0eb169c)
  • feat: add tree-sitter-c dependency (9a988f4)
  • feat: integrate retry functionality into stage manager (a75e807)
  • feat: implement retry option on failure and cancellation screens (33accf7)
  • feat: align result file name display with colons (a7405fd)
  • feat: display countdown numbers as ASCII art (931d433)
  • feat: improve social sharing text with repository context (ed1c2e7)
  • feat: add repository information to result and session screens (914f248)
  • feat: enhance loading screen repository display (26c7790)
  • feat: improve file path display and add repository context to challenges (acf709e)
  • feat: implement dynamic score color-coding based on ranking tier (7237046)
  • feat: add terminal color methods to RankingTier and RankingTitle (615bb2e)
  • feat: shorten countdown duration for improved UX (812c5e7)

🐛 Bug Fixes

  • fix(clippy): remove unnecessary mut in context_loader tests (91bebf5)
  • fix(clippy): resolve clippy warnings (e66487a)
  • fix(exit-screen): replace session terminology with total and remove conditions (ca18640)
  • fix: reset skip count to 3 when retrying failed/cancelled stages (9375d78)
  • fix(clippy): use $crate instead of crate in macro definitions (90aed49)
  • fix: update tests to work with refactored typing_core (12b070e)
  • fix: record keystroke before typing core input processing (5110a64)
  • fix: use correct display position for current_mistake_position (67ccd84)
  • fix(clippy): resolve field_reassign_with_default and needless_range_loop warnings (0a325c5)
  • fix(clippy): resolve needless_range_loop warning (497be0a)
  • fix(scoring): correct real-time CPM calculation during pauses (c620a64)
  • fix: correct remaining semantic naming issues beyond rank-related terms (122b178)
  • fix(tests): fix test failures by excluding tmp/** pattern in temp directories (3b89dee)
  • fix: resolve clippy warning in Dart extractor (63cb5b1)
  • fix: resolve clippy warnings in Haskell extractor (caadf07)
  • fix: apply cargo fmt to fix spacing in comments (ff78420)
  • fix: ensure panic error messages are visible to users (4ff714c)
  • fix: resolve clippy warning for unused variable (db42a84)
  • fix(ci): improve Homebrew formula update process with awk (7c0b626)

📝 Other Changes

  • chore: bump version to v0.4.0 (e76583d)
  • chore: Update Cargo.lock (9e0a8e2)
  • style: fix cargo fmt formatting issues (f36dc09)
  • chore(deps): bump rusqlite from 0.29.0 to 0.37.0 (afb84ca)
  • style: apply cargo fmt formatting changes (c3131b9)
  • chore(deps): bump crossterm from 0.27.0 to 0.29.0 (9d225b0)
  • chore(deps): bump tree-sitter from 0.24.7 to 0.25.8 (bfc3da2)
  • chore(deps): bump thiserror from 1.0.69 to 2.0.16 (20b5145)
  • style: fix code formatting with cargo fmt (e1e4992)
  • refactor: remove unused code and fields from typing_core (de29b0a)
  • refactor: move mistake tracking to typing_core (ebfff51)
  • refactor: delegate input processing responsibility to typing_core (a965527)
  • refactor: remove unnecessary was_failed method (1ed5560)
  • refactor(typing_screen): improve code organization and reduce duplication (cc79204)
  • refactor(mod): update module exports (4f61144)
  • test(snapshots): update test snapshots for comment highlighting (2565726)
  • refactor(ui): simplify display_challenge_with_info method signature (141dbba)
  • refactor: unify SessionSummary/SessionResult and fix semantic naming (aaa51d7)
  • refactor: rename components for terminology consistency (8a870a7)
  • refactor(cli): remove unused config.rs and update CLI structure (9891198)
  • refactor(extractor): update extractors to use polymorphic Language trait (dcaa065)
  • refactor(language): refactor Language trait to polymorphic design (98cbb45)
  • docs: update documentation for Dart language support (79ad937)
  • test: add comprehensive Dart language extraction tests (3034a20)
  • refactor: remove unnecessary delegation and suffix in Haskell extractor (743fd24)
  • style: format code according to rustfmt standards (a224121)
  • docs: add Haskell to supported languages documentation (ba2bdf5)
  • refactor: update all language parsers for tree-sitter v0.24 (e1e0755)
  • refactor: migrate to tree-sitter v0.24 API (89f6945)
  • chore(deps): update all tree-sitter dependencies to latest versions (47d0899)
  • docs: add C and C++ language support to documentation (ff40f6b)
  • test: add comprehensive C++ language integration tests (1b58863)
  • test: add comprehensive C language tests (f0238c9)
  • refactor: remove old result_screen.rs after successful refactoring (3d1c16c)
  • refactor: update screen module exports for new structure (f1f794f)
  • refactor: split result_screen.rs into focused screen modules (e630e27)
  • refactor: redesign countdown screen repository and source info layout (c796d22)
  • chore: Update Twitter references to X platform (1c6fdb2)
  • docs(readme): update --repo examples to use relevant Rust libraries (791996b)
  • docs(readme): add --repo option examples (68e6815)
  • refactor(main): simplify main.rs using new CLI modules (238ad8c)
  • refactor(cli): move CLI components to separate modules (3d82e20)
  • chore: Update CHANGELOG.md (32d6d2c)

[0.3.0] - 2025-09-02

✨ Features

  • feat: use vendored OpenSSL for all targets to avoid cross-compilation issues (2bc3269)
  • feat: update Homebrew to use prebuilt binaries and add ARM64 support (96836dd)
  • feat: add repository management with GitHub support (d08a93b)
  • feat: add GitHub links to commit hashes in changelog (5881873)
  • feat: add automatic CHANGELOG.md generation (7a2ae38)

🐛 Bug Fixes

  • fix(extractor): avoid progress updates in parallel path to satisfy Sync and pass clippy (b8e433d)

📝 Other Changes

  • chore: bump version to v0.3.0 (33f0df0)
  • perf(extractor): reuse thread-local tree-sitter parser and precompile glob patterns in scanner (b5f84e0)
  • perf(extractor): parallelize challenge conversion and zen file processing (55a2ac0)
  • chore: Fix cargo clippy warnings (4cfedac)
  • refactor: cleanup and module organization (c2e14c0)
  • refactor: update extractor system for new step architecture (8c46a02)
  • refactor: improve error handling in main with Result chaining (73b023d)
  • refactor: improve LoadingScreen with polymorphic step system (c553e3a)

[0.2.0] - 2025-09-02

✨ Features

  • feat: implement C# code extraction with tree-sitter (5573c2e)
  • feat: add C# language support to core models (acce492)
  • feat: add tree-sitter-c-sharp dependency for C# language support (ae20c9e)
  • feat: add JSX component extraction support to TypeScript parser (077f87b)
  • feat: add JSX component extraction support to JavaScript parser (8f56853)
  • feat: add JSX file extension support to JavaScript language detection (6f9b9f4)
  • feat: add comprehensive JSX/TSX support for React components (9c914f3)
  • feat: implement JavaScript language extractor (0cc70ce)
  • feat: add JavaScript language support to Language enum (2246c15)
  • feat: add tree-sitter-javascript dependency (d15e81c)
  • feat: add PHP language support (140572d)
  • feat: add Java language support (9b2c16e)
  • feat: standardize language test formats and add Swift struct/enum support (debd888)
  • feat: add Kotlin language support (e15de99)
  • feat: Add missing Ruby language constructs support (6c91c27)
  • feat: add missing Go language constructs support (ac97d73)
  • feat: add TypeScript interface, type alias, enum, and namespace support (ccbac16)
  • feat: add comprehensive Rust language constructs support (df427e8)
  • feat: Comprehensive Swift language support validation (245e1a1)
  • feat: Add complete Swift extension block extraction (8e45442)
  • feat: Add Swift extension method extraction support (8f62748)
  • feat: Add Swift protocol extraction support (db4dab5)
  • feat: Add Swift language support (a022f9f)
  • feat: improve key guide color scheme for better UX (fea01b3)

🐛 Bug Fixes

  • fix: update homebrew formula update process in release workflow (6105030)
  • fix: add JavaScript comment support to extractor core (f6ef381)
  • fix: resolve clippy len_zero warning in PHP tests (0da8aac)
  • fix: resolve clippy warning about length comparison (bb2710e)
  • fix(sharing): prevent URL truncation in fallback display (bc4e472)

📝 Other Changes

  • chore: bump version to v0.2.0 (9a9631c)
  • docs: update documentation for C# language support (28a4842)
  • test: add comprehensive C# language extraction tests (1272c83)
  • test: enhance TSX/JSX tests to verify component extraction (f3733e6)
  • docs: update documentation for JavaScript language support (a1ea4ed)
  • test: update Language::from_extension tests for JavaScript (9e0648b)
  • test: add comprehensive JavaScript language tests (42ed3d8)
  • docs: update documentation for PHP and Java language support (bb150c8)
  • style: format PHP implementation with cargo fmt (fbab604)
  • style: apply rustfmt formatting to Java implementation (4bc1e90)
  • test: add tests module declaration (048e418)
  • test: clean up existing test files (d79fdb3)
  • test: reorganize language extraction tests (f52f55c)
  • refactor: remove obsolete extractor files (8f26db3)
  • refactor: update extractor module integration (ece7d7d)
  • refactor: add modular language-specific parsers (3840f61)
  • refactor: reorganize models into dedicated module (772c2f8)
  • refactor: add core extractor module (183d530)
  • docs: update documentation for Go language enhancements (4ee79d6)
  • style: run cargo fmt (ca6b163)
  • revert: remove unnecessary README.md changes (95b7618)
  • docs: update documentation for enhanced Rust language support (c3d1417)
  • style: run cargo fmt (148840d)
  • docs: Add Swift language support to documentation (476a9dc)
  • style: run cargo fmt (533670c)
  • style: fix clippy warnings and run cargo fmt (0714d76)
  • docs(README): update features section with ranking system and game modes (8bbab5d)

[0.1.3] - 2025-08-31

🐛 Bug Fixes

  • fix(sharing): use game total score instead of single challenge score (a19a504)

📝 Other Changes

  • chore: bump version to v0.1.3 (af203ac)
  • style: run cargo fmt (aa05d09)
  • ci(release): pass tag commit SHA to Homebrew bump action as revision to fix --revision requirement (16788c9)

[0.1.2] - 2025-08-31

✨ Features

  • feat: add GitHub repository link to exit summary screen (1237651)
  • feat: improve stage result screen navigation (bf00265)
  • feat: change back to title key from Enter to T (9d9e93c)

🐛 Bug Fixes

  • fix(terminal): always pop keyboard enhancement flags on cleanup to avoid iTerm2 stuck state (8725df9)
  • fix: resolve clippy unreachable code warning (2f45ae7)
  • fix: resolve clippy warnings (e3e244f)
  • fix: ensure complete terminal cleanup on all exit paths (511f914)
  • fix: apply cargo fmt formatting fixes (fe2409f)
  • fix: restore enter symbol (↵) display in ratatui interface (526caef)
  • fix: improve terminal cleanup to prevent utf character output in iTerm2 (36f0caf)
  • fix: restore retry option in session summary screen (2e3d29a)
  • fix: resolve clippy warnings and formatting issues (50f3df2)
  • fix: resolve clippy warnings and formatting issues (3159237)
  • fix: improve cursor highlight visibility in Mac terminal (3ba6f92)
  • fix: remove REPORT_EVENT_TYPES flag to prevent double input in iTerm (031ff4c)
  • fix: resolve clippy warnings and formatting issues (4eb02c9)
  • fix: remove debug output from exit summary screen (300c0fe)
  • fix: ensure raw mode is properly disabled on application exit (8dd8772)
  • fix: improve keyboard input handling for macOS iTerm (d9cd8f1)
  • fix: add revision parameter to homebrew bump formula action (20316d7)

📝 Other Changes

  • chore: bump version to v0.1.2 (3afc3de)
  • docs: remove install commands from banner images (361155c)
  • style: apply rustfmt formatting (49b759b)
  • refactor: remove unused Exit variant from ResultAction (2455d5c)
  • style: apply rustfmt formatting (f558041)

[0.1.1] - 2025-08-31

✨ Features

  • feat: use current directory as default repository path (4aef881)
  • feat: update title screen logo to oh-my-logo purple style (90f553e)
  • feat: add package distribution infrastructure (ee286d9)
  • feat: add tier and overall ranking display to result screen (1e57303)
  • feat: remove --max-lines option completely (3ef85d8)
  • feat: add Go language support (1baa6fc)
  • feat: add Ruby language support (aa293da)
  • feat: improve typing screen UI/UX (f89e6e8)
  • feat: add info dialog with GitHub and Twitter links (9d3a407)
  • feat: enhance exit summary screen with session-based sharing (86fced3)
  • feat: add comprehensive SNS sharing functionality (5f110b1)
  • feat: improve progress reporting for parallel AST parsing (614b0ac)
  • feat: implement parallel AST parsing with rayon (48e754e)
  • feat: enhance game display with skip functionality and pause support (0ccf826)
  • feat: display total effort including partial attempts in session summary (53b82c6)
  • feat: separate completed and partial effort tracking in SessionSummary (e583623)
  • feat: improve loading screen with detailed progress and checkmarks (f4d2cc7)
  • feat: add session summary screen with comprehensive statistics (0cf2a44)
  • feat: add typing animation with colored messages and skip functionality (ec3e571)
  • feat: add retry functionality to result screen (c3ed536)
  • feat: refactor result display and add ASCII rank titles (a6e1bd1)
  • feat: add large ASCII score display to result screens (19679ce)
  • feat: add Wild difficulty level and refactor character limits (a76f935)
  • feat: implement comprehensive scoring and metrics system (a7b887f)
  • feat: add TypeScript arrow function support and improve challenge system (6c3527f)
  • feat: implement startup loading screen with progress visualization (48dbabd)
  • feat: Enhance typing game engine with advanced features (aeb8267)
  • feat: Implement AST-based code extraction with gitignore support (423d865)
  • feat: Add dependencies for code extraction and game engine (7125ed2)
  • feat: Update main.rs to use new modular architecture (a3b6295)
  • feat: Add StageManager for multi-stage gameplay (261dd24)
  • feat: Add modular screen system (2d1b27d)
  • feat: Add Challenge structure for code typing tasks (3dbaa70)
  • feat: Add core game modules for text processing and display (0539259)
  • feat: Set up project structure and tech stack (7f40ba7)

🐛 Bug Fixes

  • fix: add contents write permission to release workflow (901942f)
  • fix: adjust total_content_height calculation for proper layout (ecbbc98)
  • fix: format code with cargo fmt (e52e4d7)
  • fix: format code with cargo fmt (0ab8bee)
  • fix: format code with cargo fmt (88987cc)
  • fix: format code with cargo fmt (0f2f259)
  • fix: resolve remaining clippy warnings for CI compliance (d94acd6)
  • fix: apply code formatting and clippy auto-fixes (0cb638a)
  • fix: resolve compilation errors to enable parallel AST parsing (cc16b41)
  • fix: improve Ctrl+C handling to show session summary (8e78a75)
  • fix: improve git repository path recognition (c723f8c)
  • fix: remove debug code from main.rs (31e1f8c)
  • fix: resolve forced termination after loading completion (c56ceef)
  • fix: Improve AST comment detection and position mapping (40964df)
  • fix: Prevent input processing during countdown screen (06e128d)

📝 Other Changes

  • chore: bump version to v0.1.1 (63b5358)
  • docs: update documentation for Go and Ruby language support (26a79de)
  • ci: split CI jobs into format, clippy, and test (9ac35e5)
  • chore: remove coverage files and add them to .gitignore (b79bb20)
  • ci: add Codecov integration for code coverage tracking (2224def)
  • ci: add GitHub Actions workflow for automated testing (34fa071)
  • ux: improve keyboard operation consistency (ee18587)
  • docs: create comprehensive documentation and banner (2744285)
  • refactor: restructure UI organization and rename loading components (fc0b9c0)
  • refactor: remove unused LoadingProgress struct (b6996e6)
  • refactor: remove unused loading components (5353ca3)
  • test: Restructure tests into separate unit and integration files (be2c013)
  • refactor: Remove legacy engine.rs (4d86a89)
  • refactor: Update module structure and exports (3ba422b)
  • deps: Add ctrlc dependency for signal handling (7fef3b0)
  • chore: Add .gitignore file (12fe0fb)
  • chore: First commit (f7ec3ca)