Skip to content

Lifecycle matrix

This page is the parity checkpoint for runtime lifecycle APIs. It separates what is available through the local CLI today from what the Python and TypeScript SDKs expose today and what remains a target for product-level SDK parity.

Use it when deciding whether to write an SDK script, call mvmctl directly, or keep a workflow documented as planned.

StatusMeaning
ShippedUsable in the named surface today.
PartialUsable for a narrower path; read the notes before depending on it.
TargetProduct shape we want, but not shipped in that SDK surface.
Not claimedDeliberately outside the current surface.
OperationCLIPython SDKTypeScript SDKNotes
Create named sandboxShippedPartialPartialSDK live mode calls mvmctl up; record mode records Sandbox.create(...).
One-shot runShippedTargetTargetmvmctl run -- <cmd> is current; SDK convenience helpers should preserve receipts and policy.
Start commandShippedPartialPartialSDK exposes commands.start(...); result capture is still a target.
Command result captureShippedTargetTargetCLI one-shot JSON/receipt paths exist; SDK commands.run(...) result shape is a target.
File writeShippedShippedShippedSDK supports files.write(...); live mode shells to mvmctl fs write.
File read/list/removeShippedTargetTargetCLI filesystem verbs exist; SDK wrappers need shared tests.
LogsShippedTargetTargetSDK log helpers should keep payload redaction rules explicit.
Port forwardingShippedTargetTargetSDK helpers should require explicit host and guest port binding.
Snapshot save/restoreShippedTargetTargetBackend behavior differs; SDK type model needs to expose that.
Cold modeShippedTargetTargetSDK should make running, cold, restoring, stopped, and destroyed states explicit.
Stop/downShippedPartialPartialPython context managers, TypeScript using, and explicit kill() clean up live sandboxes.
Destroy/delete stateShippedTargetTargetStrong deletion guarantees depend on backend and storage layer.
Detach/keep aliveShipped for selected CLI flowsTargetTargetSDK detach must bind owner, TTL, and cleanup semantics.
Receipts and audit IDsShippedTargetTargetSDK result objects should expose run/audit correlation without exposing payloads.
WorkflowUse todayWhy
Generated code executionmvmctl run --profile restrictive --receipt ...Mature policy and receipt path.
Local SDK smoke scriptPython or TypeScript Sandbox.create(...) in record modeProduces Workload IR without booting a VM.
Live SDK experimentmvmctl run --mode live ./script.py or .tsExercises current live transport and cleanup helpers.
Deployable workload declarationStatic declaration workflowAvoids importing user modules during compile.
Persistent servicemvmctl build, mvmctl up, mvmctl logs, mvmctl downCLI has the broadest lifecycle coverage today.
Cold recovery testmvmctl pause/resume or mvmctl snapshot save/restoreBackend-specific state handling is visible.

Runtime SDK parity should not mean hiding security detail behind a short method name. New SDK helpers should preserve these invariants:

  • every created sandbox has a cleanup story: context manager, using, explicit stop, TTL, or detach;
  • command results include exit status, timeout state, bounded output, and audit/run correlation when available;
  • file APIs reject traversal and make host/guest boundaries explicit;
  • port helpers require explicit bindings and policy;
  • snapshot and cold-mode helpers label sensitive state and backend limitations;
  • errors distinguish policy denial, timeout, transport failure, and guest command failure;
  • receipts remain verifiable outside the SDK process.

The next SDK work should close the highest-value gaps in this order:

  1. commands.run(...) with typed result, timeout, bounded output, and receipt correlation.
  2. files.read/list/remove(...) with path validation tests.
  3. logs(...) with redaction and bounded streaming.
  4. ports.forward(...) with explicit policy.
  5. snapshot(...), cold(), resume(), destroy(), and detach() with backend-aware state types.

Each item needs Python and TypeScript fixture parity before the docs move it from Target to Shipped.