fix(bot): include quiet promotions in quiescence search
Build & Test (NowChessSystems) TeamCity build finished

Quiescence tactical filter only flagged capture-promotions, so a quiet
queening on an empty back-rank square was treated as non-tactical and
skipped at the search horizon. A bot could therefore miss a winning
promotion sitting exactly at the horizon and play another move. All bots
(Classical/NNUE/Hybrid) share AlphaBetaSearch and were affected.

Treat every promotion as tactical so quiescence always expands it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Janis Eccarius
2026-06-29 19:18:31 +02:00
parent 4a397eed7f
commit 4938560014
2 changed files with 25 additions and 1 deletions
@@ -468,5 +468,5 @@ final class AlphaBetaSearch(
private def isCapture(context: GameContext, move: Move): Boolean = move.moveType match
case MoveType.Normal(true) => true
case MoveType.EnPassant => true
case MoveType.Promotion(_) => context.board.pieceAt(move.to).exists(_.color != context.turn)
case MoveType.Promotion(_) => true
case _ => false