Flip bare pyro mcp serve, create_server(), and Pyro.create_server() to default to workspace-core in 4.0.0 while keeping workspace-full as the explicit advanced opt-in surface. Rewrite the MCP-facing docs and host-specific examples around the bare default command, update package and catalog compatibility to 4.x, and move the public-contract wording from 3.x compatibility guidance to the new stable default. Adjust the server, API, and contract tests so bare server creation now asserts the workspace-core tool set, while explicit workspace-full coverage continues to prove shells, services, snapshots, and disk tools remain available. Validation: uv lock; .venv/bin/pytest --no-cov tests/test_cli.py tests/test_api.py tests/test_server.py tests/test_public_contract.py; UV_CACHE_DIR=.uv-cache make check; UV_CACHE_DIR=.uv-cache make dist-check; real guest-backed smoke for bare Pyro.create_server() plus explicit profile="workspace-full".
1.9 KiB
1.9 KiB
4.0.0 Workspace-Core Default Profile
Status: Done
Goal
Make the default MCP entrypoint match the product's recommended chat-first path instead of preserving a wider compatibility surface by default.
Public API Changes
This is an intentional breaking default change for the next major release:
pyro mcp serveshould default toworkspace-corecreate_server()should default toprofile="workspace-core"Pyro.create_server()should default toprofile="workspace-core"
The full advanced surface remains available through explicit opt-in:
pyro mcp serve --profile workspace-fullcreate_server(profile="workspace-full")Pyro.create_server(profile="workspace-full")
Implementation Boundaries
- keep all three profile names unchanged
- do not remove
workspace-full - make the default flip explicit in docs, changelog, help text, and migration notes
- keep bare
vm-runavailable as the smallest one-shot profile
Non-Goals
- no silent removal of advanced workspace capabilities
- no attempt to infer a profile from the client name
- no
3.xbackport that changes the current default behavior
Acceptance Scenarios
- a bare
pyro mcp servecommand now exposes the recommended narrow profile - a bare
create_server()orPyro.create_server()call matches that same default - advanced hosts can still opt into
workspace-fullexplicitly with no loss of functionality - docs no longer need to explain that the recommended path and the default path are different
Required Repo Updates
- help text, public contract, README, install docs, and integrations docs revised to reflect the new default
- migration note explaining the default change and the explicit
workspace-fullopt-in path - examples audited so they only mention
--profile workspace-corewhen the explicitness is useful rather than compensating for the old default