-
Notifications
You must be signed in to change notification settings - Fork 312
feat(sandbox): remote & multi-backend sandbox support (Vercel, Daytona, Firecracker) #942
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
penso
wants to merge
90
commits into
main
Choose a base branch
from
flaxen-cemetery
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 11 commits
Commits
Show all changes
90 commits
Select commit
Hold shift + click to select a range
99e8cf0
feat(sandbox): multi-backend router with per-session backend selection
penso f1b6047
feat(sandbox): workspace sync for isolated backends
penso 87dfeaf
feat(sandbox): add Vercel Sandbox backend (Firecracker microVM)
penso 0d79fb2
feat(sandbox): add Daytona Sandbox backend (cloud sandbox)
penso 95be5c6
feat(sandbox): add local Firecracker backend (microVM without Docker)
penso 3977ed9
feat(web-ui): remote sandbox backend configuration settings
penso 8dec2c2
fix(sandbox): address greptile review feedback (greploop iteration 1)
penso d887e9d
fix(sandbox): address greptile review feedback (greploop iteration 2)
penso 1a57c1a
fix(sandbox): address greptile review feedback (greploop iteration 3)
penso 3d48f5a
fix(sandbox): address greptile review feedback (greploop iteration 4)
penso beb99bf
fix(sandbox): address greptile review feedback (greploop iteration 5)
penso 41567c3
feat(sandbox): cross-backend package provisioning for remote sandboxes
penso bdcefed
feat(sandbox): pre-built image/snapshot caching for remote backends
penso 98c4934
fix(sandbox): address PR review threads
penso 96192a5
fix(sandbox): quote cwd in Firecracker SSH exec
penso b77fb73
fix(sandbox): kill leaked VM process and escape mkdir path
penso ced6414
fix(sandbox): prevent process leak and subnet overflow in Firecracker
penso bae8cbb
fix(sandbox): use base64-encoded command wrapper for Daytona stderr
penso 18b72bb
fix(sandbox): quote sandbox_workspace paths in sync shell commands
penso e6b5b56
fix(sandbox): add #[allow(clippy::unwrap_used)] to test modules
penso bdeb04e
fix: use short HashMap import in web api.rs
penso 3711776
Merge remote-tracking branch 'origin/main' into flaxen-cemetery
penso fef9147
refactor(gateway): extract sandbox init into prepare_core/sandbox.rs
penso 03f3c6a
fix: resolve pre-existing clippy lints from main merge
penso d4d8f56
fix: remove unused Ordering import from prepare_core.rs
penso 9d17e71
style: format prepare_core.rs imports
penso 034fc06
test(e2e): add remote sandbox backend configuration tests
penso 7e36ae3
test(e2e): add live integration tests for Vercel and Daytona sandboxes
penso f65b87b
docs: add remote sandbox backends documentation
penso 7bed45d
fix(e2e): add VERCEL_PROJECT_ID to live sandbox tests (required by API)
penso 68efad4
fix(e2e): fix Vercel stop 415 (add Content-Type) and Daytona exec 404…
penso 650bfd6
fix(e2e): retry Daytona sandbox creation on transient 5xx errors
penso 6443e50
fix(e2e): increase Daytona live test timeout to 120s (slow sandbox st…
penso 1d18b8e
fix(sandbox): update Daytona API paths from /workspace to /sandbox
penso 5273b74
chore: add root-level test-results/ to gitignore
penso 28503d7
Merge remote-tracking branch 'origin/main' into flaxen-cemetery
penso c007011
feat(web-ui): split sandbox settings into tabbed layout
penso 6cb0957
fix(sandbox): Vercel project_id is required, improve build error mess…
penso 476290b
fix(e2e): fix Daytona cleanup paths from /workspace to /sandbox
penso 2128276
feat(web-ui): add backend selector dropdown in General tab
penso 4d68e18
fix(sandbox): add debug/warn logging to image build pipeline
penso 64def80
fix(sandbox): image builder falls back to alternate CLI on daemon error
penso 995176c
fix(sandbox): web UI image build uses correct CLI for active backend
penso c1be950
fix(sandbox): image list handler uses correct CLI for active backend
penso 056523f
refactor(sandbox): DRY image CLI selection via DockerImageBuilder::fo…
penso 017b1d9
feat(web-ui): per-session backend selector in sandbox image dropdown
penso fde5cf3
feat(web-ui): General tab shows all available backends, no restart ne…
penso 4c6df95
fix(sandbox): remote backend 'configured' status checks env vars too
penso eb30648
refactor(config): env var aliases for sandbox credentials, remove man…
penso a8f8eb5
test(config): add unit tests for env var alias feature
penso ccc23d9
fix(web-ui): fix configured badge visibility and show token hint
penso 06bdaab
feat(web-ui): disable token inputs when set via environment variable
penso 2635047
fix(web-ui): badge colors, clickable backend pills, prune button style
penso 202534f
fix(web-ui): backend pill click sets default, smaller prune button
penso 0f301b8
fix(sandbox): remap /home/sandbox to correct workspace for remote bac…
penso bab7504
feat(terminal): allow opening terminal into running sandbox containers
penso bfc48cf
fix(terminal): pass container_target to restart spawn call
penso 13936b2
Merge remote-tracking branch 'origin/main' into flaxen-cemetery
penso 2c60351
fix(sandbox): harden remote backend sync and config writes
penso 15551f0
fix(web-ui): remove unused backend labels
penso b95cfd7
fix(tools): preserve safe sync-out symlinks
penso ea5fa5a
fix(config): redact sandbox credentials in debug
penso e4529e2
fix(config): store sandbox credentials as secrets
penso da36050
fix(tools): handle hardlinks and sandbox creation races
penso 5a25716
fix(tools): harden workspace sync extraction
penso 8484bf9
fix(tools): preserve remote workspace subdirectories
penso 472b074
fix(tools): forward exec env in remote sandboxes
penso 23c542e
fix(tools): harden cloud sandbox validation
penso b0350b2
fix(tools): stop leaked vercel setup sandboxes
penso abe041b
fix(gateway): restore persisted sandbox backend overrides
penso 3dd7fd9
fix(tools): clean up firecracker build failures
penso 406d551
fix(tools): scope sandbox prebuild images by backend
penso c5fc297
style(web): format remote sandbox live test
penso 8a304a0
fix(tools): harden remote sandbox command cleanup
penso 20d754c
fix(tools): stop vercel sandbox on snapshot request failure
penso fdc95e6
fix(tools): unblock isolated exec waiters on prepare failure
penso 87bba11
fix(web): report firecracker backend and skip unusable live e2e
penso 12c7012
fix(tools): clean up sandbox build resources
penso 4ac1d7b
fix(tools): fail fast on isolated sync preparation errors
penso 2152a1d
fix(tools): harden vercel sandbox lifecycle parsing
penso ce7b26b
fix(tools): resolve firecracker binary from path
penso 25e173a
fix(tools): preserve vercel inline command output
penso fce7297
fix(tools): fall back to vercel inline output
penso 86fcd68
fix(tools): handle unparseable vercel sandbox ids
penso 7e04bd2
fix(tools): upload firecracker writes with scp
penso d99fd40
fix(tools): skip symlink collisions during sync extract
penso 120c80f
fix(tools): skip unsafe sync extract parents
penso f4e580d
fix(tools): remove host tar dependency from sync
penso 48045f3
fix(tools): retry isolated sync after failure
penso eebffd8
fix(tools): clear stale sync state before retry
penso File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
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
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
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
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
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
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
1 change: 1 addition & 0 deletions
1
crates/sessions/migrations/20260430120000_session_sandbox_backend.sql
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ALTER TABLE sessions ADD COLUMN sandbox_backend TEXT; |
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.