pyro-mcp/docs/roadmap/task-workspace-ga/2.4.0-workspace-contract-pivot.md
Thales Maciel 2de31306b6 Refresh docs and examples for workspaces
Rewrite the user-facing persistent sandbox story around pyro workspace ..., including the install guide, first-run transcript, integrations notes, and public contract reference.

Rename the Python example to examples/python_workspace.py and update the docs to use the new workspace create, sync, exec, status, logs, and delete flows with seed_path/workspace_id terminology.

Mark the 2.4.0 workspace-contract pivot as done in the roadmap now that the shipped CLI, SDK, MCP, docs, and tests all use the workspace-first surface.
2026-03-12 01:28:40 -03:00

1.9 KiB

2.4.0 Workspace Contract Pivot

Status: Done

Goal

Make the public product read as a workspace-first sandbox instead of a task-flavored alpha by replacing the task_* surface with workspace_*.

Public API Changes

  • CLI:
    • pyro workspace create
    • pyro workspace sync push
    • pyro workspace exec
    • pyro workspace status
    • pyro workspace logs
    • pyro workspace delete
  • SDK:
    • create_workspace
    • push_workspace_sync
    • exec_workspace
    • status_workspace
    • logs_workspace
    • delete_workspace
  • MCP:
    • workspace_create
    • workspace_sync_push
    • workspace_exec
    • workspace_status
    • workspace_logs
    • workspace_delete

Field renames:

  • task_id -> workspace_id
  • source_path on create -> seed_path
  • task.json / tasks/ -> workspace.json / workspaces/

No compatibility aliases. Remove task_* from the public contract in the same release.

Implementation Boundaries

  • Keep current behavior intact under the new names:
    • persistent workspace creation
    • create-time seed
    • sync push
    • exec/status/logs/delete
  • Rename public result payloads and CLI help text to workspace language.
  • Move on-disk persisted records to workspaces/ and update rehydration logic accordingly.
  • Update examples, docs, and tests to stop using task terminology.

Non-Goals

  • no shell sessions yet
  • no export, diff, services, snapshots, reset, or secrets in this release
  • no attempt to preserve old CLI/SDK/MCP names

Acceptance Scenarios

  • create a seeded workspace, sync host changes into it, exec inside it, inspect status/logs, then delete it
  • the same flow works from CLI, SDK, and MCP with only workspace-first names
  • one-shot pyro run remains unchanged

Required Repo Updates

  • replace task language in README/install/first-run/public contract/help
  • update runnable examples to use workspace_*
  • add one real Firecracker smoke for create -> sync push -> exec -> delete