#3762·paseo

bug: create_workspace MCP schema makes branch-off calls impossible

Author: DLME2024Created Aug 23, 2026Updated Sep 18, 2026
Labelsneeds-more-infop3triaged

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:

  1. A normal branch-off request supplies mode, branchName, and baseBranch. Paseo returns:

    branch, prNumber, and forge require a checkout mode
  2. Omitting the irrelevant checkout-branch / checkout-pr fields causes schema validation errors requiring non-empty branch and forge.

  3. Supplying dummy branch, prNumber, and forge values returns the first error again because those fields are invalid for branch-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:

json
{
  "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, baseBranch
  • checkout-branch: branch
  • checkout-pr: prNumber, optional forge

Fields belonging to other modes must be optional/omitted rather than globally required or defaulted into the request.

Steps to reproduce

  1. Start an OMP agent with native Paseo tools enabled.
  2. In a registered Git project, call create_workspace with:
    • isolation: "worktree"
    • mode: "branch-off"
    • a non-empty worktreeSlug
    • a non-empty branchName
    • a valid baseBranch
  3. Observe branch, prNumber, and forge require a checkout mode.
  4. Retry while omitting checkout-only fields and observe schema errors requiring branch and forge.
  5. 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 documented branch-off fields 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.