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.
1.9 KiB
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 createpyro workspace sync pushpyro workspace execpyro workspace statuspyro workspace logspyro workspace delete
- SDK:
create_workspacepush_workspace_syncexec_workspacestatus_workspacelogs_workspacedelete_workspace
- MCP:
workspace_createworkspace_sync_pushworkspace_execworkspace_statusworkspace_logsworkspace_delete
Field renames:
task_id->workspace_idsource_pathon create ->seed_pathtask.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 runremains 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