From c3d029cab9aba8dae4ff1825ea8c4d29f6ee38f2 Mon Sep 17 00:00:00 2001 From: claude Date: Sun, 11 Oct 2026 12:41:12 -0700 Subject: [PATCH] promote_next: tolerate a card another beat already promoted Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01UpT7eWzeLhRwuYmsSQnbRb --- .github/time/time.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/time/time.py b/.github/time/time.py index 3cc9ede..e885e86 100644 --- a/.github/time/time.py +++ b/.github/time/time.py @@ -267,7 +267,12 @@ def promote_next() -> int | None: for card in sorted(queued, key=lambda i: i["number"]): deps = [int(d) for d in re.findall(r"Depends on #(\d+)", card.get("body") or "")] if all(gh("GET", f"/repos/{REPO}/issues/{d}")["state"] == "closed" for d in deps): - gh("DELETE", f"/repos/{REPO}/issues/{card['number']}/labels/queued") + try: + gh("DELETE", f"/repos/{REPO}/issues/{card['number']}/labels/queued") + except RuntimeError as e: + if "404" in str(e): # another beat promoted it first + continue + raise gh("POST", f"/repos/{REPO}/issues/{card['number']}/labels", {"labels": ["ready"]}) return card["number"] return None