fix: Handle claude CLI exit code 1 for successful responses

Claude CLI returns exit code 1 even when successfully generating output.
Check for stdout content before failing on non-zero exit codes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
rob 2025-10-31 09:57:26 -03:00
parent 4176f51e7d
commit 4aa5d01588
1 changed files with 6 additions and 0 deletions

View File

@ -224,6 +224,12 @@ def call_model(model: ModelConfig, prompt: str, cwd: Path) -> str:
cwd=str(cwd), cwd=str(cwd),
shell=True, shell=True,
) )
# Check if we got output even if returncode is non-zero
# (claude CLI returns 1 even on successful prompt responses)
if result.stdout.strip():
return result.stdout
# Only raise error if we got nothing useful
if result.returncode != 0: if result.returncode != 0:
raise PatchGenerationError(f"AI command failed ({result.returncode}): {result.stderr.strip()}") raise PatchGenerationError(f"AI command failed ({result.returncode}): {result.stderr.strip()}")
return result.stdout return result.stdout