From 30b0bfb6399e5aeb8e3779d26695e8334228a18b Mon Sep 17 00:00:00 2001 From: Brace Sproul Date: Tue, 19 Aug 2025 17:11:48 -0700 Subject: [PATCH] feat: Dont open empty PRs (#782) --- .../src/graphs/programmer/nodes/open-pr.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/apps/open-swe/src/graphs/programmer/nodes/open-pr.ts b/apps/open-swe/src/graphs/programmer/nodes/open-pr.ts index 6c3c7343..5068c987 100644 --- a/apps/open-swe/src/graphs/programmer/nodes/open-pr.ts +++ b/apps/open-swe/src/graphs/programmer/nodes/open-pr.ts @@ -113,10 +113,27 @@ export async function openPullRequest( ); } + const repoPath = getRepoAbsolutePath(state.targetRepository); + + // First, verify that there are changed files + const gitDiffRes = await sandbox.process.executeCommand( + `git diff --name-only ${state.targetRepository.branch ?? ""}`, + repoPath, + ); + if (gitDiffRes.exitCode !== 0 || gitDiffRes.result.trim().length === 0) { + // no changed files + const sandboxDeleted = await deleteSandbox(sandboxSessionId); + return { + ...(sandboxDeleted && { + sandboxSessionId: undefined, + dependenciesInstalled: false, + }), + }; + } + let branchName = state.branchName; let updatedTaskPlan: TaskPlan | undefined; - const repoPath = getRepoAbsolutePath(state.targetRepository); const changedFiles = await getChangedFilesStatus(repoPath, sandbox, config); if (changedFiles.length > 0) {