commits
Remove "modal-" prefix from template name, build the template with
2 CPUs and 2048MB memory before creating the sandbox, and update the
error message to reflect connect-on-failure behavior
Prevent ContextMenu from rendering for anonymous users when a sandbox
has no owner
Poll status up to 30 times (2s interval); error on stopped/error
Update CLI supported providers list to include e2b, hopx, runloop,
and blaxel. In the Hopx provider, add a template.runCmd to echo a
message indicating the template was built from the image.
Try creating the sandbox first and only build the template if
creation fails; log a warning when falling back to template build.
Update dependency lock for the new SDK and related package changes.
Remove unused node:path import in the pty runloop
Attempt devbox creation first; if it fails, log a warning and create
the blueprint with default launch parameters: 2 CPU cores, 4 GB RAM,
10 GB disk, and user "modal" with uid 4444
Append zsh initialization for zoxide, oh-my-posh, ble.sh and atuin to
~/.zshrc across multiple daytona Dockerfiles so the images are set up
for zsh users
Set VERSION=v1.2.1 in Dockerfiles to replace the GitHub API call
for the 'latest' release, avoiding rate limits and ensuring
deterministic builds
Introduce an optional key parameter for session creation and lookup,
defaulting to the sandbox id. Derive the key from the sessionId URL
parameter so shared connections can reuse the same PTY session. Update
all PTY backends and session maps to set/delete by key and propagate it
through getSession/createTerminalSession calls
Buffer messages that arrive before async session creation completes and
replay them once the session exists. Also send a newline after attaching
to
trigger a prompt redraw since initial shell output can be lost while
wsClients is empty.
Replace SSE/EventSource and POST-based input/resize with WebSocket
connections. Send resize messages as JSON and forward keystrokes over
the
ws. Include token as a ws query param and improve close/error handling
and cleanup.
Add Modal and E2B sandbox providers with PTY/SSH and WebSocket
Use tigrisfs for Cloudflare R2 mounts and enable FUSE in Vercel
Rename E2B API key, load presets at runtime, minify prod builds,
and refactor PTY handling for reuse across providers
Create a single HTTP server upgrade handler that dispatches to per-route
WebSocketServers using returned { wss, pathRegex } from attachWebSocket.
Change attachWebSocket APIs to no longer bind to the server and instead
return their wss and pathRegex. Reject unmatched upgrades cleanly.
Also add JWT pre-validation and improved session error handling in the
PTY WS flow, update app-proxy to forward /pty and /tty to the API, and
add a CLI log of the WebSocket URL.
Handle modal and e2b in the ssh command (use tty with pty=false),
extend the Provider union and update the unsupported-provider error
message to include them.
Stop calling decrypt() when constructing ModalClient; pass tokens
directly from options.
Introduce modal and e2b PTY implementations and route sessions based
on DB modalAuth/e2bAuth. Update Context to use TerminalSocket and
Message types and add necessary dependencies.
Strip registry/namespace (use last path segment) when building templates
and creating sandboxes. Add Vitest config, a package.json test script,
and unit tests for parseImageRef.
Import e2bAuth, add e2bAuthParams to AuthParams, fetch the e2bAuth
row from the DB, and decrypt apiKey into e2bApiKey in built credentials
Introduce an optional key parameter for session creation and lookup,
defaulting to the sandbox id. Derive the key from the sessionId URL
parameter so shared connections can reuse the same PTY session. Update
all PTY backends and session maps to set/delete by key and propagate it
through getSession/createTerminalSession calls
Create a single HTTP server upgrade handler that dispatches to per-route
WebSocketServers using returned { wss, pathRegex } from attachWebSocket.
Change attachWebSocket APIs to no longer bind to the server and instead
return their wss and pathRegex. Reject unmatched upgrades cleanly.
Also add JWT pre-validation and improved session error handling in the
PTY WS flow, update app-proxy to forward /pty and /tty to the API, and
add a CLI log of the WebSocket URL.