From 8995d743af2c61d34da2a254fffd904d9298bdc2 Mon Sep 17 00:00:00 2001 From: KoalaTrapLord Date: Sun, 5 Apr 2026 16:19:56 +0000 Subject: [PATCH] fix: remove !quiet guard from ML decision logging in BatchRunner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The condition 'mlLoggingEnabled && !quiet && mlDecisionLogger != null' silently skipped ML training data extraction whenever quiet mode was active. DecisionExtractor works with the same log lines regardless of quiet mode, so the guard was unnecessary and prevented JSONL generation. Now: mlLoggingEnabled && mlDecisionLogger != null — ML logging runs in all modes as long as --ml-log is passed. --- src/main/java/commanderailab/batch/BatchRunner.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/commanderailab/batch/BatchRunner.java b/src/main/java/commanderailab/batch/BatchRunner.java index 2ac528c..a5c7526 100644 --- a/src/main/java/commanderailab/batch/BatchRunner.java +++ b/src/main/java/commanderailab/batch/BatchRunner.java @@ -845,7 +845,11 @@ public class BatchRunner { } } - if (mlLoggingEnabled && !quiet && mlDecisionLogger != null) { + // ML decision logging: extract state+action snapshots from the + // verbose Forge game log for the training pipeline. + // Note: the !quiet guard was removed — ML logging now works in all + // modes. DecisionExtractor parses the same log lines regardless. + if (mlLoggingEnabled && mlDecisionLogger != null) { try { String gid = "game-" + gameIndex + "-" + gameSeed; String[] cmdNames = new String[numPlayers];