News
Release notes

Pi 0.84.4

New Features

  • Terminal capability overrides — Override detected terminal hyperlink, image, and truecolor support. See Capability Overrides.
  • Extension UI prompt events — Integrations can distinguish active agent work from time spent waiting for ctx.ui prompts. See Extension UI prompt events.
  • RPC queue clearing — Retrieve and clear queued steering and follow-up messages with clear_queue. See RPC clear_queue.
  • Fullscreen selection copy controls — Disable automatic selection copying in fullscreen mode and use Ctrl+X to copy the active selection. See UI & Display.
  • DeepSeek V4 Flash Vision (experimental) — Use the vision-capable model through the built-in DeepSeek provider. See API Keys.

Added

  • Added ui_prompt_start and ui_prompt_end extension events so host integrations can distinguish active agent work from waiting on user-facing ctx.ui prompts (#8355 by @cristinaponcela).
  • Added detectSupportedImageMimeTypeFromFile() to the public library exports (#8600 by @xl0).
  • Added inherited experimental vision-capable deepseek-v4-flash-vision-exp model support.
  • Added transcript usage notices for compaction and branch summaries when cache miss notices are enabled.
  • Added RPC clear_queue to retrieve and remove queued steering and follow-up messages (#8432).
  • Added environment variables and advanced settings for overriding auto-detected terminal hyperlink, image, and truecolor capabilities (#8665).
  • Added fullscreenCopyOnSelect to disable automatic fullscreen selection copy; when disabled, Ctrl+X copies the active text selection before falling back to the last assistant message, while /tree still copies the selected message (#7720).

Fixed

  • Fixed toggling thinking visibility clearing partial output from running Bash tools (#8611).
  • Fixed Windows shell aborts crashing Pi when taskkill.exe is unavailable on PATH (#6596).
  • Fixed resumed sessions corrupting the next appended entry when their JSONL file lacks a trailing newline (#8345).
  • Fixed extension messages sent with triggerTurn: false while the agent is running being inserted between a tool call and its result, which made providers that validate message order reject the replayed history. They are now appended once the turn's tool results are in (#8537).
  • Fixed compaction and branch summaries forcing toolChoice: "none" (#8649, #8638).
  • Fixed large tool results crossing the auto-compaction threshold being sent to the provider before compaction. Pi now compacts between tool execution and the next assistant response in the same run, and restores interactive progress when that run resumes (#6879).
  • Fixed Google Vertex requests failing with HttpsProxyAgent is not a constructor when the bundled Node.js runtime uses an HTTP(S) proxy (#8610).
  • Fixed saving a default model from a non-empty model scope so it remains available in that scope.
  • Fixed inherited @ file autocomplete ranking to prefer direct and shallower matches over similarly ranked nested paths (#8669).
  • Fixed inherited OpenAI-compatible streams serializing thinking signatures repeatedly during streaming (#8671).
  • Fixed inherited main-screen rendering crashing when image-heavy output exceeded V8's string length limit (#8028).
  • Fixed inherited fullscreen double-click word selection splitting paths and kebab-case tokens on / and - (#8676).
  • Fixed inherited Cloudflare AI Gateway catalogs omitting supported workers-ai/* passthrough models.
  • Fixed inherited OpenAI-compatible reasoning replay to merge consecutive streamed text and summary reasoning_details deltas.
  • Fixed inherited OpenRouter reasoning controls so reasoning-mandatory models do not receive effort: "none" (#8614 by @davidbrai).
  • Fixed inherited OpenAI-compatible Chat Completions ignoring an explicitly requested toolChoice when no tools are defined.
  • Fixed inherited fragmented Mistral tool calls splitting when continuation chunks omit the tool-call ID (#8387).