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

72 lines
1.9 KiB
Markdown

# `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