feat: NCS-41 Bot Platform #33

Merged
Janis merged 42 commits from feat/bot into main 2026-04-19 15:52:25 +02:00

42 Commits

Author SHA1 Message Date
Janis 9888944898 feat: Suppress SonarQube warnings in PolyglotBook and ZobristHash by adding NOSONAR comments
Build & Test (NowChessSystems) TeamCity build finished
2026-04-17 22:57:47 +02:00
Janis 261dc0da49 feat: Suppress SonarQube warnings for ZobristHash and PolyglotBook and improve coverage configuration
Build & Test (NowChessSystems) TeamCity build failed
2026-04-17 22:49:41 +02:00
Janis 6fb78daacb feat: Suppress SonarQube warnings for ZobristHash and PolyglotBook and improve coverage configuration
Build & Test (NowChessSystems) TeamCity build failed
2026-04-17 22:40:19 +02:00
Janis c9daec475c feat: Add additional files to coverage exclusions and suppress warnings in ZobristHash and PolyglotBook
Build & Test (NowChessSystems) TeamCity build failed
2026-04-17 22:30:59 +02:00
Janis a9cafc35f8 feat: Refactor move ordering logic to improve gain calculation and simplify exchange handling
Build & Test (NowChessSystems) TeamCity build failed
2026-04-17 22:18:59 +02:00
Janis 0f6e32cf08 feat: Improve code formatting and readability in AlphaBetaSearch and related tests
Build & Test (NowChessSystems) TeamCity build failed
2026-04-17 21:57:25 +02:00
Janis 473c62666a feat: Refactor alpha-beta search to improve search parameters and quiescence handling
Build & Test (NowChessSystems) TeamCity build failed
2026-04-17 21:41:11 +02:00
Janis 4f6cc2c0f8 feat: Refactor alpha-beta search to use SearchState for repetition tracking 2026-04-17 19:33:43 +02:00
Janis e2f980df28 feat: Add sonarlint configuration to .gitignore 2026-04-17 19:31:56 +02:00
Janis 46659cdc13 feat: Add tests for bot move repetition handling and hybrid bot behavior
Build & Test (NowChessSystems) TeamCity build failed
2026-04-17 19:21:29 +02:00
Janis 5a66a057b3 feat: Add tests for bot behavior including king position, illegal moves, and game events
Build & Test (NowChessSystems) TeamCity build failed
2026-04-16 21:55:55 +02:00
Janis 8ecfbd6266 feat: Refactor bot participant handling to include player information and update package structure 2026-04-16 21:18:44 +02:00
Janis f8d2858d98 feat: Implement threefold repetition detection and update game rules
Build & Test (NowChessSystems) TeamCity build failed
2026-04-16 21:00:32 +02:00
Janis 5aa1691b32 feat: Update code style configuration to enable per-project settings
Build & Test (NowChessSystems) TeamCity build failed
2026-04-16 18:55:42 +02:00
Janis 96b8249e7e feat: Refactor promotion handling to use UCI notation and improve move validation
Build & Test (NowChessSystems) TeamCity build failed
2026-04-16 18:51:53 +02:00
Janis 95537bc709 feat: Add Lichess eval importer and metadata for NNUE architecture 2026-04-16 18:50:30 +02:00
Janis 8db2c8ca7f feat: Allow configurable hidden layer sizes for NNUE architecture 2026-04-16 18:50:28 +02:00
Janis 227f2e4a41 feat: Add new test cases for various components including PlayerInfo, Move, and JSON parsers 2026-04-16 18:50:28 +02:00
Janis 25b0c9f2fb feat: Implement move repetition handling for bots and update search logic to exclude repeated moves 2026-04-16 18:50:25 +02:00
Janis d6758ed8ec feat: Introduce Participant trait and update GameEngine to support bot participants 2026-04-16 18:50:25 +02:00
Janis c88159ecec feat: Enhance NNUE evaluation with incremental updates and validation checks 2026-04-16 18:50:23 +02:00
Janis 8fb872e958 feat: Implement dataset versioning and management for NNUE training data 2026-04-16 18:50:22 +02:00
Janis 4b52199754 feat: Add new bot components and update game engine tests 2026-04-16 18:50:21 +02:00
Janis 5df5a1875f feat: Improved how NNUE Evalutes 2026-04-16 18:50:18 +02:00
Janis ed26406185 feat: Update BotController and tests for improved bot instantiation and configuration 2026-04-16 18:50:04 +02:00
Janis 3750931251 feat: NCS-43 NNUE high-impact performance optimisations
Implements three high-impact improvements from NCS-43:

