From 3ef179d1a67b000c0b6e6a91e84fdc179af1cdfe Mon Sep 17 00:00:00 2001 From: arcattack Date: Wed, 22 Jul 2026 14:54:28 -0500 Subject: [PATCH] Console: retire --reserve for local seats (locked the operator's own join out -- ROSTER FULL on every seat request, field report). Local instances seat-request like every joiner now; trim-on-launch makes exact seat ownership moot. Co-Authored-By: Claude Opus 4.8 (1M context) --- tools/btoperator.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/tools/btoperator.py b/tools/btoperator.py index 890048b..d525586 100644 --- a/tools/btoperator.py +++ b/tools/btoperator.py @@ -577,14 +577,12 @@ class Operator(QMainWindow): args += ["--relay", str(self.f_port.value()), self.egg_path] if self.f_manual.isChecked(): args += ["--manual-launch"] - # RESERVE the operator's LOCAL seats so a remote join.bat can't be - # assigned one before the (slow-to-boot) local instance claims it - # -- the seat-collision that dropped the operator's pod + stalled - # the launch (field report 2026-07-18). - local_tags = [tags[r] for r in range(self.table.rowCount()) - if self._row_local(r) and r < len(tags)] - if local_tags: - args += ["--reserve", ",".join(local_tags)] + # --reserve RETIRED (2026-07-22): it protected the operator's + # BT_SELF-pinned local seats from walk-up assignment, but local + # instances now request seats like every joiner -- reserving + # their seats locked THEM out ("ROSTER FULL" on the operator's + # own launch, field report). Seat order is first-come now; the + # trim-on-launch flow makes exact seats moot. else: # mesh: console dials each pod's CONSOLE port (= game port - 1) args += [self.egg_path]