Skip to content

fix(sdk): return grep errors for sandbox exec failures - #3637

Merged
Mason Daugherty (mdrxy) merged 1 commit into
mainfrom
mdrxy/sdk/fix-grep-err
May 27, 2026
Merged

fix(sdk): return grep errors for sandbox exec failures#3637
Mason Daugherty (mdrxy) merged 1 commit into
mainfrom
mdrxy/sdk/fix-grep-err

Conversation

@mdrxy

Copy link
Copy Markdown
Member

Fixes #3441


SandboxBackend.grep now treats non-zero backend execute() results as tool-level grep errors instead of attempting to parse backend diagnostics as grep matches. The grep parser also uses NUL-delimited filenames so paths containing : do not conflict with path:line:text parsing.

Warning

Callers that were relying on the previous ValueError crash for backend exec failures will now receive GrepResult(error=..., matches=None) instead.

Changes

  • Return GrepResult(error=...) when BaseSandbox.grep sees a non-zero backend exec result, including a fallback exit code N message when the backend provides no diagnostic output.
  • Parse grep output with NUL-delimited filenames via grep -Z, preserving support for filenames and matched text that contain colons.
  • Treat fully malformed zero-exit output as a structured grep error while keeping already parsed matches when later output lines are malformed.
  • Preserve existing successful match parsing, empty-result behavior, default path handling, literal search, and glob include behavior.

@github-actions github-actions Bot added deepagents Related to the `deepagents` SDK / agent harness fix A bug fix (PATCH) internal User is a member of the `langchain-ai` GitHub organization size: S 50-199 LOC labels May 27, 2026
@mdrxy
Mason Daugherty (mdrxy) merged commit f87d61f into main May 27, 2026
46 checks passed
@mdrxy
Mason Daugherty (mdrxy) deleted the mdrxy/sdk/fix-grep-err branch May 27, 2026 20:18
Mason Daugherty (mdrxy) added a commit that referenced this pull request May 28, 2026
> [!CAUTION]
> Merging this PR will automatically publish to **PyPI** and create a
**GitHub release**.

For the full release process, see
[`.github/RELEASING.md`](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md).

---

_Everything below this line will be the GitHub release body._

---


##
[0.6.5](deepagents==0.6.4...deepagents==0.6.5)
(2026-05-28)

### Features

* `RubricMiddleware` for self-evaluated agent iteration
([#3529](#3529))
([5b8d44d](5b8d44d))
* Log when grep falls back from ripgrep
([#3593](#3593))
([379b1ff](379b1ff))

### Bug Fixes

* Use `file_path` kwarg in `read_file` examples
([#3630](#3630))
([97946ee](97946ee))
* `read_file` pagination skipping lines after wrapping
([#3641](#3641))
([390551d](390551d))
* Handle `None` state in messages delta reducer
([#3636](#3636))
([5a6d920](5a6d920))
* Return grep errors for sandbox exec failures
([#3637](#3637))
([f87d61f](f87d61f))

---

_Everything above this line will be the GitHub release body._

---

> [!NOTE]
> A **New Contributors** section is appended to the GitHub release notes
automatically at publish time (see [Release
Pipeline](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md#release-pipeline),
step 2).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Mason Daugherty <github@mdrxy.com>
Marcelo5444 pushed a commit to Marcelo5444/deepagents that referenced this pull request Jul 30, 2026
…3637)

Fixes langchain-ai#3441

---

`SandboxBackend.grep` now treats non-zero backend `execute()` results as
tool-level grep errors instead of attempting to parse backend
diagnostics as grep matches. The grep parser also uses NUL-delimited
filenames so paths containing `:` do not conflict with `path:line:text`
parsing.

> [!WARNING]
> Callers that were relying on the previous `ValueError` crash for
backend exec failures will now receive `GrepResult(error=...,
matches=None)` instead.

## Changes
- Return `GrepResult(error=...)` when `BaseSandbox.grep` sees a non-zero
backend exec result, including a fallback `exit code N` message when the
backend provides no diagnostic output.
- Parse grep output with NUL-delimited filenames via `grep -Z`,
preserving support for filenames and matched text that contain colons.
- Treat fully malformed zero-exit output as a structured grep error
while keeping already parsed matches when later output lines are
malformed.
- Preserve existing successful match parsing, empty-result behavior,
default path handling, literal search, and `glob` include behavior.
Marcelo5444 pushed a commit to Marcelo5444/deepagents that referenced this pull request Jul 30, 2026
> [!CAUTION]
> Merging this PR will automatically publish to **PyPI** and create a
**GitHub release**.

For the full release process, see
[`.github/RELEASING.md`](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md).

---

_Everything below this line will be the GitHub release body._

---


##
[0.6.5](langchain-ai/deepagents@deepagents==0.6.4...deepagents==0.6.5)
(2026-05-28)

### Features

* `RubricMiddleware` for self-evaluated agent iteration
([langchain-ai#3529](langchain-ai#3529))
([5b8d44d](langchain-ai@5b8d44d))
* Log when grep falls back from ripgrep
([langchain-ai#3593](langchain-ai#3593))
([379b1ff](langchain-ai@379b1ff))

### Bug Fixes

* Use `file_path` kwarg in `read_file` examples
([langchain-ai#3630](langchain-ai#3630))
([97946ee](langchain-ai@97946ee))
* `read_file` pagination skipping lines after wrapping
([langchain-ai#3641](langchain-ai#3641))
([390551d](langchain-ai@390551d))
* Handle `None` state in messages delta reducer
([langchain-ai#3636](langchain-ai#3636))
([5a6d920](langchain-ai@5a6d920))
* Return grep errors for sandbox exec failures
([langchain-ai#3637](langchain-ai#3637))
([f87d61f](langchain-ai@f87d61f))

---

_Everything above this line will be the GitHub release body._

---

> [!NOTE]
> A **New Contributors** section is appended to the GitHub release notes
automatically at publish time (see [Release
Pipeline](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md#release-pipeline),
step 2).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Mason Daugherty <github@mdrxy.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

deepagents Related to the `deepagents` SDK / agent harness fix A bug fix (PATCH) internal User is a member of the `langchain-ai` GitHub organization size: S 50-199 LOC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SandboxBackend.grep crashes with ValueError when container exec fails

1 participant