Tasks could start from host content in 2.2.0, but there was still no post-create path to update a live workspace from the host. This change adds the next host-to-task step so repeated fix or review loops do not require recreating the task for every local change. Add task sync push across the CLI, Python SDK, and MCP server, reusing the existing safe archive import path from seeded task creation instead of introducing a second transfer stack. The implementation keeps sync separate from workspace_seed metadata, validates destinations under /workspace, and documents the current non-atomic recovery path as delete-and-recreate. Validation: - uv lock - UV_CACHE_DIR=.uv-cache uv run pytest --no-cov tests/test_cli.py tests/test_vm_manager.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 sync push, task exec to verify both files, task delete
3 KiB
3 KiB
Changelog
All notable user-visible changes to pyro-mcp are documented here.
2.3.0
- Added
task sync pushacross the CLI, Python SDK, and MCP server so started task workspaces can import later host-side directory or archive content without being recreated. - Reused the existing safe archive import path with an explicit destination under
/workspace, including host-side and guest-backed task support. - Documented sync as a non-atomic update path in
2.3.0, with delete-and-recreate as the recovery path if a sync fails partway through.
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.