What’s New

pi v0.82.0

v0.82.0
Added
  • Tools can prefer or require strict JSON Schema sampling or use OpenAI Lark/regex grammars with model capability metadata preventing unsupported requests
  • OpenRouter and Kimi Code subscription sign-in via /login to authorize without manually configuring API keys
  • Bash tools receive current session/model metadata including PI_SESSION_ID, PI_SESSION_FILE, PI_PROVIDER, PI_MODEL, and PI_REASONING_LEVEL
  • Direct RPC bash commands stream correlated output via bash_execution_update events
  • Inherited Tool.constrainedSampling with strict JSON Schema and OpenAI Lark/regex grammar variants across OpenAI, Anthropic, Amazon Bedrock, Google Gemini, and Mistral
  • Inherited supportsGrammarTools and supportsStrictTools compatibility flags and expanded supportsStrictMode coverage with generated model capability metadata
  • Kimi Code subscription OAuth login for the Kimi For Coding provider with device authorization and automatic token refresh
  • OpenRouter OAuth PKCE login through /login minting a user-controlled API key
  • Streaming bash_execution_update events for direct RPC bash commands correlated with request IDs
Changed
  • Generated model catalogs now expose only provider-verified reasoning effort levels from models.dev
Fixed
  • DNS lookup failures such as getaddrinfo, ENOTFOUND, and EAI_AGAIN now trigger automatic assistant retries
  • OpenRouter Anthropic cache breakpoints now advance through tool results and cache control enabled for ~anthropic/*-latest aliases
  • OpenAI Codex WebSocket sessions now retry once without a missing previous-response continuation after previous_response_not_found errors
  • TUI debug and crash logs now respect custom agent directories instead of always writing under ~/.pi/agent
  • Slow Ctrl+G external-editor startup when the system temporary directory contains many entries
  • Startup resource display now preserves relative paths for sibling npm extensions loaded by a package
  • Compaction and branch-summary requests now use fresh routing session IDs with prompt caching disabled where supported
  • Explicit self-updates when PI_SKIP_VERSION_CHECK is set
  • Scoped model IDs containing brackets now resolve as literal exact matches before glob matching
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 /login to 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.constrainedSampling with 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 supportsGrammarTools and supportsStrictTools compatibility flags, expanded supportsStrictMode coverage, 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, and PI_REASONING_LEVEL to commands run by built-in and factory-created bash tools. See Bash Tool Session Environment.
  • Added streaming bash_execution_update events 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, and EAI_AGAIN to trigger automatic assistant retries (#6946 by @christianklotz).
  • Fixed inherited OpenRouter Anthropic cache breakpoints to advance through tool results and enabled cache control for ~anthropic/*-latest aliases (#6941 by @mteam88).
  • Fixed inherited OpenAI Codex WebSocket sessions to retry once without a missing previous-response continuation after previous_response_not_found errors (#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_CHECK is 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 protobufjs dependency to 7.6.5 to address GHSA-j3f2-48v5-ccww (#7005).
  • Fixed /copy on Wayland to fall back to X11 or OSC 52 when wl-copy fails (#7009 by @rkfshakti).
  • Fixed /model to reload updated models.json configuration when opening the model picker (#6999).
View original