Current persistent tasks started with an empty workspace, which blocked the first useful host-to-task workflow in the task roadmap. This change lets task creation start from a host directory or tar archive without changing the one-shot VM surfaces. Expose source_path on task create across the CLI, SDK, and MCP, add safe archive upload and extraction support for guest and host-compat backends, persist workspace_seed metadata, and patch the per-task rootfs with the bundled guest agent before boot so seeded guest tasks work without republishing environments. Also switch post--- command reconstruction to shlex.join() so documented sh -lc task examples preserve argument boundaries. Validation: - uv lock - UV_CACHE_DIR=.uv-cache uv run pytest --no-cov tests/test_vm_guest.py tests/test_vm_manager.py tests/test_cli.py tests/test_api.py tests/test_server.py tests/test_public_contract.py - UV_CACHE_DIR=.uv-cache make check - UV_CACHE_DIR=.uv-cache make dist-check - real guest-backed smoke: task create --source-path, task exec -- cat note.txt, task delete
2.6 KiB
2.6 KiB
Changelog
All notable user-visible changes to pyro-mcp are documented here.
2.2.0
- Added seeded task creation across the CLI, Python SDK, and MCP server with an optional
source_pathfor host directories and.tar/.tar.gz/.tgzarchives. - Seeded task workspaces now persist
workspace_seedmetadata so later status calls report how/workspacewas initialized. - Reused the task workspace model from
2.1.0while adding the first explicit host-to-task content import path for repeated command workflows.
2.1.0
- Added the first persistent task workspace alpha across the CLI, Python SDK, and MCP server.
- Shipped
task create,task exec,task status,task logs, andtask deleteas an additive surface alongside the existing one-shot VM contract. - Made task workspaces persistent across separate CLI/SDK/MCP processes by storing task records on disk under the runtime base directory.
- Added per-task command journaling so repeated workspace commands can be inspected through
pyro task logsor the matching SDK/MCP methods.
2.0.1
- Fixed the default
pyro env pullpath so empty local profile directories no longer produce broken cached installs or contradictory "Pulled" / "not installed" states. - Hardened cache inspection and repair so broken environment symlinks are treated as uninstalled and repaired on the next pull.
- Added human-mode phase markers for
pyro env pullandpyro runto make longer guest flows easier to follow from the CLI. - Corrected the Python lifecycle example and docs to match the current
exec_vm/vm_execauto-clean semantics.
2.0.0
- Made guest execution fail closed by default; host compatibility execution now requires
explicit opt-in with
--allow-host-compatorallow_host_compat=True. - Switched the main CLI commands to human-readable output by default and kept
--jsonfor structured output. - Added default sizing of
1 vCPU / 1024 MiBacross the CLI, Python SDK, and MCP tools. - Unified environment cache resolution across
pyro,Pyro, andpyro doctor. - Kept the stable environment-first contract centered on
vm_run,pyro run, and curated OCI-published environments.
1.0.0
- Shipped the first stable public
pyroCLI,PyroSDK, and MCP server contract. - Replaced the old bundled-profile model with curated named environments.
- Switched distribution to a thin Python package plus official OCI environment artifacts.
- Published the initial official environment catalog on public Docker Hub.
- Added first-party environment pull, inspect, prune, and one-shot run flows.