v1.0.56
Search correctness and efficiency
- Repetition detection no longer scans across synthetic null moves. This removes fictitious draw detections while reducing the deterministic depth-12 tree by 1.17% (3,018,272 to 2,982,995 nodes).
- In a 400-game paired match, the null-move repetition fix scored 121 wins, 104 losses and 175 draws: +14.8 Elo, with a 95% confidence interval of -11.0 to +40.7.
- En-passant state is now canonical: uncapturable en-passant squares no longer create phantom Zobrist positions. The full bench fell 0.30%, while the position that exposed the defect fell 12.90% with the same best move.
- Checkmate now correctly takes precedence over a claimable 50-move draw at the boundary.
Evaluation and testing tools
- Raw static evaluation is separated from search evaluation, making evaluation attribution clearer and reproducible.
- Evaluation-attribution runs now use deterministic settings and report their effective configuration.
- Resumable datagen no longer repeats already completed work when extending a dataset.
Validation
- Full optimized suite: 172 passed, 0 failed, 3 ignored.
- Formatting and production-target Clippy passed.
- The UCI handshake reports Rusty Rival 1.0.56.
- Six platform binaries built successfully, including portable and AVX2 variants for Windows and Linux.
Full changelog: v1.0.55...v1.0.56