Repository navigation
v0.8.0: Merge pull request #138 from pandemicsyn/changeset-release/main
Beachside v0.8.0
@beachside/adapter
Minor Changes
-
#148
29f6896Thanks @pandemicsyn! - AddsnapshotSuiteto@beachside/adapter/testing: a shared snapshot conformance check (exact preserve plan, capture matches plan, saved reference reopens, restore into a new sandbox with the captured files, listing or anUNSUPPORTEDlist, and deletion) that adapter authors run against their fixtures through the public client. -
#152
f9a0bb7Thanks @pandemicsyn! -sandboxes.list()items now carrylabels(the labels set at create, without adapter markers;nullwhere the provider keeps none) andcreatedAt(the provider's creation time, ornull). Daytona, E2B, Vercel and Modal report labels; Daytona, E2B (start time), Vercel, boxd and Runloop report creation time. Adapters add them with the newlistedLabelsandlistedTimehelpers. The CLI'sls --remoteshows both, and the newbeachside gc --label k=v [--older-than 2h] [--dry-run]destroys provider-listed sandboxes whose labels match, such as those a killed CI job left behind, and drops their store records. Durations also accept days, like1d. -
#146
e513d9aThanks @pandemicsyn! - Set the sandbox lifetime the same way everywhere. Every adapter now takeslifecycle: { lifetimeSeconds }in setup, defaulting to 900 seconds; E2B, Vercel and ModaltimeoutSeconds, DaytonattlMinutesand boxd's top-levellifetimeSecondsstill work but are deprecated.create({ lifecycle: { lifetimeSeconds } })overrides it for one sandbox, andcapabilities().lifetimereports the accepted range. The CLI addscreate --ttlandrun --ttl. -
#156
47f5b61Thanks @pandemicsyn! - Rename the project to Beachside. Packages arebeachsideand@beachside/*; the exports areBeachside,BeachsideClient,DirectBeachsideClientandBeachsideError; list coverage"sandbar-managed"is now"managed"; telemetry spans and attributes usebeachside.*. The CLI command isbeachside, with settings in~/.config/beachside/beachside.jsonandBEACHSIDE_*environment variables. Labels, metadata and names written onto provider resources now use thebeachsideprefix, so resources created by earlier releases are no longer recognized. -
#150
e566711Thanks @pandemicsyn! -snapshot.restore()takes the create optionsenv,labelsandlifecycle: { lifetimeSeconds }. Adapters declare which they apply insnapshotRestore.options(shown incapabilities().snapshots.restore); anything else rejects before allocation. The CLI now accepts--env,--labeland--ttlwith--snapshot. -
#136
4a074abThanks @pandemicsyn! - AddPreserveconstants (Preserve.FILESYSTEM,Preserve.FILESYSTEM_AND_MEMORY) for choosing what snapshots and suspension keep. E2B acceptssnapshots: { preserve }for filesystem-only captures, andlifecycle.suspension.preserveis now an exact choice:Preserve.FILESYSTEMpauses without memory, and resumes from disk only, soresume()reports fresh execution. Previously a filesystem setting on E2B still kept memory. E2B snapshots listed without Beachside history now report unknown preservation instead of assuming memory.snapshots.list(),volumes.list()andimages.list()now default to a page of 50 when called without alimit.
beachside
Minor Changes
-
#152
f9a0bb7Thanks @pandemicsyn! -sandboxes.list()items now carrylabels(the labels set at create, without adapter markers;nullwhere the provider keeps none) andcreatedAt(the provider's creation time, ornull). Daytona, E2B, Vercel and Modal report labels; Daytona, E2B (start time), Vercel, boxd and Runloop report creation time. Adapters add them with the newlistedLabelsandlistedTimehelpers. The CLI'sls --remoteshows both, and the newbeachside gc --label k=v [--older-than 2h] [--dry-run]destroys provider-listed sandboxes whose labels match, such as those a killed CI job left behind, and drops their store records. Durations also accept days, like1d. -
#146
e513d9aThanks @pandemicsyn! - Set the sandbox lifetime the same way everywhere. Every adapter now takeslifecycle: { lifetimeSeconds }in setup, defaulting to 900 seconds; E2B, Vercel and ModaltimeoutSeconds, DaytonattlMinutesand boxd's top-levellifetimeSecondsstill work but are deprecated.create({ lifecycle: { lifetimeSeconds } })overrides it for one sandbox, andcapabilities().lifetimereports the accepted range. The CLI addscreate --ttlandrun --ttl. -
#156
47f5b61Thanks @pandemicsyn! - Rename the project to Beachside. Packages arebeachsideand@beachside/*; the exports areBeachside,BeachsideClient,DirectBeachsideClientandBeachsideError; list coverage"sandbar-managed"is now"managed"; telemetry spans and attributes usebeachside.*. The CLI command isbeachside, with settings in~/.config/beachside/beachside.jsonandBEACHSIDE_*environment variables. Labels, metadata and names written onto provider resources now use thebeachsideprefix, so resources created by earlier releases are no longer recognized. -
#150
e566711Thanks @pandemicsyn! -snapshot.restore()takes the create optionsenv,labelsandlifecycle: { lifetimeSeconds }. Adapters declare which they apply insnapshotRestore.options(shown incapabilities().snapshots.restore); anything else rejects before allocation. The CLI now accepts--env,--labeland--ttlwith--snapshot. -
#136
4a074abThanks @pandemicsyn! - AddPreserveconstants (Preserve.FILESYSTEM,Preserve.FILESYSTEM_AND_MEMORY) for choosing what snapshots and suspension keep. E2B acceptssnapshots: { preserve }for filesystem-only captures, andlifecycle.suspension.preserveis now an exact choice:Preserve.FILESYSTEMpauses without memory, and resumes from disk only, soresume()reports fresh execution. Previously a filesystem setting on E2B still kept memory. E2B snapshots listed without Beachside history now report unknown preservation instead of assuming memory.snapshots.list(),volumes.list()andimages.list()now default to a page of 50 when called without alimit.
Patch Changes
- Updated dependencies [
29f6896,f9a0bb7,e513d9a,47f5b61,e566711,4a074ab]:- @beachside/adapter@0.8.0
@beachside/daytona
Minor Changes
-
#148
29f6896Thanks @pandemicsyn! - Acceptsnapshots: { preserve }on the Daytona adapter.Preserve.FILESYSTEM_AND_MEMORYtakes hot snapshots of running Linux VMs (includeMemory: true): the VM keeps running and a restored VM resumes the captured processes. Containers and stopped VMs reject before any change. Omitted orPreserve.FILESYSTEMkeeps today's cold capture. -
#134
3b62728Thanks @pandemicsyn! - Daytona Linux VM sandboxes now supportsnapshot()(cold, filesystem-only capture, restored as a new Linux VM) andsuspend()/resume()through native pause, which keeps files, memory and running processes. Containers are unchanged.lifecycle.suspension.preserve: "filesystem+memory"no longer rejects at connect: it pauses Linux VMs and rejects containers before any change, while"filesystem"stops Linux VMs instead of pausing them.inspect().idleStopreports Daytona's native Linux VM auto-pause. -
#152
f9a0bb7Thanks @pandemicsyn! -sandboxes.list()items now carrylabels(the labels set at create, without adapter markers;nullwhere the provider keeps none) andcreatedAt(the provider's creation time, ornull). Daytona, E2B, Vercel and Modal report labels; Daytona, E2B (start time), Vercel, boxd and Runloop report creation time. Adapters add them with the newlistedLabelsandlistedTimehelpers. The CLI'sls --remoteshows both, and the newbeachside gc --label k=v [--older-than 2h] [--dry-run]destroys provider-listed sandboxes whose labels match, such as those a killed CI job left behind, and drops their store records. Durations also accept days, like1d. -
#146
e513d9aThanks @pandemicsyn! - Set the sandbox lifetime the same way everywhere. Every adapter now takeslifecycle: { lifetimeSeconds }in setup, defaulting to 900 seconds; E2B, Vercel and ModaltimeoutSeconds, DaytonattlMinutesand boxd's top-levellifetimeSecondsstill work but are deprecated.create({ lifecycle: { lifetimeSeconds } })overrides it for one sandbox, andcapabilities().lifetimereports the accepted range. The CLI addscreate --ttlandrun --ttl. -
#156
47f5b61Thanks @pandemicsyn! - Rename the project to Beachside. Packages arebeachsideand@beachside/*; the exports areBeachside,BeachsideClient,DirectBeachsideClientandBeachsideError; list coverage"sandbar-managed"is now"managed"; telemetry spans and attributes usebeachside.*. The CLI command isbeachside, with settings in~/.config/beachside/beachside.jsonandBEACHSIDE_*environment variables. Labels, metadata and names written onto provider resources now use thebeachsideprefix, so resources created by earlier releases are no longer recognized. -
#150
e566711Thanks @pandemicsyn! -snapshot.restore()takes the create optionsenv,labelsandlifecycle: { lifetimeSeconds }. Adapters declare which they apply insnapshotRestore.options(shown incapabilities().snapshots.restore); anything else rejects before allocation. The CLI now accepts--env,--labeland--ttlwith--snapshot.
Patch Changes
- Updated dependencies [
29f6896,f9a0bb7,e513d9a,47f5b61,e566711,4a074ab]:- @beachside/adapter@0.8.0
@beachside/e2b
Minor Changes
-
#152
f9a0bb7Thanks @pandemicsyn! -sandboxes.list()items now carrylabels(the labels set at create, without adapter markers;nullwhere the provider keeps none) andcreatedAt(the provider's creation time, ornull). Daytona, E2B, Vercel and Modal report labels; Daytona, E2B (start time), Vercel, boxd and Runloop report creation time. Adapters add them with the newlistedLabelsandlistedTimehelpers. The CLI'sls --remoteshows both, and the newbeachside gc --label k=v [--older-than 2h] [--dry-run]destroys provider-listed sandboxes whose labels match, such as those a killed CI job left behind, and drops their store records. Durations also accept days, like1d. -
#146
e513d9aThanks @pandemicsyn! - Set the sandbox lifetime the same way everywhere. Every adapter now takeslifecycle: { lifetimeSeconds }in setup, defaulting to 900 seconds; E2B, Vercel and ModaltimeoutSeconds, DaytonattlMinutesand boxd's top-levellifetimeSecondsstill work but are deprecated.create({ lifecycle: { lifetimeSeconds } })overrides it for one sandbox, andcapabilities().lifetimereports the accepted range. The CLI addscreate --ttlandrun --ttl. -
#156
47f5b61Thanks @pandemicsyn! - Rename the project to Beachside. Packages arebeachsideand@beachside/*; the exports areBeachside,BeachsideClient,DirectBeachsideClientandBeachsideError; list coverage"sandbar-managed"is now"managed"; telemetry spans and attributes usebeachside.*. The CLI command isbeachside, with settings in~/.config/beachside/beachside.jsonandBEACHSIDE_*environment variables. Labels, metadata and names written onto provider resources now use thebeachsideprefix, so resources created by earlier releases are no longer recognized. -
#150
e566711Thanks @pandemicsyn! -snapshot.restore()takes the create optionsenv,labelsandlifecycle: { lifetimeSeconds }. Adapters declare which they apply insnapshotRestore.options(shown incapabilities().snapshots.restore); anything else rejects before allocation. The CLI now accepts--env,--labeland--ttlwith--snapshot. -
#136
4a074abThanks @pandemicsyn! - AddPreserveconstants (Preserve.FILESYSTEM,Preserve.FILESYSTEM_AND_MEMORY) for choosing what snapshots and suspension keep. E2B acceptssnapshots: { preserve }for filesystem-only captures, andlifecycle.suspension.preserveis now an exact choice:Preserve.FILESYSTEMpauses without memory, and resumes from disk only, soresume()reports fresh execution. Previously a filesystem setting on E2B still kept memory. E2B snapshots listed without Beachside history now report unknown preservation instead of assuming memory.snapshots.list(),volumes.list()andimages.list()now default to a page of 50 when called without alimit.
Patch Changes
- Updated dependencies [
29f6896,f9a0bb7,e513d9a,47f5b61,e566711,4a074ab]:- @beachside/adapter@0.8.0
@beachside/boxd
Minor Changes
-
#142
228abf4Thanks @pandemicsyn! - boxd acceptssnapshots: { preserve }andlifecycle: { suspension: { preserve } }in setup. boxd snapshots and pauses always keep memory, soPreserve.FILESYSTEM_AND_MEMORYis accepted andPreserve.FILESYSTEMfails withUNSUPPORTEDat connect, before any provider call. -
#131
3064a65Thanks @pandemicsyn! - boxd now supports snapshots:box.snapshot()captures memory and disk with a brief pause while the machine keeps running,snapshot.restore()resumes the captured processes in a new machine, and snapshots can be inspected, listed and deleted. Each capture gets its own boxd snapshot name and the reference pins the captured version, so a snapshot saved again outside Beachside fails withCONFLICTinstead of restoring or deleting a different version. Machines with mounted disks cannot be captured, and restores keep the captured size and attach no disks. -
#139
72898a9Thanks @pandemicsyn! - Stream command output on boxd.box.processes.start({ output: { mode: "stream" } })now delivers stdout and stderr as the command writes them, as text or exact bytes (format: "bytes"), andbox.exec(input, { onOutput })streams while returning the usual bounded capture.terminate()cancels the native exec call, which kills the command's process group. Incremental stdin, terminals, other signals, status checks and process reopening are not supported. -
#152
f9a0bb7Thanks @pandemicsyn! -sandboxes.list()items now carrylabels(the labels set at create, without adapter markers;nullwhere the provider keeps none) andcreatedAt(the provider's creation time, ornull). Daytona, E2B, Vercel and Modal report labels; Daytona, E2B (start time), Vercel, boxd and Runloop report creation time. Adapters add them with the newlistedLabelsandlistedTimehelpers. The CLI'sls --remoteshows both, and the newbeachside gc --label k=v [--older-than 2h] [--dry-run]destroys provider-listed sandboxes whose labels match, such as those a killed CI job left behind, and drops their store records. Durations also accept days, like1d. -
#146
e513d9aThanks @pandemicsyn! - Set the sandbox lifetime the same way everywhere. Every adapter now takeslifecycle: { lifetimeSeconds }in setup, defaulting to 900 seconds; E2B, Vercel and ModaltimeoutSeconds, DaytonattlMinutesand boxd's top-levellifetimeSecondsstill work but are deprecated.create({ lifecycle: { lifetimeSeconds } })overrides it for one sandbox, andcapabilities().lifetimereports the accepted range. The CLI addscreate --ttlandrun --ttl. -
#156
47f5b61Thanks @pandemicsyn! - Rename the project to Beachside. Packages arebeachsideand@beachside/*; the exports areBeachside,BeachsideClient,DirectBeachsideClientandBeachsideError; list coverage"sandbar-managed"is now"managed"; telemetry spans and attributes usebeachside.*. The CLI command isbeachside, with settings in~/.config/beachside/beachside.jsonandBEACHSIDE_*environment variables. Labels, metadata and names written onto provider resources now use thebeachsideprefix, so resources created by earlier releases are no longer recognized. -
#150
e566711Thanks @pandemicsyn! -snapshot.restore()takes the create optionsenv,labelsandlifecycle: { lifetimeSeconds }. Adapters declare which they apply insnapshotRestore.options(shown incapabilities().snapshots.restore); anything else rejects before allocation. The CLI now accepts--env,--labeland--ttlwith--snapshot.
Patch Changes
- Updated dependencies [
29f6896,f9a0bb7,e513d9a,47f5b61,e566711,4a074ab]:- @beachside/adapter@0.8.0
@beachside/boat
Minor Changes
-
#147
0aa1ccfThanks @pandemicsyn! - Boat snapshots:box.snapshot()saves the disk of a running or archived sandbox as a Boat named snapshot under a uniquebeachside-snapshot-*name, andclient.snapshotsinspects, lists, restores and deletes them. References pin the captured artifact, so a name saved again outside Beachside rejects withCONFLICTinstead of restoring or deleting the new contents. Restores boot a fresh machine of the captured type. Setup acceptssnapshots: { preserve }andlifecycle: { suspension: { preserve } }: Boat keeps the disk only, soPreserve.FILESYSTEMis accepted andPreserve.FILESYSTEM_AND_MEMORYfails withUNSUPPORTEDat connect, before any provider call. -
#144
a2556c0Thanks @pandemicsyn! - Stream command output on Boat.box.processes.start({ output: { mode: "stream" } })starts the command detached, without Boat's 600-second limit, and delivers stdout and stderr as UTF-8 text as Boat sends it, reattaching from byte offsets when Boat ends a connection after 10 minutes.terminate()stops the command. Byte output, callback exec, piped stdin, terminals and reopening are not supported. -
#146
e513d9aThanks @pandemicsyn! - Set the sandbox lifetime the same way everywhere. Every adapter now takeslifecycle: { lifetimeSeconds }in setup, defaulting to 900 seconds; E2B, Vercel and ModaltimeoutSeconds, DaytonattlMinutesand boxd's top-levellifetimeSecondsstill work but are deprecated.create({ lifecycle: { lifetimeSeconds } })overrides it for one sandbox, andcapabilities().lifetimereports the accepted range. The CLI addscreate --ttlandrun --ttl. -
#156
47f5b61Thanks @pandemicsyn! - Rename the project to Beachside. Packages arebeachsideand@beachside/*; the exports areBeachside,BeachsideClient,DirectBeachsideClientandBeachsideError; list coverage"sandbar-managed"is now"managed"; telemetry spans and attributes usebeachside.*. The CLI command isbeachside, with settings in~/.config/beachside/beachside.jsonandBEACHSIDE_*environment variables. Labels, metadata and names written onto provider resources now use thebeachsideprefix, so resources created by earlier releases are no longer recognized. -
#150
e566711Thanks @pandemicsyn! -snapshot.restore()takes the create optionsenv,labelsandlifecycle: { lifetimeSeconds }. Adapters declare which they apply insnapshotRestore.options(shown incapabilities().snapshots.restore); anything else rejects before allocation. The CLI now accepts--env,--labeland--ttlwith--snapshot.
Patch Changes
- Updated dependencies [
29f6896,f9a0bb7,e513d9a,47f5b61,e566711,4a074ab]:- @beachside/adapter@0.8.0
@beachside/runloop
Minor Changes
-
#152
f9a0bb7Thanks @pandemicsyn! -sandboxes.list()items now carrylabels(the labels set at create, without adapter markers;nullwhere the provider keeps none) andcreatedAt(the provider's creation time, ornull). Daytona, E2B, Vercel and Modal report labels; Daytona, E2B (start time), Vercel, boxd and Runloop report creation time. Adapters add them with the newlistedLabelsandlistedTimehelpers. The CLI'sls --remoteshows both, and the newbeachside gc --label k=v [--older-than 2h] [--dry-run]destroys provider-listed sandboxes whose labels match, such as those a killed CI job left behind, and drops their store records. Durations also accept days, like1d. -
#146
e513d9aThanks @pandemicsyn! - Set the sandbox lifetime the same way everywhere. Every adapter now takeslifecycle: { lifetimeSeconds }in setup, defaulting to 900 seconds; E2B, Vercel and ModaltimeoutSeconds, DaytonattlMinutesand boxd's top-levellifetimeSecondsstill work but are deprecated.create({ lifecycle: { lifetimeSeconds } })overrides it for one sandbox, andcapabilities().lifetimereports the accepted range. The CLI addscreate --ttlandrun --ttl. -
#156
47f5b61Thanks @pandemicsyn! - Rename the project to Beachside. Packages arebeachsideand@beachside/*; the exports areBeachside,BeachsideClient,DirectBeachsideClientandBeachsideError; list coverage"sandbar-managed"is now"managed"; telemetry spans and attributes usebeachside.*. The CLI command isbeachside, with settings in~/.config/beachside/beachside.jsonandBEACHSIDE_*environment variables. Labels, metadata and names written onto provider resources now use thebeachsideprefix, so resources created by earlier releases are no longer recognized. -
#150
e566711Thanks @pandemicsyn! -snapshot.restore()takes the create optionsenv,labelsandlifecycle: { lifetimeSeconds }. Adapters declare which they apply insnapshotRestore.options(shown incapabilities().snapshots.restore); anything else rejects before allocation. The CLI now accepts--env,--labeland--ttlwith--snapshot. -
#145
6e83f0bThanks @pandemicsyn! - Stream command output on Runloop.box.processes.start({ output: { mode: "stream" } })delivers stdout and stderr as UTF-8 text from Runloop's server-sent log streams, reopening them from byte offsets, andterminate()kills the execution. Byte output, callback exec, piped stdin, terminals and reopening are not supported. Not yet tested against the live service. -
#148
29f6896Thanks @pandemicsyn! - Accept thesnapshots: { preserve }setup option on the Vercel and Runloop adapters, so the same setting works on every adapter with snapshots.Preserve.FILESYSTEMmatches their filesystem-only snapshots;Preserve.FILESYSTEM_AND_MEMORYrejects at connect withUNSUPPORTEDbefore any provider call.
Patch Changes
- Updated dependencies [
29f6896,f9a0bb7,e513d9a,47f5b61,e566711,4a074ab]:- @beachside/adapter@0.8.0
@beachside/modal
Minor Changes
-
#152
f9a0bb7Thanks @pandemicsyn! -sandboxes.list()items now carrylabels(the labels set at create, without adapter markers;nullwhere the provider keeps none) andcreatedAt(the provider's creation time, ornull). Daytona, E2B, Vercel and Modal report labels; Daytona, E2B (start time), Vercel, boxd and Runloop report creation time. Adapters add them with the newlistedLabelsandlistedTimehelpers. The CLI'sls --remoteshows both, and the newbeachside gc --label k=v [--older-than 2h] [--dry-run]destroys provider-listed sandboxes whose labels match, such as those a killed CI job left behind, and drops their store records. Durations also accept days, like1d. -
#143
f1d5c3fThanks @pandemicsyn! - Accept thesnapshots: { preserve }setup option on the Modal adapter.Preserve.FILESYSTEMmatches Modal's filesystem snapshots;Preserve.FILESYSTEM_AND_MEMORYrejects at connect withUNSUPPORTEDbefore any Modal call. -
#132
2349b4dThanks @pandemicsyn! - Add filesystem snapshots to the experimental Modal adapter.box.snapshot()captures the sandbox root filesystem as a Modal image with Modal's default 30-day retention,snapshot.restore()creates a new blocked-network sandbox from it, andsnapshots.get(),inspect()anddelete()work on saved references. Memory snapshots, directory snapshots andsnapshots.list()are not supported: Modal has no snapshot listing API, so keep the returned references. -
#141
82b2eafThanks @pandemicsyn! - Stream command output on Modal.box.processes.start({ output: { mode: "stream" } })delivers stdout and stderr as the command writes them, as text or exact bytes, accepts piped stdin, and supportssignal("SIGTERM" | "SIGKILL")andterminate().box.exec(input, { onOutput })now works on Modal too. Signals reach the launched process through a PID recorded in/tmp, so the image needs/bin/sh,catandkill. Terminals, status checks and process reopening are not supported. -
#146
e513d9aThanks @pandemicsyn! - Set the sandbox lifetime the same way everywhere. Every adapter now takeslifecycle: { lifetimeSeconds }in setup, defaulting to 900 seconds; E2B, Vercel and ModaltimeoutSeconds, DaytonattlMinutesand boxd's top-levellifetimeSecondsstill work but are deprecated.create({ lifecycle: { lifetimeSeconds } })overrides it for one sandbox, andcapabilities().lifetimereports the accepted range. The CLI addscreate --ttlandrun --ttl. -
#156
47f5b61Thanks @pandemicsyn! - Rename the project to Beachside. Packages arebeachsideand@beachside/*; the exports areBeachside,BeachsideClient,DirectBeachsideClientandBeachsideError; list coverage"sandbar-managed"is now"managed"; telemetry spans and attributes usebeachside.*. The CLI command isbeachside, with settings in~/.config/beachside/beachside.jsonandBEACHSIDE_*environment variables. Labels, metadata and names written onto provider resources now use thebeachsideprefix, so resources created by earlier releases are no longer recognized. -
#150
e566711Thanks @pandemicsyn! -snapshot.restore()takes the create optionsenv,labelsandlifecycle: { lifetimeSeconds }. Adapters declare which they apply insnapshotRestore.options(shown incapabilities().snapshots.restore); anything else rejects before allocation. The CLI now accepts--env,--labeland--ttlwith--snapshot. -
#148
29f6896Thanks @pandemicsyn! - Addsnapshots: { retentionSeconds }to the Vercel and Modal adapters to set how long snapshots are kept (0keeps them until deleted). Vercel sends nativeexpiration, counted from last use, and accepts it in disposable mode only. Modal sendsttlMs, counted from capture.snapshot({ retention: { minimumSeconds } })is checked against the configured value.
Patch Changes
- Updated dependencies [
29f6896,f9a0bb7,e513d9a,47f5b61,e566711,4a074ab]:- @beachside/adapter@0.8.0
@beachside/vercel
Minor Changes
-
#152
f9a0bb7Thanks @pandemicsyn! -sandboxes.list()items now carrylabels(the labels set at create, without adapter markers;nullwhere the provider keeps none) andcreatedAt(the provider's creation time, ornull). Daytona, E2B, Vercel and Modal report labels; Daytona, E2B (start time), Vercel, boxd and Runloop report creation time. Adapters add them with the newlistedLabelsandlistedTimehelpers. The CLI'sls --remoteshows both, and the newbeachside gc --label k=v [--older-than 2h] [--dry-run]destroys provider-listed sandboxes whose labels match, such as those a killed CI job left behind, and drops their store records. Durations also accept days, like1d. -
#146
e513d9aThanks @pandemicsyn! - Set the sandbox lifetime the same way everywhere. Every adapter now takeslifecycle: { lifetimeSeconds }in setup, defaulting to 900 seconds; E2B, Vercel and ModaltimeoutSeconds, DaytonattlMinutesand boxd's top-levellifetimeSecondsstill work but are deprecated.create({ lifecycle: { lifetimeSeconds } })overrides it for one sandbox, andcapabilities().lifetimereports the accepted range. The CLI addscreate --ttlandrun --ttl. -
#156
47f5b61Thanks @pandemicsyn! - Rename the project to Beachside. Packages arebeachsideand@beachside/*; the exports areBeachside,BeachsideClient,DirectBeachsideClientandBeachsideError; list coverage"sandbar-managed"is now"managed"; telemetry spans and attributes usebeachside.*. The CLI command isbeachside, with settings in~/.config/beachside/beachside.jsonandBEACHSIDE_*environment variables. Labels, metadata and names written onto provider resources now use thebeachsideprefix, so resources created by earlier releases are no longer recognized. -
#150
e566711Thanks @pandemicsyn! -snapshot.restore()takes the create optionsenv,labelsandlifecycle: { lifetimeSeconds }. Adapters declare which they apply insnapshotRestore.options(shown incapabilities().snapshots.restore); anything else rejects before allocation. The CLI now accepts--env,--labeland--ttlwith--snapshot. -
#148
29f6896Thanks @pandemicsyn! - Addsnapshots: { retentionSeconds }to the Vercel and Modal adapters to set how long snapshots are kept (0keeps them until deleted). Vercel sends nativeexpiration, counted from last use, and accepts it in disposable mode only. Modal sendsttlMs, counted from capture.snapshot({ retention: { minimumSeconds } })is checked against the configured value. -
#148
29f6896Thanks @pandemicsyn! - Accept thesnapshots: { preserve }setup option on the Vercel and Runloop adapters, so the same setting works on every adapter with snapshots.Preserve.FILESYSTEMmatches their filesystem-only snapshots;Preserve.FILESYSTEM_AND_MEMORYrejects at connect withUNSUPPORTEDbefore any provider call.
Patch Changes
- Updated dependencies [
29f6896,f9a0bb7,e513d9a,47f5b61,e566711,4a074ab]:- @beachside/adapter@0.8.0
@beachside/cli
Minor Changes
-
#135
16bf303Thanks @pandemicsyn! - Addbeachside adapter add,adapter lsandadapter rmto install, list and remove the adapters the CLI loads from~/.config/beachside/adapters. Official adapters are pinned to the CLI's version and every install is checked for its adapter export; reruns with nothing to change skip npm. -
#151
ba3630aThanks @pandemicsyn! - Addcreate --retry <duration>andrun --retry <duration>: keep retrying, with growing waits, while the provider refuses a create before any effect (rate limit, capacity, unavailable). Unknown outcomes are never retried. -
#137
5fe4c39Thanks @pandemicsyn! - Copy directories withbeachside cp -rin both directions, and send a local working tree into a sandbox withbeachside push <sandbox>[:/dir] [path]orbeachside run --push <path>. In a git work tree,pushsends tracked and unignored files only (--include-ignoredsends everything);--exclude <glob>skips paths. Transfers move one tar archive and unpack it with one command, so they keep modes and symlinks, needtarin the sandbox, and work on every provider with exec and file access. Copying out never writes through symlinks or outside the destination. -
#149
0e6341cThanks @pandemicsyn! - Addbeachside snapshot create|ls|inspect|rm|forgetandcreate --snapshot/run --snapshotto capture a sandbox and start new sandboxes from it. -
#133
8e93c63Thanks @pandemicsyn! -beachside exec,shandrunnow print output as it arrives on providers that stream process bytes (Daytona, E2B and Vercel). The CLI enforces--timeoutfor streaming commands and asks the provider to terminate them on timeout or Ctrl-C. Other providers,--jsonand the new--no-streamflag keep the buffered output. -
#152
f9a0bb7Thanks @pandemicsyn! -sandboxes.list()items now carrylabels(the labels set at create, without adapter markers;nullwhere the provider keeps none) andcreatedAt(the provider's creation time, ornull). Daytona, E2B, Vercel and Modal report labels; Daytona, E2B (start time), Vercel, boxd and Runloop report creation time. Adapters add them with the newlistedLabelsandlistedTimehelpers. The CLI'sls --remoteshows both, and the newbeachside gc --label k=v [--older-than 2h] [--dry-run]destroys provider-listed sandboxes whose labels match, such as those a killed CI job left behind, and drops their store records. Durations also accept days, like1d. -
#146
e513d9aThanks @pandemicsyn! - Set the sandbox lifetime the same way everywhere. Every adapter now takeslifecycle: { lifetimeSeconds }in setup, defaulting to 900 seconds; E2B, Vercel and ModaltimeoutSeconds, DaytonattlMinutesand boxd's top-levellifetimeSecondsstill work but are deprecated.create({ lifecycle: { lifetimeSeconds } })overrides it for one sandbox, andcapabilities().lifetimereports the accepted range. The CLI addscreate --ttlandrun --ttl. -
#156
47f5b61Thanks @pandemicsyn! - Rename the project to Beachside. Packages arebeachsideand@beachside/*; the exports areBeachside,BeachsideClient,DirectBeachsideClientandBeachsideError; list coverage"sandbar-managed"is now"managed"; telemetry spans and attributes usebeachside.*. The CLI command isbeachside, with settings in~/.config/beachside/beachside.jsonandBEACHSIDE_*environment variables. Labels, metadata and names written onto provider resources now use thebeachsideprefix, so resources created by earlier releases are no longer recognized. -
#150
e566711Thanks @pandemicsyn! -snapshot.restore()takes the create optionsenv,labelsandlifecycle: { lifetimeSeconds }. Adapters declare which they apply insnapshotRestore.options(shown incapabilities().snapshots.restore); anything else rejects before allocation. The CLI now accepts--env,--labeland--ttlwith--snapshot.