Skip to content

fix(runner): bake unzip, zip, and the python alias into both sandbox runtimes - #5649

Merged
mmabrouk merged 2 commits into
release/v0.107.0from
fix/sandbox-shell-tools
Aug 2, 2026
Merged

fix(runner): bake unzip, zip, and the python alias into both sandbox runtimes#5649
mmabrouk merged 2 commits into
release/v0.107.0from
fix/sandbox-shell-tools

Conversation

@mmabrouk

@mmabrouk mmabrouk commented Aug 2, 2026

Copy link
Copy Markdown
Member

What was broken

Asking an agent to read a file inside a ZIP cost three approval round-trips: the sandbox has no unzip and no plain python, so the agent burned two failed bash calls (exit 127) before discovering python3. Closes #5637. More broadly, the sandboxes lacked the small set of shell tools every coding agent reaches for first, so ordinary tasks kept paying failed-call and approval overhead.

Fix

Both sandbox runtimes get the same additions in their existing package layer:

unzip, zip, python-is-python3 (the plain python name), ripgrep (rg), fd-find (with a symlink so fd works; Debian ships it as fdfind), jq, procps (ps), file, and tree.

  • Local sandbox = the runner container: docker/Dockerfile.dev and docker/Dockerfile.gh. Railway and Helm inherit automatically (they wrap the published runner image).
  • Daytona sandbox: the snapshot recipe images/sandbox/daytona/build_snapshot.py. The snapshot name is pinned, so every account that runs Daytona must rebuild once with --force; that operations step is documented in the recipe README and the self-host Daytona page.

Verification

Both runner images were really built and probed from inside: every tool resolves and runs (rg 13.0.0, jq 1.6, ps 4.0.2, file 5.44, tree 2.1.0, fd 8.6.0 via the symlink chain, python 3.11.2, unzip 6.00, zip 3.0), plus functional smokes (fd finds a file, rg counts a match). The gh image was verified as its runtime non-root user. The Daytona recipe compiles; its package set was proven on the same Debian bookworm base, confirmed against the actual base image config.

For reviewers

  • The tool list is deliberately bounded to what agents demonstrably reach for; python3-pip and build tools were left out on purpose (image weight and dependency sprawl deserve their own decision).
  • Operations reminder after merge: each Daytona account (Agenta Cloud included) reruns build_snapshot.py --force once, and stages want a runner-image redeploy.

https://claude.ai/code/session_01McMogkcDRV7UpSAjfd8VKG

@vercel

vercel Bot commented Aug 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agenta-documentation Ready Ready Preview Aug 2, 2026 12:20pm

Request Review

@dosubot dosubot Bot added size:M This PR changes 30-99 lines, ignoring generated files. Backend labels Aug 2, 2026
@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 72a32bf4-0507-4ddf-bb26-5bc944dafe0b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Railway Preview Environment

Status Destroyed (PR closed)

Updated at 2026-08-02T12:30:13.566Z

@mmabrouk
mmabrouk merged commit abaf519 into release/v0.107.0 Aug 2, 2026
36 of 37 checks passed
@mmabrouk
mmabrouk deleted the fix/sandbox-shell-tools branch August 2, 2026 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Backend size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant