From f25780b1d84e95b2cb34acc1736fcfb982abef03 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Wed, 26 Aug 2026 11:05:02 -0600 Subject: [PATCH] =?UTF-8?q?fix(main-lane):=20tag=20namespace=20exhausted?= =?UTF-8?q?=20after=20100=20waves=20=E2=80=94=20extended=20with=20a=20seco?= =?UTF-8?q?nd=20prefix=20(200=20tags);=20the=20lane=20crash-looped=20for?= =?UTF-8?q?=202h=20while=20parked=20drafts=20waited=20(R51=20finite-namesp?= =?UTF-8?q?ace=20class)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/main_lane.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/tools/main_lane.py b/tools/main_lane.py index 345287ade..76f272ae8 100644 --- a/tools/main_lane.py +++ b/tools/main_lane.py @@ -68,13 +68,17 @@ def log(msg): def next_tag(): - """m00, m01, … — a 3-character namespace so it can never collide with the overlay lane's - 2-letter wave tags (its `used` set globs `.run/wave_??_cards.json`).""" - used = {os.path.basename(p)[5:8] for p in glob.glob(".run/wave_m??_cards.json")} - for i in range(100): - t = f"m{i:02d}" - if t not in used: - return t + """m00..m99 then n00..n99 — 3-character namespaces that can never collide with the overlay + lane's 2-letter wave tags (its `used` set globs `.run/wave_??_cards.json`). The original single + prefix EXHAUSTED on 2026-08-26 after the overnight campaign consumed all 100 m-tags, and the + lane crash-looped "out of main-lane tags" every 20 s while ~103 parked drafts waited (the R51 + finite-namespace class: a lifetime cap nobody expected to reach).""" + used = {os.path.basename(q)[5:8] for pat in ("m", "n") for q in glob.glob(f".run/wave_{pat}??_cards.json")} + for pfx in ("m", "n"): + for i in range(100): + t = f"{pfx}{i:02d}" + if t not in used: + return t return None