feat(driver-vm): snapshot/restore (suspend/resume) for idle sandboxes
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 8.7k
- Forks
- 1.3k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 253
Description
agent sandboxes are idle most of the time, waiting on tool calls, model responses, or humans. right now the ComputeDriver lifecycle is create/stop/delete, so an idle sandbox either holds its resources or gets torn down and cold-restarted (libkrun first boot is ~10-30s). what i'd want is suspend/resume: checkpoint a sandbox's memory + fs, free the resources, and restore it in well under a second on the next request, same idle economics Lambda gets from Firecracker snapshots.
a few questions:
- is VM snapshot/restore on the roadmap at all? i see the
VmBackend { Libkrun, Qemu }split and the QEMU backend from #992 (plus the closed CH attempt in #851), so the backend abstraction already exists. - would adding
Snapshot/RestoreRPCs toComputeDriver(alongside create/stop/delete) be welcome? - preferred path: snapshot on the QEMU backend (
savevm/migrate-to-file), or a dedicated Firecracker / Cloud Hypervisor backend? both have first-class snapshot/restore. - or is this intentionally deferred behind the multi-tenant milestone?
context: evaluating OpenShell as the sandbox runtime for an agent-compute substrate where suspend/resume + KV cache aware routing/offloading are the core economics. happy to help scope or send a patch if there's appetite.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the ComputeDriver lifecycle and the VmBackend split described in the issue, then review the QEMU work in #992 and the closed CH attempt in #851. Determine whether Snapshot/Restore belongs in the driver abstraction and which backend path is supported; done means a decided scope or roadmap direction rather than an implementation patch.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100