New Features
- Constrained tool sampling — Tools can prefer or require strict JSON Schema sampling or use OpenAI Lark/regex grammars, with model capability metadata preventing unsupported requests. See Constrained Sampling for Tools.
- OpenRouter and Kimi Code sign-in — Use
/loginto authorize OpenRouter or a Kimi Code subscription without manually configuring API keys. See OpenRouter. - Session-aware, streaming bash integrations — Bash tools receive current session/model metadata, while direct RPC bash commands stream correlated output. See Bash Tool Session Environment and RPC bash events.
Added
- Added inherited
Tool.constrainedSamplingwith strict JSON Schema (prefer/require) and OpenAI Lark/regex grammar variants across OpenAI, Anthropic, Amazon Bedrock, Google Gemini, and Mistral. See Constrained Sampling for Tools. - Added inherited
supportsGrammarToolsandsupportsStrictToolscompatibility flags, expandedsupportsStrictModecoverage, and generated model capability metadata to gate constrained sampling. - Added inherited Kimi Code subscription OAuth login for the Kimi For Coding provider, including device authorization and automatic token refresh (#6935 by @zaycruz).
- Added inherited OpenRouter OAuth PKCE login through
/login, minting a user-controlled API key. See OpenRouter (#6927 by @rsaryev). - Exposed
PI_SESSION_ID,PI_SESSION_FILE,PI_PROVIDER,PI_MODEL, andPI_REASONING_LEVELto commands run by built-in and factory-created bash tools. See Bash Tool Session Environment. - Added streaming
bash_execution_updateevents for direct RPC bash commands, correlated with request IDs. See RPC bash events (#6971 by @ananthakumaran).
Changed
- Changed inherited generated model catalogs to expose only provider-verified reasoning effort levels from models.dev (#6928 by @davidbrai).
Fixed
- Fixed inherited DNS lookup failures such as
getaddrinfo,ENOTFOUND, andEAI_AGAINto trigger automatic assistant retries (#6946 by @christianklotz). - Fixed inherited OpenRouter Anthropic cache breakpoints to advance through tool results and enabled cache control for
~anthropic/*-latestaliases (#6941 by @mteam88). - Fixed inherited OpenAI Codex WebSocket sessions to retry once without a missing previous-response continuation after
previous_response_not_founderrors (#6955 by @davidbrai). - Fixed TUI debug and crash logs to respect custom agent directories instead of always writing under
~/.pi/agent(#6958 by @davidbrai). - Fixed slow Ctrl+G external-editor startup when the system temporary directory contains many entries (#6903 by @christianklotz).
- Fixed startup resource display to preserve relative paths for sibling npm extensions loaded by a package (#6964 by @davidbrai).
- Fixed compaction and branch-summary requests to use fresh routing session IDs with prompt caching disabled where supported (#6618 by @tmustier).
- Fixed explicit self-updates when
PI_SKIP_VERSION_CHECKis set (#6977). - Fixed scoped model IDs containing brackets to resolve as literal exact matches before glob matching (#6210).
- Fixed inherited OpenAI and Anthropic provider retry waits to honor abort signals and configured delay limits (#6980 by @petrroll).
- Fixed fresh installs from preferring bundled model catalogs over newer remote catalogs because package file mtimes were newer (#7016 by @davidbrai).
- Fixed inherited editor scroll indicators overflowing narrow terminals (#7015 by @christianklotz).
- Fixed llama.cpp models to use the loaded context window as their output token limit instead of capping it at 16K (#7034 by @christianklotz).
- Fixed release source archives to include the generated provider model data used to build standalone binaries.
- Updated the packaged
protobufjsdependency to 7.6.5 to address GHSA-j3f2-48v5-ccww (#7005). - Fixed
/copyon Wayland to fall back to X11 or OSC 52 whenwl-copyfails (#7009 by @rkfshakti). - Fixed
/modelto reload updatedmodels.jsonconfiguration when opening the model picker (#6999).