fix(sdk): return grep errors for sandbox exec failures - #3637
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #3441
SandboxBackend.grepnow treats non-zero backendexecute()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 withpath:line:textparsing.Warning
Callers that were relying on the previous
ValueErrorcrash for backend exec failures will now receiveGrepResult(error=..., matches=None)instead.Changes
GrepResult(error=...)whenBaseSandbox.grepsees a non-zero backend exec result, including a fallbackexit code Nmessage when the backend provides no diagnostic output.grep -Z, preserving support for filenames and matched text that contain colons.globinclude behavior.