Promote stable workspace product for 3.0.0
Freeze the current workspace-first surface as the stable 3.0 contract and reposition the landing docs, CLI help, and public contract around the stable workspace path after the one-shot proof. Bump the package and catalog compatibility to 3.0.0, add a dedicated workspace walkthrough tape/GIF, and mark the 3.0.0 roadmap milestone done while keeping runtime capability unchanged in this release. Validation: uv lock; UV_CACHE_DIR=.uv-cache make check; UV_CACHE_DIR=.uv-cache make dist-check; UV_CACHE_DIR=.uv-cache uv build; UV_CACHE_DIR=.uv-cache uvx --from twine twine check dist/*; built-wheel CLI smoke for pyro --help and pyro workspace --help; vhs validate plus rendered workspace-first-run.gif outside the sandbox because vhs crashes when sandboxed.
This commit is contained in:
parent
c82f4629b2
commit
f2d20ef30a
15 changed files with 255 additions and 42 deletions
|
|
@ -458,7 +458,7 @@ class _HelpFormatter(
|
|||
def _build_parser() -> argparse.ArgumentParser:
|
||||
parser = argparse.ArgumentParser(
|
||||
description=(
|
||||
"Run ephemeral Firecracker microVM workflows from the CLI on supported "
|
||||
"Run stable one-shot and persistent workspace workflows on supported "
|
||||
"Linux x86_64 KVM hosts."
|
||||
),
|
||||
epilog=dedent(
|
||||
|
|
@ -469,14 +469,17 @@ def _build_parser() -> argparse.ArgumentParser:
|
|||
pyro env pull debian:12
|
||||
pyro run debian:12 -- git --version
|
||||
|
||||
Need repeated commands in one workspace after that?
|
||||
Continue into the stable workspace path after that:
|
||||
pyro workspace create debian:12 --seed-path ./repo
|
||||
pyro workspace sync push WORKSPACE_ID ./changes
|
||||
pyro workspace exec WORKSPACE_ID -- cat note.txt
|
||||
pyro workspace diff WORKSPACE_ID
|
||||
pyro workspace export WORKSPACE_ID note.txt --output ./note.txt
|
||||
pyro workspace snapshot create WORKSPACE_ID checkpoint
|
||||
pyro workspace reset WORKSPACE_ID --snapshot checkpoint
|
||||
pyro workspace shell open WORKSPACE_ID
|
||||
pyro workspace service start WORKSPACE_ID app --ready-file .ready -- \
|
||||
sh -lc 'touch .ready && while true; do sleep 60; done'
|
||||
pyro workspace export WORKSPACE_ID note.txt --output ./note.txt
|
||||
|
||||
Use `pyro mcp serve` only after the CLI validation path works.
|
||||
"""
|
||||
|
|
@ -675,8 +678,8 @@ def _build_parser() -> argparse.ArgumentParser:
|
|||
"workspace",
|
||||
help="Manage persistent workspaces.",
|
||||
description=(
|
||||
"Create a persistent workspace when you need repeated commands in one "
|
||||
"sandbox instead of one-shot `pyro run`."
|
||||
"Use the stable workspace contract when you need one sandbox to stay alive "
|
||||
"across repeated exec, shell, service, diff, export, snapshot, and reset calls."
|
||||
),
|
||||
epilog=dedent(
|
||||
"""
|
||||
|
|
@ -692,6 +695,9 @@ def _build_parser() -> argparse.ArgumentParser:
|
|||
pyro workspace service start WORKSPACE_ID app --ready-file .ready -- \
|
||||
sh -lc 'touch .ready && while true; do sleep 60; done'
|
||||
pyro workspace logs WORKSPACE_ID
|
||||
|
||||
`pyro run` remains the fastest one-shot proof. `pyro workspace ...` is the
|
||||
stable path when an agent needs to inhabit one sandbox over time.
|
||||
"""
|
||||
),
|
||||
formatter_class=_HelpFormatter,
|
||||
|
|
@ -704,7 +710,10 @@ def _build_parser() -> argparse.ArgumentParser:
|
|||
workspace_create_parser = workspace_subparsers.add_parser(
|
||||
"create",
|
||||
help="Create and start a persistent workspace.",
|
||||
description="Create a persistent workspace that stays alive across repeated exec calls.",
|
||||
description=(
|
||||
"Create and start a stable persistent workspace that stays alive across repeated "
|
||||
"exec, shell, service, diff, export, snapshot, and reset calls."
|
||||
),
|
||||
epilog=dedent(
|
||||
"""
|
||||
Examples:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue