Let agents inhabit a workspace across separate calls instead of only submitting one-shot execs. Add workspace shell open/read/write/signal/close across the CLI, Python SDK, and MCP server, with persisted shell records, a local PTY-backed mock implementation, and guest-agent support for real Firecracker workspaces. Mark the 2.5.0 roadmap milestone done, refresh docs/examples and the release metadata, and verify with uv lock, UV_CACHE_DIR=.uv-cache make check, and UV_CACHE_DIR=.uv-cache make dist-check.
80 lines
4.1 KiB
Markdown
80 lines
4.1 KiB
Markdown
# Changelog
|
|
|
|
All notable user-visible changes to `pyro-mcp` are documented here.
|
|
|
|
## 2.5.0
|
|
|
|
- Added persistent PTY shell sessions across the CLI, Python SDK, and MCP server with
|
|
`pyro workspace shell *`, `Pyro.open_shell()` / `read_shell()` / `write_shell()` /
|
|
`signal_shell()` / `close_shell()`, and `shell_*` MCP tools.
|
|
- Kept interactive shells separate from `workspace exec`, with cursor-based merged output reads
|
|
and explicit close/signal operations for long-lived workspace sessions.
|
|
- Updated the bundled guest agent and mock backend so shell sessions persist across separate
|
|
calls and are cleaned up automatically by `workspace delete`.
|
|
|
|
## 2.4.0
|
|
|
|
- Replaced the public persistent-workspace surface from `task_*` to `workspace_*` across the CLI,
|
|
Python SDK, and MCP server in one clean cut with no compatibility aliases.
|
|
- Renamed create-time seeding from `source_path` to `seed_path` for workspace creation while keeping
|
|
later `workspace sync push` imports on `source_path`.
|
|
- Switched persisted local records from `tasks/*/task.json` to `workspaces/*/workspace.json` and
|
|
updated the main docs/examples to the workspace-first language.
|
|
|
|
## 2.3.0
|
|
|
|
- Added `task sync push` across 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_path` for host directories and `.tar` / `.tar.gz` / `.tgz` archives.
|
|
- Seeded task workspaces now persist `workspace_seed` metadata so later status calls report how
|
|
`/workspace` was initialized.
|
|
- Reused the task workspace model from `2.1.0` while 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`, and `task delete` as 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 logs` or the matching SDK/MCP methods.
|
|
|
|
## 2.0.1
|
|
|
|
- Fixed the default `pyro env pull` path 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 pull` and `pyro run` to make longer guest flows
|
|
easier to follow from the CLI.
|
|
- Corrected the Python lifecycle example and docs to match the current `exec_vm` / `vm_exec`
|
|
auto-clean semantics.
|
|
|
|
## 2.0.0
|
|
|
|
- Made guest execution fail closed by default; host compatibility execution now requires
|
|
explicit opt-in with `--allow-host-compat` or `allow_host_compat=True`.
|
|
- Switched the main CLI commands to human-readable output by default and kept `--json`
|
|
for structured output.
|
|
- Added default sizing of `1 vCPU / 1024 MiB` across the CLI, Python SDK, and MCP tools.
|
|
- Unified environment cache resolution across `pyro`, `Pyro`, and `pyro 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 `pyro` CLI, `Pyro` SDK, 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.
|