bug: create_workspace MCP schema makes branch-off calls impossible
What's broken
The injected create_workspace MCP tool rejects a valid branch-off request because its schema/argument handling treats fields for mutually exclusive checkout modes as simultaneously required. Retrying with those irrelevant fields supplied is then rejected by Paseo's mode-specific validation.
This creates an impossible input contract for an OMP/Pi orchestrator:
A normal
branch-offrequest suppliesmode,branchName, andbaseBranch. Paseo returns:branch, prNumber, and forge require a checkout modeOmitting the irrelevant
checkout-branch/checkout-prfields causes schema validation errors requiring non-emptybranchandforge.Supplying dummy
branch,prNumber, andforgevalues returns the first error again because those fields are invalid forbranch-off.
The same valid operation succeeds immediately through git worktree add, so this fails before Git worktree creation.
Expected behavior
For mode: "branch-off", accept only the fields relevant to that mode:
{
"isolation": "worktree",
"mode": "branch-off",
"worktreeSlug": "canonical-employee-composition",
"branchName": "compose/canonical-employee",
"baseBranch": "integration-candidate"
}Mode-specific requirements should be a discriminated union:
branch-off:branchName,baseBranchcheckout-branch:branchcheckout-pr:prNumber, optionalforge
Fields belonging to other modes must be optional/omitted rather than globally required or defaulted into the request.
Steps to reproduce
- Start an OMP agent with native Paseo tools enabled.
- In a registered Git project, call
create_workspacewith:isolation: "worktree"mode: "branch-off"- a non-empty
worktreeSlug - a non-empty
branchName - a valid
baseBranch
- Observe
branch, prNumber, and forge require a checkout mode. - Retry while omitting checkout-only fields and observe schema errors requiring
branchandforge. - Retry with dummy checkout-only values and observe the original mode-validation error.
Where did this happen
Paseo Desktop on macOS, desktop-managed local daemon. OMP agent using native Paseo tools.
Paseo version
0.5.1 for both CLI and daemon.
Related issue
- #2815 reports malformed Pi orchestration arguments generally and names
create_workspace. This report is narrower: even when the model supplies the documentedbranch-offfields correctly, the exposed schema/normalization creates a deterministic contradictory contract.
Impact
The orchestrator retried four times, then bypassed Paseo with git worktree add. That creates a Git branch/worktree but no Paseo workspace record, ownership metadata, setup/teardown lifecycle, or reliable agent placement.
Source: getpaseo/paseo