[Feat] Enable environment and task snapshot resume on Daytona - #167
Conversation
Wire Daytona createSnapshot/resumeFromSnapshot via durable named filesystem snapshots, thin emit capabilities, and mirror E2B launch modes for environment and task resumes.
|
No new code issues found. The earlier comment nit is now fixed. See task
Summary This enables Daytona for Roomote's snapshot/resume flows by porting the E2B model (durable named filesystem snapshots + fresh/environment_snapshot/task_snapshot launch modes). I verified:
Sync update (head Non-blocking note (low confidence): Because |
Daytona is snapshot-capable; update the comment so destroy-path wording only describes non-snapshot providers.
Related issue
N/A — internal Roomote work requested in Slack after reviewing Daytona pause/fork / Snapshot product gaps.
Why this PR exists
What changed
Enable Daytona for Roomote’s product snapshot flows (environment setup snapshots and task sleep/resume), using durable named filesystem snapshots like Modal and E2B rather than pause-in-place.
DaytonaClient.createSnapshotvia_experimental_createSnapshot(name assnapshotId, destroy source sandbox afterward)resumeFromSnapshotby creating a sandbox from that named snapshotcreateDaytonaMachine/spawn-daytona-workerforfresh/environment_snapshot/task_snapshotlaunch modes (mirrors E2B)DAYTONA_SNAPSHOT_NAMEas the worker base image only; product snaps useroomote-run-snap-*How it was tested
pnpm --filter @roomote/compute-providers exec vitest run src/__tests__/adapters.contract.test.ts(create + resume + destroy after snapshot)pnpm lint && pnpm check-typespnpm --filter @roomote/docs checkChecklist
[Fix],[Feat],[Improve],[Refactor],[Docs], or[Chore]followed by a user-facing descriptionpnpm lintandpnpm check-typespass locallypnpm changeset