pyro-mcp/docs/roadmap/llm-chat-ergonomics/4.0.0-workspace-core-default-profile.md
Thales Maciel c00c699a9f Make workspace-core the default MCP profile
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".
2026-03-13 14:14:15 -03:00

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 serve should default to workspace-core
  • create_server() should default to profile="workspace-core"
  • Pyro.create_server() should default to profile="workspace-core"

The full advanced surface remains available through explicit opt-in:

  • pyro mcp serve --profile workspace-full
  • create_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-run available 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.x backport that changes the current default behavior

Acceptance Scenarios

  • a bare pyro mcp serve command now exposes the recommended narrow profile
  • a bare create_server() or Pyro.create_server() call matches that same default
  • advanced hosts can still opt into workspace-full explicitly 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-full opt-in path
  • examples audited so they only mention --profile workspace-core when the explicitness is useful rather than compensating for the old default