From 19f34abf0ce4d3d7d75aa734cca852a074fa5377 Mon Sep 17 00:00:00 2001 From: Davide Cappellini Date: Sat, 22 Aug 2026 21:09:07 +0200 Subject: [PATCH] fix(SAC_LSTM_Bot): freeze mirror-twin via eval-mode gate in twin launcher MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SACLSTM_EVAL_MODE=1 in SacTwin.sh suppresses all sendTrainingMsg traffic (lever-4 gate), so the twin never trains — not even in-RAM within a battle. Required now that the main bot's SACLSTM_SAVE_INTERVAL drops to 1 (v2 relaunch after checkpoint-cadence diagnosis): without the gate the twin would persist per-battle drift and stop being the frozen reproducible opponent #54 specifies. --- SAC_LSTM_Bot/make_twin.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SAC_LSTM_Bot/make_twin.sh b/SAC_LSTM_Bot/make_twin.sh index 2858cee..1955b28 100755 --- a/SAC_LSTM_Bot/make_twin.sh +++ b/SAC_LSTM_Bot/make_twin.sh @@ -46,6 +46,11 @@ cat > "$TARGET/SacTwin.sh" <<'EOF' DIR="$(cd "$(dirname "$0")" && pwd)" export SACLSTM_BOT_JSON="$DIR/SacTwin.json" export SACLSTM_WEIGHTS_PATH="$DIR/weights/sac_latest.zip" +# Freeze contract (#54): the twin is a FROZEN sparring partner, not a +# co-learner. Eval-mode gate (lever 4) suppresses all sendTrainingMsg traffic, +# so the twin never trains — not even in-RAM within a battle. Without this, +# any main-bot checkpoint-interval change would let twin drift accumulate. +export SACLSTM_EVAL_MODE=1 exec "$DIR/SAC_LSTM_Bot" EOF chmod +x "$TARGET/SacTwin.sh" "$TARGET/SAC_LSTM_Bot"