From 8b5842682d1752601ea395a0267893e24279a45a Mon Sep 17 00:00:00 2001 From: jordan Date: Mon, 9 Feb 2026 14:17:10 -0700 Subject: [PATCH] fix(sdlc): use remote ref for merge when local branch doesn't exist After resetToMain in the executor, only remote refs exist for feature branches. The merge command now checks if the local branch exists and falls back to origin/ when it doesn't. Co-Authored-By: Claude Opus 4.6 --- cmd/sdlc/cmd_merge.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cmd/sdlc/cmd_merge.go b/cmd/sdlc/cmd_merge.go index d769ca5..546a354 100644 --- a/cmd/sdlc/cmd_merge.go +++ b/cmd/sdlc/cmd_merge.go @@ -113,12 +113,21 @@ var mergeCmd = &cobra.Command{ _ = resetCmd.Run() } + // Determine merge ref: prefer local branch, fall back to origin/ + // when running in worker pods where resetToMain leaves only remote refs. + mergeRef := f.Branch + checkBranch := exec.Command("git", "rev-parse", "--verify", f.Branch) + checkBranch.Dir = root + if err := checkBranch.Run(); err != nil { + mergeRef = "origin/" + f.Branch + } + // Merge mergeArgs := []string{"merge"} if strategy == "squash" { mergeArgs = append(mergeArgs, "--squash") } - mergeArgs = append(mergeArgs, f.Branch) + mergeArgs = append(mergeArgs, mergeRef) gitMerge := exec.Command("git", mergeArgs...) gitMerge.Dir = root