From 1755580b955907a5b5e80b6eced6efcacdcaab36 Mon Sep 17 00:00:00 2001 From: m3taversal Date: Wed, 15 Apr 2026 17:06:12 +0100 Subject: [PATCH] Harden already-merged detection to exact string match Ganymede review nit: substring match on "already" could false-positive on future return strings. Pin to the two known values from cherry_pick(). Co-Authored-By: Claude Opus 4.6 (1M context) --- lib/merge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/merge.py b/lib/merge.py index 0f28670..bac96da 100644 --- a/lib/merge.py +++ b/lib/merge.py @@ -1464,7 +1464,7 @@ async def _merge_domain_queue(conn, domain: str) -> tuple[int, int]: # Cherry-pick returns "already merged" when all commits are empty. # The branch ref still points at old commits (not a descendant of main), # so pushing branch_sha:main would fail as non-fast-forward. - if "already" in pick_msg.lower(): + if pick_msg in ("already merged (all commits empty)", "already up to date"): conn.execute( "UPDATE prs SET status = 'merged', merged_at = datetime('now'), last_error = NULL WHERE number = ?", (pr_num,),