From 77c602c8f4fcb74e5e64bc3490840c1491f82adf Mon Sep 17 00:00:00 2001 From: weichen Date: Thu, 24 Sep 2026 14:16:48 +0000 Subject: [PATCH] fix(agentctl): resume integrate prepare from clean expected tip After abort, allow a clean worktree parked on expected-dev to continue merge instead of BASE_CHANGED. --- scripts/agentctl_console.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/agentctl_console.py b/scripts/agentctl_console.py index ba2bf0bc..c119f265 100644 --- a/scripts/agentctl_console.py +++ b/scripts/agentctl_console.py @@ -167,9 +167,11 @@ def integrate_prepare(repo: ac.Repo, args) -> dict: if porcelain: ac.deny('INVALID_REQUEST', 'Existing integrate worktree is dirty', path=str(integ_path)) - # Different base: refuse rather than reset. - ac.deny('BASE_CHANGED', 'Integrate worktree exists for a different base; remove it first', - path=str(integ_path), head=head) + if head != expected: + # Different base: refuse rather than reset. + ac.deny('BASE_CHANGED', 'Integrate worktree exists for a different base; remove it first', + path=str(integ_path), head=head) + # Clean checkout parked on expected-dev (e.g. after abort): continue to merge. else: integ_path.parent.mkdir(exist_ok=True) ac.git(repo.main, 'worktree', 'add', '-b', branch, str(integ_path), expected)