Syzygy endgame conversion correctness
- Root tablebase selection now uses the Syzygy library recommendation, correctly treating a root pawn move or capture as an immediate zeroing move.
- Winning tablebase moves that would complete threefold repetition are rejected, allowing repetition-aware search to choose a safe alternative.
- Root probing retains the existing eligibility guard, including rejection of positions with live castling rights.
This fixes the production game https://lichess.org/tsivYCHeHQ8Y, where 1.0.56 bypassed normal search, repeatedly postponed a pawn move, and drew a queen, knight and two pawns versus lone king ending. From the incident position, 1.0.57 chooses 65.c4 instead of beginning the king walk.
Validation
- CodeRabbit approved the fix after its castling-rights review finding was addressed.
- Full optimized suite: 170 passed, 0 failed, 2 ignored.
- The exact incident position and repetition history both return c3c4 rather than the drawing king move.
- The deterministic non-tablebase benchmark is unchanged from 1.0.56: 2,982,995 nodes and 473,630 cutoffs.
- The UCI handshake reports Rusty Rival 1.0.57.
- Six platform binaries built successfully, including portable and AVX2 variants for Windows and Linux.
Full changelog: v1.0.56...v1.0.57