Skip to content

fix(modal): modal sandboxes fail to upload files#657

Merged
Colin Francis (colifran) merged 7 commits into
mainfrom
colifran/fix-modal
Jul 8, 2026
Merged

fix(modal): modal sandboxes fail to upload files#657
Colin Francis (colifran) merged 7 commits into
mainfrom
colifran/fix-modal

Conversation

@colifran

@colifran Colin Francis (colifran) commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Modal v0.8.0 released the following breaking change:

Breaking: Removed the deprecated low-level file-handle API: Sandbox.Open / SandboxFile (Go), and sandbox.open / SandboxFile (JS). Use the Sandbox Filesystem API instead: sandbox.Filesystem() (Go) / sandbox.filesystem (JS).

Ref: https://github.com/modal-labs/modal-client/blob/main/CHANGELOG_GO_JS.md

This PR updates our implementation to use the sandbox filesystem api

Tests

Updated sandbox.test.ts mocks to model sandbox.filesystem

@changeset-bot

changeset-bot Bot commented Jul 8, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 084a1be

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@langchain/modal Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Jul 8, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
deepagentsjs-ui Ready Ready Preview, Comment Jul 8, 2026 6:46am

Request Review

@colifran Colin Francis (colifran) changed the title fix(modal): modal low level handle open sandbox.open has been removed fix(modal): modal low level handle api sandbox.open has been removed Jul 8, 2026
@pkg-pr-new

pkg-pr-new Bot commented Jul 8, 2026

Copy link
Copy Markdown

Open in StackBlitz

deepagents-acp

npm i https://pkg.pr.new/deepagents-acp@657

deepagents

npm i https://pkg.pr.new/deepagents@657

@langchain/sandbox-standard-tests

npm i https://pkg.pr.new/@langchain/sandbox-standard-tests@657

@langchain/daytona

npm i https://pkg.pr.new/@langchain/daytona@657

@langchain/deno

npm i https://pkg.pr.new/@langchain/deno@657

@langchain/modal

npm i https://pkg.pr.new/@langchain/modal@657

@langchain/node-vfs

npm i https://pkg.pr.new/@langchain/node-vfs@657

@langchain/quickjs

npm i https://pkg.pr.new/@langchain/quickjs@657

commit: 084a1be

@colifran Colin Francis (colifran) changed the title fix(modal): modal low level handle api sandbox.open has been removed fix(modal): modal low level file handle api sandbox.open has been removed Jul 8, 2026

@open-swe open-swe Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Open SWE Review found 1 potential issue.

Open in WebView Open SWE trace

Comment thread libs/providers/modal/src/sandbox.ts Outdated
@colifran Colin Francis (colifran) changed the title fix(modal): modal low level file handle api sandbox.open has been removed fix(modal): modal sandbox fails to upload files Jul 8, 2026
@colifran Colin Francis (colifran) changed the title fix(modal): modal sandbox fails to upload files fix(modal): modal sandboxes fail to upload files Jul 8, 2026
@colifran
Colin Francis (colifran) merged commit 5f93c11 into main Jul 8, 2026
26 checks passed
@colifran
Colin Francis (colifran) deleted the colifran/fix-modal branch July 8, 2026 15:52
@github-actions github-actions Bot mentioned this pull request Jul 8, 2026
Colin Francis (colifran) added a commit that referenced this pull request Jul 8, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/quickjs@0.6.0

### Minor Changes

- [#606](#606)
[`3c8f8b2`](3c8f8b2)
Thanks [@colifran](https://github.com/colifran)! - chore(quickjs):
disallow task as a configurable ptc tool
## deepagents-acp@0.1.16

### Patch Changes

- Updated dependencies
[[`d7ecab2`](d7ecab2),
[`1a2b2df`](1a2b2df),
[`42f34b6`](42f34b6),
[`0ae10d7`](0ae10d7)]:
  - deepagents@1.10.6
## deepagents@1.10.6

### Patch Changes

- [#608](#608)
[`d7ecab2`](d7ecab2)
Thanks [@aolsenjazz](https://github.com/aolsenjazz)! - fix(deepagents):
forward subagent results as text

Fixed a 400 `invalid_request_error` that occurred when a subagent used
an Anthropic server-side tool (web search, web fetch, or code
execution): the subagent's `server_tool_use`/`*_tool_result` blocks were
forwarded to the parent agent as `tool_result` content, which the API
rejects. Subagent results are now passed back to the parent as their
text content (matching the Python implementation), which resolves the
error and also handles a trailing empty `end_turn` message.

- [#656](#656)
[`1a2b2df`](1a2b2df)
Thanks [@colifran](https://github.com/colifran)! - fix(deepagents):
default unknown file extensions to text/plain

- [#611](#611)
[`42f34b6`](42f34b6)
Thanks [@aolsenjazz](https://github.com/aolsenjazz)! - feat(deepagents):
add bedrockPromptCachingMiddleware to default stack

Add bedrockPromptCachingMiddleware to default middleware stack. This
automatically opts-in to Bedrock prompt caching for Nova and Anthropic
models

- [#613](#613)
[`0ae10d7`](0ae10d7)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(deepagents): declare LangChain runtime packages as peer dependencies

Move `@langchain/core`, `@langchain/langgraph`,
`@langchain/langgraph-sdk`, and
`langchain` from `dependencies` to `peerDependencies`, and also declare
`@langchain/langgraph-checkpoint` as a peer (its
`BaseCheckpointSaver`/`BaseStore`
types are part of the public API), so they resolve to a single shared
instance in
  the consumer's tree. Previously they were bundled as regular
dependencies, which let a consumer end up with two copies of
`@langchain/core`
(e.g. `1.2.0` vs `1.2.1`). Because these packages ship classes with
private/
protected fields, the duplicate copies are treated as nominally distinct
types,
producing errors like passing a `ChatOpenAI` model to `createDeepAgent`
or a
compiled graph to the local protocol helpers. As peers, the app controls
the
version and bumping `@langchain/core` no longer requires a `deepagents`
release.
## @langchain/daytona@0.2.1

### Patch Changes

- [#614](#614)
[`5b462f2`](5b462f2)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
Replace deprecated `@daytonaio/sdk` dependency with `@daytona/sdk`.
## @langchain/modal@0.1.5

### Patch Changes

- [#657](#657)
[`5f93c11`](5f93c11)
Thanks [@colifran](https://github.com/colifran)! - fix(modal): modal low
level file handle api `sandbox.open` has been removed
## @deepagents/evals@0.0.15

### Patch Changes

- Updated dependencies
[[`d7ecab2`](d7ecab2),
[`1a2b2df`](1a2b2df),
[`42f34b6`](42f34b6),
[`0ae10d7`](0ae10d7)]:
  - deepagents@1.10.6

---------

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants