Minor Changes
- 6f9364a: Sandboxes are now stopped when the eve server shuts down. Self-hosted production servers stop every open sandbox (microsandbox VMs, Docker containers, Vercel sandboxes, just-bash interpreters) on
SIGTERM/SIGINT, matching the cleanupeve devalready performs, and sessions reattach from persisted state on the next start. Breaking change for custom sandbox backends:SandboxBackendHandlegains a requiredshutdown()and the unuseddispose()is removed.
Patch Changes
- 7699e98:
eve evalnow prints a clear, actionable message when it finds no evals but detects*.eval.tsfiles placed insideagent/. Instead of the generic "No evals found", it names the offending directories and reminds you that eval files belong in the top-levelevals/directory (a sibling ofagent/). - f3a05c5:
ToolContextandApprovalContextnow exposecallId, the tool call id carried by the call's stream events, so approval-gated tools can key records to one identity across proposal, rejection, and execution. - f9621b6: Resuming a durable session whose history references a file attachment no longer fails the turn when the staged bytes are gone (for example after a redeploy pointed the session at a fresh sandbox). The missing attachment degrades to a
FileNotFoundtext notice the model can interpret, so the run continues instead of ending insession.failed. - c233a6a: The turn harness now propagates a cooperative
AbortSignalend to end: model calls, retries, recovery, compaction, and tool executions all honor it, and an aborted turn settles with a canonicalTurnCancelledErrorthat is never retried or misclassified as a failure. Authored tools receive the signal asctx.abortSignal(and via the AI SDK execute options), and framework tools forward it into sandbox commands, file I/O,web_fetch, and MCP/OpenAPI connection calls. This is the lowest layer of turn cancellation — no trigger exists yet, so runtime behavior is unchanged until the cancellation API ships.