1. Incremental L1 accumulator — L1 pre-activations are maintained
   per-ply on a stack and updated by column-add/subtract when pieces
   move, reducing L1 cost from O(768×1536) to O(pieces×1536) for root
   init and O(changed_pieces×1536) per node. Column-major weight
   transposition (l1WeightsT) makes each update sequential in memory.

2. Eval cache — a 256 K direct-mapped cache keyed by Zobrist hash
   skips the L2-L5 forward pass for positions seen during quiescence,
   where the same position often recurs across capture sequences.

3. Dynamic time allocation — NNUEBot now grants 1 500 ms in complex
   positions (> 30 legal moves) and 500 ms in nearly-terminal ones
   (< 5 moves), instead of a fixed 1 000 ms budget.

Accumulator hooks (initAccumulator, pushAccumulator, copyAccumulator,
evaluateAccumulator) are added to the Evaluation trait with no-op
defaults, so ClassicalBot and HybridBot are unaffected.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 18:50:04 +02:00
Janis 1b5759828b feat: enhance AlphaBetaSearch with incremental search hash updates and improve move ordering logic 2026-04-16 18:50:03 +02:00
Janis 75286a8773 feat: enhance AlphaBetaSearch with move timing and improve king square detection in GameContext 2026-04-16 18:50:03 +02:00
Janis 01c8a0f8fe feat: add metadata files for NNUE weights versions and implement burst training functionality with subsampling options 2026-04-16 18:50:02 +02:00
Janis 5d4cf5f13c feat: add hybrid bot implementation and enhance NNUE training pipeline with tactical data extraction 2026-04-16 18:50:00 +02:00
Janis 0bf1d52132 feat: enhance training and evaluation processes with new parameters and normalization options 2026-04-16 18:50:00 +02:00
Janis a5560285fd feat: enhance training and evaluation processes with new parameters and normalization options 2026-04-16 18:50:00 +02:00
Janis 34945e4fb8 feat: enhance nnue.py and train.py with options for existing labels and improved file handling 2026-04-16 18:49:59 +02:00
Janis adc2de23bc feat: add rich console interface for NNUE training pipeline and update requirements 2026-04-16 18:49:59 +02:00
Janis b25be99dcf feat: integrate NNUE bot and add Python training pipeline with weight export functionality 2026-04-16 18:49:58 +02:00
Janis 6a9ac55b31 feat: refactor AlphaBetaSearch and ClassicalBot for improved evaluation and organization 2026-04-16 18:49:58 +02:00
Janis 558f43d0f6 feat: refactor AlphaBetaSearch and ClassicalBot for improved evaluation and organization 2026-04-16 18:49:58 +02:00
Janis 539f53b000 feat: enhance AlphaBetaSearch with parallel processing and improved move ordering 2026-04-16 18:49:57 +02:00
Janis 0bc7282dfa feat: enhance evaluation logic with mobility scoring and positional bonuses 2026-04-16 18:49:57 +02:00
Janis 8e208b8a25 feat: implement bot functionality with difficulty levels and integrate Polyglot opening book 2026-04-16 18:49:56 +02:00
Janis 3b945da958 feat: add AlphaBetaSearch and bot implementation with difficulty levels 2026-04-16 18:49:56 +02:00
Janis a247eb3d0d feat: add AlphaBetaSearch and bot implementation with difficulty levels 2026-04-16 18:49:55 +02:00