Pawn Appétit Changelog

June 2, 2026 · View on GitHub

[0.12.1]

Changed

  • feat: update Lichess API endpoints and enhance Opening Explorer functionality

[0.12.0]

Added

  • New Train Hub with unified access to all training modes
  • Graph visualization enhancements: collapsible nodes, main line mode and transposition visualization (#411) - @gm-m
  • LRU caching for line search results with optimized move parsing
  • Error handling with notifications in download functions
  • Optimized GPU usage by pausing animations when the app is hidden

Changed

  • Renamed and restructured "learn" feature to "train"
  • Migrated Mantine UI library from v8 to v9
  • Updated Stockfish label to v18 and adjusted Windows AVX2 download size (#412) - @gm-m
  • Replaced Biome with oxfmt and oxlint for formatting and linting
  • Split state atoms into domain-specific modules
  • Improved no files UI in Files page
  • Updated TypeScript target and library version to ES2023
  • Updated dependencies across frontend and backend

Fixed

  • Fixed audio playback on Linux (#415) - @BlueManCZ
  • Fixed databases download link
  • Fixed Content Security Policy to include asset.localhost
  • Fixed duplicated options
  • Fixed engine process management with UCI communication timeouts
  • Fixed empty state in databases and engines pages
  • Fixed translation keys

[0.11.0]

Added

  • Platform-specific window maximize/fullscreen behavior with fullscreen capability
  • Dashboard on startup option with quick actions in sidebar and settings
  • Sound bundling in resources (thanks @snue)

Changed

  • Reordered engine options and changed handler definitions in BoardGame component
  • Updated dependencies across the project
  • Improved error handling for sound resource resolution
  • Enhanced accounts empty state
  • Optimized repertoire practice animation to skip already-played moves - @sahinakkaya
  • Ensured practice positions become available when due date arrives - @sahinakkaya

Fixed

  • Fixed content security policy by removing unnecessary URLs
  • Fixed divider rendering when quick action links are present
  • Standardized line endings across codebase - @BurnhamG
  • Added final newlines where necessary - @BurnhamG
  • Disabled createUpdaterArtifacts when testing builds - @BurnhamG

[0.10.0]

Added

  • Polish translation support (#363) - @polandonion
  • Option to display all square coordinates on the chessboard (#366) - @gm-m
  • Configurable animation speed for repertoire practice mode (#378) - @sahinakkaya
  • Bulk analysis functionality for games
  • Puzzle generation from variants and repertoire
  • Enhanced menu options with new actions and shortcuts
  • Game sorting by ELO in database view (#369) - @luisrivasnoriega

Changed

  • Refactored tab management and enhanced engine selection in Boards
  • Updated engine retrieval to use loadableEnginesAtom in EvalListener
  • Improved PGN handling with enhanced header preservation
  • Made Next button color constant during animation playback in repertoire practice
  • Updated dependencies across frontend and backend
  • Removed splash screen and related commands

Fixed

  • Fixed puzzle board freeze after wrong move (#365) - @gm-m
  • Fixed JSON formatting issues in Polish translations (#364) - @gm-m
  • Fixed PGN headers and initial FEN preservation when opening saved games (#371) - @luisrivasnoriega
  • Fixed directory existence check before file creation in FilesPage (#372) - @gm-m
  • Fixed Dashboard to correctly show accuracy and ACPL metrics (#371) - @luisrivasnoriega
  • Fixed multiple PGN file import on Windows (#374) - @BurnhamG
  • Fixed puzzle streak calculation (#376) - @BurnhamG
  • Fixed storage size calculation for databases over 2GB (#377) - @BurnhamG
  • Fixed repertoire performance issues
  • Fixed multiple bugs in variants and puzzle generation (#382) - @luisrivasnoriega
  • Fixed database and sidebar URL type issues (#383) - @BurnhamG
  • Fixed notification system
  • Removed puzzles link from sidebar navigation
  • Removed unnecessary @types/node dev dependency

[0.9.0]

Added

  • Default file naming support in saveToFile
  • getDocumentDir utility for improved document directory handling
  • Extended logging in engine analysis for better debugging and diagnostics
  • Updated keybinding for TOGGLE_HELP to use mod+? for consistency
  • Loading states and skeleton placeholders for Accounts and Engines pages for smoother UX

Changed

  • Replaced SWR with @tanstack/react-query for modernized data fetching and caching
  • Refactored Dashboard, Files, Engines, and Databases pages into modular components
  • Improved overall UX in Accounts, Engines, Databases, and Files interfaces
  • Enhanced performance by optimizing CSS preloading and piece set management
  • Updated chessground dependency to @lichess-org/chessground
  • Updated dependencies across both frontend and Rust backend

Fixed

  • Fixed theme ID duplication and incorrect translation key issues
  • Updated color palettes for retroGaming and vintage themes
  • Fixed chart rendering issues in Accounts overview and rating panels
  • Fixed Lichess games download reliability
  • Improved error handling for invalid PGN moves
  • Fixed redundant checks and dependency cleanup in Board component
  • Removed outdated “About” section from Settings menu
  • Improved EvalBar rendering consistency

Developer Notes

  • Significant internal restructuring to improve maintainability and performance
  • Cleaner module boundaries and enhanced logging for debugging

[0.8.0]

Added

  • New keybindings for copy/paste, engine control, variations, search, panels, training, and navigation
  • Internationalization support for keybindings
  • English (UK) localization support (#334) - @AWH1122

Changed

  • Updated README and documentation
  • Replaced static text with translation keys for better localization support
  • Improved loading state in Databases component
  • Updated British English localization (#341) - @AWH1122
  • Implemented hotkey formatting for improved display and accessibility (#349) - @AWH1122
  • Made chart selectable and removed focus outline (#348) - @AWH1122

Fixed

  • Hardened download functionality with security improvements
  • Optimized memory usage by streaming downloads to disk with 10 GB limit
  • Fixed database file paths to use correct db directory (thanks @gm-m)
  • Fixed paste FEN submission not updating board state correctly (#342) - @gm-m
  • Fixed coordinate display to use lowercase chess notation (#336) - @AWH1122
  • Fixed overscrolling behavior (#338) - @AWH1122
  • Stopped text from being selectable when unnecessary (#333) - @AWH1122
  • Updated keybindings translations for improved accessibility (#347) - @AWH1122

Security

  • Fixed path traversal and SSRF vulnerabilities in downloads

[0.7.3]

Changed

  • Optimized BoardGame performance and improved code organization

Fixed

  • Fixed database file path to use db directory instead of puzzles (thanks @gm-m)
  • Fixed minor bugs in BoardGame and improved stability

[0.7.2]

Fixed

  • Fixed Lichess API integration
  • Fixed toggle pawn structure view (thanks @gm-m)
  • Fixed select and paste pieces in position editor (thanks @gm-m)
  • Fixed translation key from common.saveAndClose to common.unsavedChanges.saveAndClose (thanks @gm-m)
  • Optimized engine filtering and loading state management
  • Updated translation keys for settings and piece characters

[0.7.1]

Added

  • Enhanced chess position search functionality

Fixed

  • Fixed same time control out of sync (thanks @gm-m)
  • Fixed rendered more hooks than during the previous render in InfoPanel (thanks @gm-m)
  • Fixed border styling in light theme for cards
  • Fixed solution playout stopping on view/new-puzzle actions in puzzles (thanks @gm-m)
  • Added event permissions to main capability

[0.7.0]

Added

  • Option to install puzzle database from a local file
  • Version checking and update notification system
  • Initial Android project setup (thanks @dotneB)

Changed

  • Refactored app with custom hooks for better error handling, performance, and code organization
  • Moved start game button from BoardGame to MoveControls
  • Relocated board-related components from shared to feature
  • Improved board actions logic
  • Consolidated engine management logic into chess module
  • Improved DatabasesPage layout structure and readability
  • Updated import paths to absolute imports for LessonContent and PracticeContent
  • Restructured to a top-level folder organization
  • Updated issue templates for clarity and removed unused ones
  • Updated repository references from ChessKitchen to Pawn-Appetit

Fixed

  • Fixed game notation under board on desktop (thanks @dotneB)
  • Fixed mosaic pane resizing options
  • Fixed show arrows option (thanks @gm-m)
  • Fixed games map navigation when using keyboard shortcuts
  • Fixed untitled games (thanks @gm-m)
  • Fixed close button not working in mobile layout for database (thanks @dotneB)
  • Fixed document directory path in ImportModal
  • Fixed minimum height for empty file list in ImportModal
  • Fixed takeBack translation in ImportModal
  • Fixed multiple auto-check initiations in version check
  • Fixed translation keys for checkboxes, annotations, and annotation info
  • Added missing translation keys
  • Unified namespaces for annotations

[0.6.4]

Added

  • Wood Theme with natural wood grain colors
  • Blindfold Mode for training and advanced practice (thanks @gm-m)
  • Issue templates for bugs, documentation, features, and translations

Changed

  • Reorganized SQL schema and queries for better structure and maintainability
  • Refined README layout and updated badge styles
  • Refreshed README screenshots

Fixed

  • Fixed UCI message parsing lost during refactor, fixing empty analysis results
  • Fixed ActionIcon variant to default for reload button
  • Fixed translation key for puzzle file type
  • Fixed date input format in parseDate function

[0.6.3]

Fixed

  • Fixed typo in matchesRoute variable name
  • Removed styles from html

[0.6.2]

Added

  • EventMonitor component for global event tracking

Fixed

  • Fixed bestmove responses correctly reaching the client

[0.6.1]

Added

  • Splash screen for startup
  • Loading state during application initialization

Fixed

  • Fixed translation key for reference database badge

[0.6.0]

Added

  • Multi-file PGN import with error handling
  • Open tabs for each imported file instead of showing analyze buttons
  • Set board orientation based on FEN active color during PGN import
  • Alert for unavailable engines and improved engine selection UI
  • Visual Theme Editor for customizing themes
  • Theme Preview component to see changes in real-time
  • Predefined built-in themes for quick use
  • Separate color scheme management from theme selection
  • Environment detection utility functions

Changed

  • Improved clipboard handling for cut, copy, paste, and select all
  • Refactored menu creation logic and Chessground component
  • Moved translations to locales folder and restructured format
  • Updated translation keys for menu actions and reload feature
  • Updated lesson and practice card layouts
  • Enhanced descriptions and UI clarity
  • Replaced hover effect with popover for move details in BoardPopover
  • Updated pnpm CLI to v10.16.0 in release and test workflows

Fixed

  • Fixed PGN preview display issues
  • Fixed i18n translation keys in menus and reload feature
  • Fixed board orientation on PGN import based on active color
  • Fixed tabs opening for imported PGN files

[0.5.1]

Added

  • Cut, copy, paste, and select all operations for board positions
  • Select and paste pieces functionality in position editor (thanks @gm-m)

Changed

  • Disabled hideDetached option in BoardSelect and PiecesSelect components

Fixed

  • Fixed castling rights to update correctly after performing a castling move
  • Fixed translation key from Fen.Black to Common.Black (thanks @gm-m)

[0.5.0]

Added

  • Enhanced opponent selection UI with icons for human and engine options
  • Arabic translation and initial support for RTL layout
  • Setting to change date display between international or locale (thanks @dotneB)
  • Reorganized puzzle UI and improved Adaptive mode (thanks @dotneB)
  • Progressive puzzle mode with simplified ELO math (thanks @dotneB)
  • Loaded min/max rating ranges from puzzle databases with bounds checking (thanks @dotneB)
  • Jump to next puzzle option on failure (thanks @dotneB)
  • Support for timezone option in CI tests (thanks @dotneB)

Changed

  • Improved game analysis flow and enhanced engine process management
  • Enhanced engine state management and error handling
  • Optimized database loading with parallel processing
  • Transitioned to using i18next formatters (thanks @dotneB)
  • Updated translations for German, Spanish, Italian, Turkish, Armenian, Russian, French, Chinese
  • Enhanced Dashboard layout and responsiveness

Fixed

  • Fixed Lichess games display to show all games
  • Fixed rating updates to include classical ratings for Lichess
  • Fixed puzzle atom key naming to be puzzle-specific (thanks @dotneB)
  • Fixed puzzle button state when Lichess's database is pre-installed (thanks @dotneB)
  • Fixed timing constants in chess.rs for improved performance

[0.4.0]

Added

  • Enhanced analysis tab creation with detailed game headers and PGN generation
  • Graph tab to openings repertoire (thanks @gm-m)
  • Recent online games import from Chess.com and Lichess.org (thanks @undorev)
  • Unified PGN source input for Import and Create modals (thanks @dotneB)
  • Local puzzle database support (thanks @dotneB)
  • Deterministic puzzle order generation by rating/id for Lichess (thanks @dotneB)
  • Comprehensive theme management system
  • Enhanced ThemeSettings with quick theme selection and custom theme management
  • Drag-and-drop engine reordering in AnalysisPanel and BoardsPage
  • Telemetry toggle in Settings
  • Language list translations in Settings (thanks @dotneB)
  • Common white/black translations (thanks @dotneB)
  • Improved plural handling in i18n with i18next contexts (thanks @dotneB)
  • Legacy app data migration functionality

Changed

  • Enhanced package management for engines
  • Refactored EngineProcess management and UCI communication
  • Optimized engine option setting
  • Improved engine selection logic to include go mode
  • Refactored ThemeSettings and editor components for consistent state management
  • Disabled auto-detection for theme changes
  • Improved board orientation handling and preview updates (thanks @dotneB)
  • Streamlined OAuth authentication logic and removed unused imports
  • Updated application icon on macOS

Fixed

  • Fixed game analysis handling for online games (thanks @undorev)
  • Fixed engine options not applying in games against computer (thanks @undorev)
  • Fixed immediate result emission and throttling in get_best_moves
  • Fixed PGN save import when filename was empty (thanks @gm-m)
  • Fixed save PGN to collection (thanks @gm-m)
  • Fixed clicking import in dashboard without loaded boards (thanks @dotneB)
  • Fixed countPgnGames caching of new files (thanks @dotneB)
  • Fixed exercise pieces reset and move tracking
  • Fixed move evaluation feedback messaging
  • Fixed Armenian display name
  • Fixed icon sizes in ThemeSettings (thanks @dotneB)
  • Fixed board orientation stability (thanks @dotneB)
  • Fixed next lesson title
  • Enhanced puzzle difficulty adjustment logic based on completion status

[0.3.2]

Added

  • Enhanced telemetry settings and improved database setup

Fixed

  • Improved error handling across various modules
  • Fixed exercise reset so pieces correctly return to initial positions
  • Fixed board orientation to respect player roles (thanks @gm-m)

[0.3.1]

Added

  • Telemetry toggle in settings

Fixed

  • Fixed next lesson title (thanks @gm-m)

[0.3.0]

Added

  • Lessons and Practice functionality
  • Time control metadata for multiple game types
  • Lightweight custom chess engine for move validation and FEN updates
  • Dashboard page with the ability to hide on app startup
  • Theme switching options to spotlight search
  • Code of Conduct, Security Policy, and PR template
  • Script to automatically update missing translation keys

Changed

  • Refactored settings management with improved search and tab organization
  • Added alert for Chess.com API limitations
  • Improved total games count calculation in Accounts
  • Improved navigation paths for board-related components
  • Revised spotlight, reload, and exit shortcuts for better usability
  • Refactored theme switcher and OAuth authentication logic
  • Streamlined layout handling in LessonsPage and PracticePage
  • Updated Italian translation with missing keys and typo fixes (thanks @gm-m)

Fixed

  • Fixed lesson move errors causing invalid move sets
  • Fixed navigation bugs affecting board access and routing
  • Fixed decode_move failure handling to prevent crashes
  • Fixed external image loading in production by updating CSP and allowlist
  • Fixed window behavior on minimize and drag
  • Fixed multiple lesson and practice bugs in Learn section
  • Fixed window dragging and minimize action
  • Fixed add puzzle modal size and puzzle count display (thanks @gm-m)
  • Corrected ply count parsing and move parsing logic

[0.2.0]

Added

  • Support for saving and reloading games
  • Extended move format to support glyphs, comments, and variants
  • Auto color scheme support in theme settings
  • Filter option to game search for easier navigation
  • Dockerfile and setup instructions

Changed

  • Improved database state management with a persistent store
  • Initialized DatabaseViewStateContext using activeDatabaseViewStore
  • Refactored session management and authentication logic
  • Simplified confirmation modal usage across app
  • Reorganized folder and file structure for better modularity
  • Renamed binary casing in Cargo.toml and tauri.conf.json for consistency

Fixed

  • Fixed import modal functionality and hotkey behavior
  • Fixed ImportModal close behavior and added error handling
  • Added fallback to default document directory when XDG is not configured on Linux

[0.1.0]

Added

  • Spotlight Search for quick access
  • Personal Card Ratings Panel with rating components
  • Armenian translation
  • Russian translation completed
  • Directory and file creation checks in main logic
  • Improved account card UI and functionality
  • Edit account names in Accounts page
  • Restructured stats in a grid layout
  • Improved progress tracking during game downloads
  • Restructured board and settings pages for better usability
  • readme-updater script for translation progress

Changed

  • Renamed keybinds to keybindings across the codebase
  • Replaced Ctrl with Mod for cross-platform support
  • Improved GameNotation component structure and variation handling
  • Refactored Chess.com stats retrieval and TCN decoding
  • Handled 404 errors gracefully in API responses
  • Refactored report creation logic and UI handling
  • Adjusted BoardSelect component behavior
  • Improved README formatting

Fixed

  • Fixed timezone ISO bug in ratings panel
  • Removed incorrect ELO averaging across rating systems
  • Fixed infinite loop in promoteToMainline
  • Prevented event spam during frequent updates
  • Fixed SettingsPage layout
  • Fixed PGN import and report progress bar
  • Fixed crash on multiple View Solution in puzzles
  • Improved puzzle caching and error handling
  • Fixed hotkeys and tab navigation on board
  • Fixed percentage calculation in AccountCard for zero games
  • Fixed remembered report generation form state