fix(evaluate): set domain + auto_merge on all 5 approval paths
Some checks are pending
CI / lint-and-test (push) Waiting to run
Some checks are pending
CI / lint-and-test (push) Waiting to run
Musings bypass and batch both_approve set status='approved' without domain or auto_merge. Merge gate requires domain IS NOT NULL and prefix match OR auto_merge=1. Result: agent PRs deadlocked for 20+ hours. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
10b4e27c28
commit
ad7ee0831e
1 changed files with 7 additions and 5 deletions
|
|
@ -546,7 +546,8 @@ async def evaluate_pr(conn, pr_number: int, tier: str = None) -> dict:
|
|||
)
|
||||
conn.execute(
|
||||
"""UPDATE prs SET status = 'approved', leo_verdict = 'skipped',
|
||||
domain_verdict = 'skipped' WHERE number = ?""",
|
||||
domain_verdict = 'skipped', domain = COALESCE(domain, 'cross-domain'),
|
||||
auto_merge = 1 WHERE number = ?""",
|
||||
(pr_number,),
|
||||
)
|
||||
return {"pr": pr_number, "auto_approved": True, "reason": "musings_only"}
|
||||
|
|
@ -792,8 +793,8 @@ async def evaluate_pr(conn, pr_number: int, tier: str = None) -> dict:
|
|||
is_agent_pr = not branch_name.startswith(PIPELINE_OWNED_PREFIXES)
|
||||
|
||||
conn.execute(
|
||||
"UPDATE prs SET status = 'approved', auto_merge = ? WHERE number = ?",
|
||||
(1 if is_agent_pr else 0, pr_number),
|
||||
"UPDATE prs SET status = 'approved', domain = COALESCE(domain, ?), auto_merge = ? WHERE number = ?",
|
||||
(domain, 1 if is_agent_pr else 0, pr_number),
|
||||
)
|
||||
db.audit(
|
||||
conn,
|
||||
|
|
@ -1084,7 +1085,8 @@ async def _run_batch_domain_eval(
|
|||
)
|
||||
conn.execute(
|
||||
"UPDATE prs SET status = 'approved', leo_verdict = 'skipped', "
|
||||
"domain_verdict = 'skipped' WHERE number = ?",
|
||||
"domain_verdict = 'skipped', domain = COALESCE(domain, 'cross-domain'), "
|
||||
"auto_merge = 1 WHERE number = ?",
|
||||
(pr_num,),
|
||||
)
|
||||
succeeded += 1
|
||||
|
|
@ -1289,7 +1291,7 @@ async def _run_batch_domain_eval(
|
|||
pr_info = await forgejo_api("GET", repo_path(f"pulls/{pr_num}"))
|
||||
pr_author = pr_info.get("user", {}).get("login", "") if pr_info else ""
|
||||
await _post_formal_approvals(pr_num, pr_author)
|
||||
conn.execute("UPDATE prs SET status = 'approved' WHERE number = ?", (pr_num,))
|
||||
conn.execute("UPDATE prs SET status = 'approved', domain = COALESCE(domain, ?), auto_merge = 1 WHERE number = ?", (domain or "cross-domain", pr_num,))
|
||||
db.audit(
|
||||
conn, "evaluate", "approved",
|
||||
json.dumps({"pr": pr_num, "tier": "STANDARD", "domain": domain,
|
||||
|
|
|
|||
Loading…
Reference in a new issue