open-swe/agent/tools
langsmith-forge[bot] bd97678a5e
fix: prevent futile retry loop when commit_and_open_pr fails (#1210)
* fix: prevent futile retry loop when commit_and_open_pr fails with git/API errors

- Root cause: when git checkout or GitHub PR API fails, the tool returned a generic {"success": false} error with no signal that retrying is futile, causing the agent to loop 9-13+ times until hitting the 1000-step recursion limit
- Change: (1) git_checkout_branch now returns (bool, str) so the actual git error output is surfaced in the tool response; (2) checkout and PR creation failures now include "fatal": true and an explicit "Do not retry" message; (3) prompt.py COMMIT_PR_SECTION adds an explicit instruction to stop on fatal errors
- Verified: 109 unit tests pass, no regressions

* fix: skip PR safety net on fatal commit failures

* style(open_pr): ruff-format fatal retry skip condition

---------

Co-authored-by: LangSmith Forge <forge-agent@langsmith.ai>
Co-authored-by: Johannes du Plessis <johannes@langchain.dev>
2026-05-01 22:05:22 +00:00
..
__init__.py feat: add github CI check run tools for shepherding CI (#1121) 2026-05-01 12:19:04 -07:00
commit_and_open_pr.py fix: prevent futile retry loop when commit_and_open_pr fails (#1210) 2026-05-01 22:05:22 +00:00
fetch_url.py fix: Shell injection and ssrf issues (#1155) 2026-04-01 12:37:35 -07:00
get_branch_name.py feat: stop auto-cloning and let agent manage repo setup [closes OPE-21] (#1159) 2026-04-10 17:04:55 -07:00
get_pr_review_comments.py fix: add get_pr_review_comments tool to fetch PR review comments with auth (#1043) 2026-04-30 17:01:13 -07:00
github_ci.py feat: add github CI check run tools for shepherding CI (#1121) 2026-05-01 12:19:04 -07:00
github_comment.py feat: add GitHub PR comment trigger and reply support [closes OPE-1] (#1014) 2026-03-09 17:14:13 -07:00
github_review.py fix: block open-swe from approving PRs (#1177) 2026-04-09 11:45:08 -07:00
http_request.py fix: warn against using http_request for GitHub PR creation (#1203) 2026-05-01 14:14:44 -07:00
linear_comment.py chore: Drop monorepo (#1029) 2026-03-06 16:10:34 -08:00
linear_create_issue.py feat: add linear tools for listing teams, get/create/update/delete issues, and get issue comments (#1105) 2026-03-23 14:32:44 -07:00
linear_delete_issue.py feat: add linear tools for listing teams, get/create/update/delete issues, and get issue comments (#1105) 2026-03-23 14:32:44 -07:00
linear_get_issue.py feat: add linear tools for listing teams, get/create/update/delete issues, and get issue comments (#1105) 2026-03-23 14:32:44 -07:00
linear_get_issue_comments.py feat: add linear tools for listing teams, get/create/update/delete issues, and get issue comments (#1105) 2026-03-23 14:32:44 -07:00
linear_list_teams.py feat: add linear tools for listing teams, get/create/update/delete issues, and get issue comments (#1105) 2026-03-23 14:32:44 -07:00
linear_update_issue.py feat: add linear tools for listing teams, get/create/update/delete issues, and get issue comments (#1105) 2026-03-23 14:32:44 -07:00
list_repos.py feat: stop auto-cloning and let agent manage repo setup [closes OPE-21] (#1159) 2026-04-10 17:04:55 -07:00
slack_read_thread_messages.py feat: give agent ability to read cross-posted Slack message links [closes OPE-37] (#1200) 2026-04-29 17:42:27 -07:00
slack_thread_reply.py fix: convert @Name(USER_ID) mentions to Slack's <@USER_ID> format in thread replies (#1126) 2026-03-25 11:51:11 -07:00
web_search.py fix: add Exa web search tool [closes: OPE-29] (#1133) 2026-03-25 16:24:31 -07:00