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.
72 lines
1.9 KiB
Markdown
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
|