Skip to content

PiSharp 1.1.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 17:38
· 13 commits to main since this release
57f37da

PiSharp 1.1.0

PiSharp 1.1.0 moves the porting baseline from Pi v0.99.1 to Pi v1.1.0 (commit
abe508e1b89912adde45528136c3221eb69acdd7), covering the upstream releases v0.99.2,
v1.0.0 to v1.0.4 and v1.1.0. As before, matching the upstream version names the
baseline; it is not a claim of complete behavioral parity. Each ported change is
tracked, with its test suite, in
sync-1.1.0-applicability.json;
the decisions are in decision 0002.

Breaking changes

  • Azure provider id is now azure. Pi 1.0.3 renamed the provider
    azure-openai-responses to azure. Update auth.json, models.json and
    settings.json (defaultProvider, enabledModels, modelThinkingLevels). The API
    id azure-openai-responses and the AZURE_OPENAI_* environment variables are
    unchanged. Sessions recorded with the old provider id fall back to another model on
    resume.
  • MCP tool and namespace names use _ instead of -. mcp__my-server__x is now
    mcp__my_server__x. Colliding names get a stable hash suffix, and server names that
    differ only by -/_ are rejected.
  • Tool selection follows Pi 1.1.0. Restored tools that are not registered yet stay
    pending and activate when they register. Unknown names in --tools, defaultTools
    and explicit activation are ignored instead of failing, as upstream does.
    --provider without --model is an error.
  • Token estimates use 3.5 characters per token in the request estimators, which can
    change output-limit calculations.

New

  • Anthropic authentication: /login (browser or copy-code) and /logout over the
    shared ~/.pi/agent/auth.json; workload identity federation
    (ANTHROPIC_FEDERATION_RULE_ID, ANTHROPIC_ORGANIZATION_ID,
    ANTHROPIC_IDENTITY_TOKEN_FILE); credentials are re-resolved before every request,
    and a stored token refresh is persisted even if the request is cancelled or the
    refresh finishes late.
  • Azure provider: Azure OpenAI Responses and Azure Foundry Chat Completions
    (azure/deepseek-v4-pro), configured with AZURE_OPENAI_API_KEY,
    AZURE_OPENAI_BASE_URL or AZURE_OPENAI_RESOURCE_NAME, and
    AZURE_OPENAI_DEPLOYMENT_NAME_MAP.
  • MCP: sessions load ~/.pi/agent/mcp.json; servers without direct tools connect
    in the background; an mcp_servers system-prompt section; .pi/mcp.json override
    rules; OAuth hardening (RFC 9207 issuer checks, step-up scopes, credentials per server
    name and URL, client ID metadata documents); pisharp mcp add|remove|list|login|logout
    with a durable mcp-auth.json; --no-mcp.
  • Tool selection: --tools and --exclude-tools accept * patterns; +name and
    -name modify the default selection; --tools keeps MCP tools unless an entry starts
    with mcp__.
  • User shell commands: RPC bash/abort_bash and interactive !/!!, with ANSI
    sequences split across chunks held back.
  • Events: optional durationMs on assistant messages, tool results and
    tool_execution_end; agent_settled carries aborted in RPC, JSON mode and native
    extensions.
  • Extension API: registerToolRenderer, namespace instructions,
    ToolLoadout.GetPromptGuidelines.
  • Providers: Anthropic inline tool definitions (inline-tools-2026-09-15) and
    non-strict fallback; samplingParamsByThinkingLevel; more retryable errors
    (server_busy, capacity, Mistral finish_reason: "error"); model catalog from
    pi-ai 1.1.0, including Claude Haiku 5.5.
  • Claude Opus 5, Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1: these models
    were rejected with "Unsupported native thinking metadata". They now work, with Pi's
    per-turn thinking effort (output_config effort markers replayed for each assistant
    turn and the managed-effort beta headers).
  • Cost: prompt-length pricing tiers apply on every cost path (Anthropic, OpenAI
    Responses and Completions, Google, Mistral), and the native Anthropic route now
    reports catalog costs, including for fallback models.
  • OpenAI grammar tools: models with supportsOpenAIGrammarTools get grammar tools as
    custom tools, and transcripts replay them with their ctc_ item ids, as Pi 1.0.0 does.
  • Terminal: Home/End are editor-only and Ctrl+Home/Ctrl+End move to the transcript
    top and bottom; OSC 7501 program status with PI_PROGRAM_STATUS=1.

Known gaps

  • Codemode, tool_search, classifiers and image generation were already missing at
    v0.99.1. They are planned as 1.1.0.x releases on this baseline. Until then, MCP servers
    whose tools need codemode or tool_search do not connect.
  • Pi's quietStartup, outputPad and tuiMode settings have no PiSharp counterpart.
  • Upstream's durable runtime, remote execution environments, experimental client/server
    modes and Nix packaging are out of scope.

Packages

All library packages and the PiSharp.Cli dotnet tool are published as 1.1.0:

dotnet tool update -g PiSharp.Cli