pyro-mcp/CHANGELOG.md
Thales Maciel 3f8293ad24 Add persistent workspace shell sessions
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.
2026-03-12 02:31:57 -03:00

4.1 KiB

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.