From 224eaff5f865e4fd644969c3559a451d6fa8f9b2 Mon Sep 17 00:00:00 2001 From: arcattack Date: Wed, 22 Jul 2026 20:04:45 -0500 Subject: [PATCH] Console: RE_RELAY_READY name collision -- the new seat-ready regex silently replaced the WAITING-FOR-OPERATOR matcher (class-body last assignment wins), breaking the LAUNCH button re-arm for back-to-back missions. Renamed the old matcher RE_RELAY_WAITOP; both paths regression-checked in isolation. Co-Authored-By: Claude Opus 4.8 (1M context) --- tools/btoperator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/btoperator.py b/tools/btoperator.py index e6e07ed..400215d 100644 --- a/tools/btoperator.py +++ b/tools/btoperator.py @@ -62,7 +62,7 @@ class SessionMonitor: RE_RELAY_RUN = re.compile(r"RunMission #(\d+) sent") RE_RELAY_STAT = re.compile(r"\[relay-stats\] (.*)") RE_RELAY_DOWN = re.compile(r"game\[.* host=(\d+)\] dropped") - RE_RELAY_READY = re.compile(r"WAITING FOR OPERATOR") + RE_RELAY_WAITOP = re.compile(r"WAITING FOR OPERATOR") RE_RELAY_SEAT = re.compile( r"SEAT (\d+) PRESENT tag='([^']*)' callsign='([^']*)' mech='([^']*)'") RE_RELAY_FREED = re.compile(r"SEAT (\d+) FREED tag='([^']*)'") @@ -92,7 +92,7 @@ class SessionMonitor: if m: self.eggs = int(m.group(1)) changed = True - if self.RE_RELAY_READY.search(line): + if self.RE_RELAY_WAITOP.search(line): # WAITING FOR OPERATOR = pods are ready to launch. Reset # `launched` so the LAUNCH button re-enables -- this fires # again for a NEW mission after the pods rejoin (back-to-back