feat(official-bots): make HybridBot veto actionable and use it for expert
Build & Test (NowChessSystems) TeamCity build finished

When classical and NNUE evals diverge above the veto threshold, HybridBot
now re-searches excluding the suspect move and switches to NNUE's preferred
alternative instead of merely logging. BotController maps the expert bot to
HybridBot so tournament auto-join uses it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-23 10:30:10 +02:00
parent ff492e1dc8
commit 1df29cf3a6
3 changed files with 58 additions and 65 deletions
@@ -1,14 +1,17 @@
package de.nowchess.bot
import de.nowchess.bot.bots.ClassicalBot
import de.nowchess.bot.bots.{ClassicalBot, HybridBot}
import jakarta.enterprise.context.ApplicationScoped
import org.jboss.logging.Logger
object BotController:
private val log = Logger.getLogger(classOf[BotController])
private val bots: Map[String, Bot] = Map(
"easy" -> ClassicalBot(BotDifficulty.Easy),
"medium" -> ClassicalBot(BotDifficulty.Medium),
"hard" -> ClassicalBot(BotDifficulty.Hard),
"expert" -> ClassicalBot(BotDifficulty.Expert),
"expert" -> HybridBot(BotDifficulty.Expert, vetoReporter = log.debug(_)),
)
def getBot(name: String): Option[Bot] = bots.get(name.toLowerCase)