v0.12.0
This release adds persistent VM root filesystems for agents that need package installs, language caches, tools, and other machine changes to survive across boots.
const sandbox = defineSandbox({
rootfs: rootfs.persistent({
base: rootfs.builtIn("alpine:3.23"),
path: "/absolute/project/.sandbox/rootfs.qcow2",
}),
});Sandbox creates the state file the first time the VM boots and reuses it on later boots. The built-in VM image stays read-only and shareable across many VMs, while each persistent state file is locked while its VM is running.
The file at path is a QCOW2 overlay: a sparse VM disk image containing only the saved changes layered on top of the read-only built-in image. Sandbox records which built-in image the file belongs to and rejects reuse with a different base, so durable VM state fails closed instead of silently mixing incompatible images.
The README now explains persistent VM state, QCOW2 overlays, and host-owned state in terms of the outcome they provide rather than the storage plumbing behind them.