pi v0.84.2

v0.84.2
Added 9
  • Add fullscreen transcript search with Ctrl+Shift+F, incremental match highlighting, configurable search match theme colors, and next/previous navigation with Enter/Ctrl+G and Shift+Enter/Ctrl+Shift+G
  • Add experimental strict JSON-schema constrained sampling for the default read, bash, edit, and write tools under PI_EXPERIMENTAL=1
  • Add a fullscreen exit output setting to choose between printing the final transcript and only a session resume hint
  • Add the defaultTools setting for configuring the initial built-in tool selection globally or per project
  • Add --use-theme <name[/name]> to choose an initial per-run interactive theme without changing saved settings
  • Add expandPromptTemplates to extension pi.sendUserMessage() options for explicitly dispatching commands and expanding skills and prompt templates
Changed 4
  • Change inherited Kimi Coding requests to use pi's runtime User-Agent header
  • Replace the inherited Mistral SDK transport with a native Chat Completions HTTP stream, eliminating its generated client and schema runtime overhead
  • Change inherited OpenAI Responses deferred tool loading to prefer message-anchored additional_tools where supported while retaining tool-search and top-level fallbacks
  • Reduce inherited fullscreen rendering allocation churn by painting full-width layout rows directly instead of recompositing them on every frame
Fixed 6
  • Fix managed-tool downloads delaying TUI startup and hiding diagnostics in fullscreen mode by mounting the TUI first and showing download progress and warnings inside it
  • Fix opening a model selector immediately after startup cancelling and restarting the in-progress model catalog refresh
  • Fix inherited GitHub Copilot login triggering API rate limits while enabling model policies by limiting concurrent policy updates
  • Fix fullscreen transcript search snapping back to the current match during manual scrolling and fragmented mouse input leaking into the search query
  • Fix inherited required LaTeX arguments starting on a new line being parsed as empty
  • Fix fallback rendering for extension tool results to collapse long output and honor tool expansion
Security 1
  • Update the transitive nanoid development dependency to address a denial-of-service vulnerability
New Features
  • Fullscreen transcript search — Search and navigate matches in fullscreen mode. See TUI Fullscreen Viewport.
  • Configurable default tools — Choose startup built-in tools globally or per project. See Tools.
  • Configurable fullscreen exit output — Print the transcript or only a resume hint on exit. See Interactive Mode.
Added
  • Added fullscreen transcript search with Ctrl+Shift+F, incremental match highlighting, configurable search match theme colors, and next/previous navigation with Enter/Ctrl+G and Shift+Enter/Ctrl+Shift+G.
  • Added experimental strict JSON-schema constrained sampling for the default read, bash, edit, and write tools under PI_EXPERIMENTAL=1.
  • Added a fullscreen exit output setting to choose between printing the final transcript and only a session resume hint.
  • Added the defaultTools setting for configuring the initial built-in tool selection globally or per project.
  • Added --use-theme <name[/name]> to choose an initial per-run interactive theme without changing saved settings (#7722 by @rwachtler).
  • Added expandPromptTemplates to extension pi.sendUserMessage() options for explicitly dispatching commands and expanding skills and prompt templates. See pi.sendUserMessage() (#7857 by @mrexodia).
  • Added inherited createGatewayBindingFetch() for routing Cloudflare AI Gateway requests through a Workers AI binding without an API token (#7901 by @Maximo-Guk).
  • Added inherited AssistantMessage.endTurn to preserve OpenAI Codex's terminal end_turn signal for diagnostics (#7766).
  • Added inherited unbound single-line transcript scrolling actions for fullscreen mode. See TUI Fullscreen Viewport (#7903 by @midastruth).
Changed
  • Changed inherited Kimi Coding requests to use pi's runtime User-Agent header.
  • Replaced the inherited Mistral SDK transport with a native Chat Completions HTTP stream, eliminating its generated client and schema runtime overhead.
  • Documented the generic AI_AGENT=pi process marker and how it differs from PI_CODING_AGENT=true (#7747).
  • Changed inherited OpenAI Responses deferred tool loading to prefer message-anchored additional_tools where supported while retaining tool-search and top-level fallbacks (#7709).
  • Reduced inherited fullscreen rendering allocation churn by painting full-width layout rows directly instead of recompositing them on every frame.
Fixed
  • Fixed managed-tool downloads delaying TUI startup and hiding diagnostics in fullscreen mode by mounting the TUI first and showing download progress and warnings inside it.
  • Fixed opening a model selector immediately after startup cancelling and restarting the in-progress model catalog refresh.
  • Fixed inherited GitHub Copilot login triggering API rate limits while enabling model policies by limiting concurrent policy updates (#6187).
  • Fixed fullscreen transcript search snapping back to the current match during manual scrolling and fragmented mouse input leaking into the search query.
  • Fixed inherited required LaTeX arguments starting on a new line being parsed as empty (#7760).
  • Updated the transitive nanoid development dependency to address a denial-of-service vulnerability.
  • Fixed fallback rendering for extension tool results to collapse long output and honor tool expansion (#7979).
  • Fixed JSON and RPC message_update events dropping cumulative usage during streaming. See JSON Event Mode and RPC message_update (#7982 by @christianklotz).
  • Fixed pi.sendMessage(..., { triggerTurn: false }) steering an active run instead of only recording the custom message (#8022 by @cristinaponcela).
  • Fixed the defaultTools setting dropping extension and SDK custom tools when selecting built-in defaults.
  • Fixed the subagent example rejecting YAML array syntax for the tools frontmatter field (#7598 by @alexsavio).
  • Fixed the subagent example dropping parent session model, thinking, and tool configuration (#7897 by @virtuald).
  • Fixed custom system prompts concatenating the current working directory with later appended prompt content (#7887 by @distributedlock).
  • Fixed inherited OpenAI Responses function and custom tool calls losing namespaces during streaming, proxying, and replay (#7709).
  • Fixed inherited upstream request buffer failures not triggering automatic assistant retries.
  • Fixed inherited built-in and custom DeepSeek API models sending output limits through an unsupported field.
  • Fixed inherited Amazon Bedrock replay rejecting tool arguments that contain empty object keys while preserving all valid nested values (#7882 by @muyiyr).
  • Fixed inherited DeepSeek compatibility detection for base URLs whose hostname contains uppercase letters (#7933 by @yearth).
  • Fixed inherited Google Generative AI and Vertex AI responses with tool calls incorrectly treating output-limit or provider-error stops as normal tool use (#8059).
  • Fixed inherited fullscreen mouse drag selection and OSC 8 link activation in terminals that report generic SGR mouse release button codes (#7963).
  • Fixed inherited focused fullscreen overlays not receiving mouse wheel or viewport scroll keys such as PageUp and PageDown (#7894).
  • Fixed inherited LaTeX control spaces split across line endings causing complete expressions to fall back to raw source.
  • Fixed split Alt+Enter input over SSH being misread as Escape, added PI_TUI_ESC_TIMEOUT for high-latency terminals, and limited that timeout to lone Escape input (#7899 by @powerfooI).
  • Fixed inherited idle fullscreen sessions repainting and clearing text selection when the terminal loses focus (#7892 by @terrorobe).
  • Fixed fullscreen selection copy to use the host clipboard and report failure instead of claiming success when OSC 52 is unsupported (#8110 by @Panoplos).
View original

Upgraded? How did it go?

Discussion