跳转到正文

RELEASE ARCHIVE · 官方版本记录快照

Pi 版本更新记录

查某个功能从哪一版出现、一次升级改了什么,或者某个报错是否已经修复,不必再从几千行更新日志里逐段翻找。

本页把 Pi Coding Agent 官方 CHANGELOG.md 整理成可检索档案。版本号、发布日期和英文变更明细均来自官方记录;中文只用于检索标签、分类和五个关键节点说明,不把推测补成官方事实。官方 Changelog 目前从 0.10.0 开始,本页不虚构更早版本的更新内容。

PI RELEASE ARCHIVE

当前最新 v0.87.1

2026-09-22 · 以官方 Coding Agent Changelog 与包版本为准

这一版的重点

  • Latest frontier models — Use Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna through supported providers, including GitHub Copilot. See Choose a Model.
  • Grok 4.7 by default for xAI — New xAI sessions now default to Grok 4.7. See Provider Authentication.
  • Added inherited Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna support for GitHub Copilot.
查看官方原文
个正式版本
278
记录范围
v0.10.0—v0.87.1
官方记录核验于
2026-09-23

EVOLUTION MAP

五个关键节点

从上下文、扩展生态到安全与 Harness 化,沿着代表性版本理解 Pi 的演进。

QUERY THE ARCHIVE

检索全部版本

输入版本号或关键词,也可以按年份、变更类型与主题缩小范围。中文主题词会自动匹配官方英文记录。
变更类型
主题
年份
278 条匹配版本
v0.87.12026-09-2210 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Latest frontier models — Use Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna through supported providers, including GitHub Copilot. See Choose a Model.
  • Grok 4.7 by default for xAI — New xAI sessions now default to Grok 4.7. See Provider Authentication.

新增Added

  • Added inherited Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna support for GitHub Copilot.
  • Added inherited GPT-6 Sol and GPT-6 Luna support for OpenAI API keys and OpenAI Codex subscriptions.
  • Added inherited Claude Opus 5.5 support for Anthropic with adaptive thinking and a 1M context window.

行为调整Changed

  • Changed the default xAI model to Grok 4.7.

问题修复Fixed

  • Fixed split-turn compaction summaries being refused by Claude Fable 5.1 by clearly separating the conversation and using continuation-oriented instructions (#9908 by @davidbrai).
  • Fixed missing or invalid --mode values being silently ignored instead of reporting an error and exiting with a nonzero status (#9045).
  • Fixed inherited image-only user messages being rejected by some OpenAI-compatible providers because they included an empty text part (#9797).
  • Fixed inherited Anthropic OAuth requests reporting an outdated Claude Code version.
v0.87.02026-09-2124 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Canonical session context and extension boundaries — Edit model context without rewriting history and add actionable lifecycle hooks. See ContextEditEntry and extension events.
  • Full-transcript context extensions — Use contextwithsystem for per-request system-message transformations. See contextwithsystem.
  • Per-model image input limits — Configure cache-safe image resizing per model for attachments, read, and tool-result images. See Image Input Limits.

破坏性变更Breaking Changes

  • Removed the inherited shouldStopAfterTurn agent option. Use finishTurn and return { action: "end" } instead. finishTurn runs before turnend but applies the decision afterward, and it also receives error and aborted responses; migrate normal-response predicates by returning undefined for those hard exits. See the @earendil-works/pi-agent-core changelog for a complete before-and-after example.
  • Added ContextEditEntry to the exported SessionEntry union. TypeScript consumers with exhaustive entry switches must handle contextedit; use replacement: null for omission and a content replacement otherwise.
  • Made SessionManager canonical for AgentSession provider context. Assigning session.agent.state.messages no longer replaces future request history; restore with SessionManager.inMemory(cwd, { id }, entries), navigate with session.navigateTree(), or append through session.sessionManager and call session.refreshContext().
  • Expanded TurnEndEvent with required boundary fields and added AgentBeforeSettleEvent to the exported ExtensionEvent union. Consumers constructing events or exhaustively switching on ExtensionEvent must handle the new shapes. ExtensionRunner.emit() no longer accepts turnend; host integrations dispatch actionable boundaries with emitBoundary(baseEvent, buildContext).
  • Deferred runs requested from agentsettled handlers until all settled handlers finish. Handlers still observe ctx.isIdle() === true, but no longer see a reentrant agentstart during the same notification dispatch.

新增Added

  • Added append-only model-context edits. For example, sessionManager.appendContextEdit(entryId, null) omits one message from future provider context without changing raw history, usage, or UI history.
  • Added actionable turnend and agentbeforesettle extension boundaries. Return { entries: [...event.entries, draft], continue: true } to persist structural entries in order and ensure one next provider request without changing steering or follow-up scheduling.
  • Added retain-none compaction input: sessionManager.appendCompaction(summary, null, tokensBefore) stores the compaction's own ID as its kept boundary.
  • Added the contextwithsystem extension event, which runs after context handlers on the full transcript including system messages and sends its result verbatim. See contextwithsystem.
  • Added per-model image resize profiles through inputLimits.images.resize in models.json, applied to file attachments, image reads, and tool-result images (#9631).

问题修复Fixed

  • Fixed string context-edit replacements producing invalid assistant and tool-result message content instead of text blocks.
  • Fixed context-invisible boundary metadata and replacement edits causing newly appended or replaced input to be summarized before its first provider request.
  • Fixed edited-context accounting both discarding valid assistant usage captured after the latest context edit and reusing that usage after a later compaction made it stale.
  • Fixed selected error retries and final length/overflow recovery retaining abandoned model attempts in future provider context; post-run recovery omissions are now persisted without hiding raw transcript history or changing queue scheduling.
  • Fixed context handlers that filter or slice messages dropping the prompt and tool declarations, which after extension-driven compaction left requests without built-in tools or made Codex emit raw tool-call text. Handlers no longer see system messages; Pi restores the prompt and tool state after they run. See context (#9789, #9822).
  • Fixed /bug allowing uploads in offline mode while preserving local zip exports (#9841 by @christianklotz).
  • Fixed idle prompt-cache warming rebuilding expired caches when its timer or an extension decision is delayed.
  • Improved crash diagnostics with hints identifying loaded extensions that appear in the stack trace.
  • Fixed text files beginning with GIF being misclassified as images and omitted from read and CLI @file input (#9755).
  • Fixed malformed prompt template frontmatter being silently ignored instead of reported as a resource warning (#9830 by @christianklotz).
  • Fixed inherited unknown OpenAI-compatible Chat Completions endpoints receiving strict tool schemas unless they explicitly advertise support (#9816).
v0.86.12026-09-208 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Meta Muse provider — Sign in with Meta using /login meta or use METAAPIKEY to access Muse Spark models. See Meta (Muse subscription).

新增Added

  • Added Meta (Muse subscription) login via /login meta with automatic Model API key refresh, plus METAAPIKEY support (#9096 by @xl0).

行为调整Changed

  • Enabled Node's persistent compile cache before loading the bundled CLI runtime, reducing repeat launch time.

问题修复Fixed

  • Fixed /bug descriptions dropping line breaks from pasted diagnostics.
  • Fixed /bug hints appearing for user cancellations and retryable provider failures such as service unavailability.
  • Fixed clipboard copy failing in containers and WSL without WSLg by restoring the OSC 52 fallback when no display is available, and added a verified Windows clipboard backend for WSL (#9688).
  • Fixed inherited z.ai Prompt too long errors not being recognized as context overflow (#9805).
  • Fixed inherited Cerebras models advertising unsupported strict tool schemas, which caused HTTP 400 errors when strict and non-strict tools were mixed (#9804 by @EdenGottlieb).
v0.86.02026-09-1967 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Prompt cache warming — Keep valuable prompt caches alive during long tool runs and optionally while idle using cost-aware refreshes. See Cache Warming.
  • Bug reporting — Report problems with /bug using redacted diagnostics, optional transcripts, or exported ZIP archives. See Reporting Bugs.
  • Transcript-aware prompt and tool updates — Preserve instruction and tool changes across resume and branch navigation while retaining cached prefixes. See beforeagentstart.
  • Offline Radius model catalog — Select Radius models immediately, with cached and live catalogs overlaid when available. See Radius.
  • Per-model compaction budgets — Configure reserved and recent-token budgets by model. See Per-model overrides.

破坏性变更Breaking Changes

  • Changed inherited pi-ai provider stream inputs from Context to normalized TranscriptContext values. Custom providers must read system prompts and tool declarations from context.messages with getCurrentSystemPrompt() and getCurrentTools(). See Custom Streaming API.
  • Restricted inherited ToolCall.arguments and ToolResultMessage.details to JSON-compatible values, changed ToolResultMessage into a conditional type, and made JsonValue arrays readonly.
  • userbash now fails closed: errors or invalid defined results abort the command without invoking later handlers or executing locally. Return undefined to continue propagation; otherwise return { operations } or { result } (#9068).

新增Added

  • Added transcript-backed mid-conversation system prompt and tool changes so instruction and tool updates survive resume and branch navigation while preserving cached prefixes on supported models. See beforeagentstart and Entry Types (#9548).
  • Added inherited native deferred tool loading for Fireworks Messages models. Use ToolSearch or toolsearch as the loader name for prompt-prefix deferral (#9323).
  • Added click toggling for branch summaries, compaction summaries, and skill invocation entries.
  • Added the public Radius model catalog for immediate and offline model selection, with cached and live gateway catalogs overlaid when available.
  • Added ctx.modelRegistry.stream() and streamSimple() for extension model calls through configured providers with resolved authentication (#8964).
  • Added per-model reserveTokens and keepRecentTokens settings through compaction.modelOverrides, with ordinary compaction settings as fallback (#8133).
  • Added compat.allowedFallbackModels configuration for overriding or disabling Anthropic server-side fallback models (#9294).
  • Added an unsubscribe function from pi.on() so extensions can drop event handlers. Handlers added or removed during a dispatch apply to later dispatches, not the current one (#8967).
  • Exported extension hook event and result types that were previously omitted from the package entry points (#9642).
  • Added /bug [description] to report a bug to the Pi developers. The report bundles environment, model, provider, extension, and settings metadata (secrets redacted), assistant message diagnostics from the session, optionally the session transcript, or a model-written summary of what went wrong instead. It is uploaded to Radius (no login required; attributed when logged in) or exported as a zip archive, and the report id is recorded in the session as a pi.bug-report entry. Crashes are recorded in /.pi/agent/crashes.json, announced once on the next start, and attached to the next report; unexplained errors and exhausted retries point at /bug once per session.
  • Added cost-aware prompt-cache warming during long tool runs and optionally while idle, with configurable modes, model cache-lifetime metadata, /session diagnostics, transcript notices, and the cachewarmingdecision extension event. See Cache Warming (#9668).

行为调整Changed

  • Enabled Node's persistent compile cache before loading the bundled CLI runtime, reducing repeat launch time.
  • Made --resume session results appear progressively, using file modification times to prioritize all-folder loading and cancelling outstanding transcript reads after selection.
  • Reduced --continue startup time by checking candidate session headers in modification-time order and stopping after the newest matching session.
  • Replaced the external native clipboard dependency with bundled asynchronous macOS, Windows, and X11 helpers while preserving platform command and OSC 52 fallbacks (#9163).
  • Reduced inherited fuzzy search latency for long texts by using native substring search instead of scanning each character in JavaScript (#9267).
  • Moved compaction, branch summarization, and retry spinners into the editor border alongside the working indicator. Custom editors use the same embedding opt-in for all status spinners.
  • Enabled strict-prefer JSON-schema sampling by default for built-in read, bash, powershell, edit, and write tools, without requiring PIEXPERIMENTAL. Extensions can re-register tool definitions with constrainedSampling: false.
  • Formatted Bash and PowerShell tool durations of at least one minute as minutes and seconds, with hours when needed (#9628).
  • Deferred the extension compiler and bundled virtual modules until a filesystem extension is loaded, reducing the baseline SDK import cost (#9540).

问题修复Fixed

  • Fixed GitHub Copilot GPT models, including GPT-6 Astra, using the Chat Completions adapter instead of the required Responses adapter (#9253 by @petrroll).
  • Fixed inherited DeepSeek V4.1 thinking levels on OpenRouter and OpenCode Go preserving provider effort metadata (#9485).
  • Fixed inherited bodyless HTTP 400/413 errors from non-Cerebras providers being misclassified as context overflow (#9482).
  • Fixed inherited Vercel AI Gateway replaying unsigned thinking as assistant text (#9676).
  • Fixed inherited Google Generative AI and Vertex AI using unsupported thinking levels when reasoning is omitted or when model capabilities differ within a Gemini family (#9455).
  • Fixed inherited Anthropic-compatible relays breaking signed thinking replay when they report a different response model, while preserving fallback pricing (#9188).
  • Fixed inherited Amazon Bedrock one-hour cache writes being priced at the five-minute rate (#9457).
  • Fixed inherited quadratic CPU usage when draining buffered EventStream events (#9055).
  • Fixed inherited Mistral Medium reasoning requests to use reasoningeffort for all reasoning-capable mistral-medium- model IDs instead of the unsupported promptmode (#8700).
  • Fixed inherited OpenCode and OpenCode Go requests to send x-opencode-session from sessionId across all supported API adapters (#9326).
  • Fixed inherited OpenAI Codex requests to send the model's Off reasoning effort instead of omitting it, while respecting unsupported Off mappings (#9191).
  • Fixed inherited Fireworks unsigned thinking replay and reasoning effort selection using catalog metadata, with verified DeepSeek V4 and Qwen3.8 fallbacks and removal of redundant GLM 5.2 and Kimi K3 effort aliases (#9323).
  • Fixed inherited OpenRouter requests to send x-session-id from sessionId for Chat Completions and Anthropic Messages models when prompt caching is enabled (#9102).
  • Fixed the inherited DeepSeek catalog to advertise deepseek-flash for DeepSeek V4.1 Flash instead of retired Flash aliases, and refreshed DeepSeek pricing metadata (#9423).
  • Fixed inherited Mistral-hosted GLM-5.2 reasoning requests to use reasoningeffort instead of the ignored promptmode (#9375).
  • Fixed inherited OpenAI-compatible Responses errors to identify the actual provider instead of always labeling them as OpenAI errors (#9298).
  • Fixed inherited Baseten requests to send session-affinity headers from sessionId for automatic prompt-cache routing (#9629).
  • Fixed inherited retry classification for Cloudflare 520 responses (#9627).
  • Fixed inherited retry classification for transient Azure peak-load capacity errors (#9669).
  • Fixed session tree navigation racing with active compaction and replacing its progress UI (#9179 by @acmerfight).
  • Fixed exact session ID lookup scanning complete transcript bodies instead of reading session headers (#9601 by @metaist).
  • Fixed repeated Anthropic thinking-drop notices being shown for the same dropped blocks, and shortened notices while retaining details in the session (#9391).
  • Fixed mid-run threshold compaction silently skipping oversized trailing tool results (#9740).
  • Fixed signal-terminated local shell commands being reported as successful with partial output (#9577 by @BrendanJMurphy).
  • Fixed local clipboard failures reporting success when the terminal ignored the fallback OSC 52 write, and added platform-specific setup guidance when no clipboard backend works (#9618).
  • Capped agent-level retry backoff at retry.maxAgentDelayMs (60s by default) so long retry runs stay responsive during prolonged transient outages (#8826).
  • Fixed direct RPC steer and followup commands bypassing extension input handlers (#8718).
  • Fixed premature missing-model errors after login by waiting for catalog discovery. Radius now defaults to balanced, falling back to the first available Radius model when needed.
  • Fixed fullscreen mode reserving a blank row for custom footers that render zero rows (#8919).
  • Fixed extension tools without parameter schemas to be rejected during registration instead of breaking provider requests (#9300).
  • Fixed beforeagentstart handlers returning systemPrompt (and forceSystemPrompt) on models with mid-conversation system messages: the forced prompt is now sent as the provider's leading system prompt instead of being appended as a section patch after the original prompt.
  • Fixed loaded llama.cpp models with enablethinking chat templates ignoring Pi's thinking level (#9528).
  • Fixed cancellation races that could start automatic compaction, leave stale retry state, or miss cancellation while waiting for summarization authentication (#9340, #9777).
  • Fixed asynchronous Kitty image conversion replacing newer partial tool output images (#8743 by @wutongyuonce).
  • Fixed inherited skill slash-command autocomplete ranking the skill: prefix instead of the bare skill name (#9120 by @yearth).
  • Fixed inherited file autocomplete boundaries and path quoting around CJK punctuation (#9746 by @haoqixu).
  • Fixed inherited LaTeX legacy font switches falling back to raw source, centered cases layouts around surrounding equations, and vertically laid out unsupported and nested display scripts (#8827, #9564, #7929).
  • Fixed inherited fullscreen Kitty images being erased by later row clears in WezTerm (#9169).

移除Removed

  • Removed unavailable inherited GPT-5.4 and GPT-5.4 mini models from OpenAI Codex selection (#9394).
v0.85.12026-09-057 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • GPT-6 Astra — Available through OpenAI API keys and OpenAI Codex subscriptions. See API Keys and OpenAI Codex.

新增Added

  • Added GPT-6 Astra for OpenAI API keys and OpenAI Codex subscriptions.
  • Added five-times-faster mouse wheel scrolling while holding Alt in fullscreen mode (#9166 by @xl0).

问题修复Fixed

  • Fixed configurable save keybindings in the model and thinking selectors (#9149 by @rwachtler).
  • Fixed SDK import failures caused by unintentionally publishing internal experimental code and dependencies in 0.85.0. The experimental client and experimental/plugin subpaths and server/client commands are now source-only through pi-test.sh; the supported local SDK and stdio RPC API are unchanged (#9132).
  • Fixed mouse hover changing selection and recentering autocomplete and settings lists, causing clicks to target a different item.
  • Fixed long prompt-cache requests for GPT-5.6+ Responses models to use promptcacheoptions.ttl: "30m" instead of promptcacheretention: "24h".
v0.85.02026-09-0435 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Persistent Claude thinking effort — Supported Anthropic transports preserve per-turn effort and recover safely from signed-thinking mismatches. See Model Configuration.
  • Fullscreen transcript controls — Jump to the latest message from a scrolled transcript and use the embedded working indicator. See TUI Fullscreen Viewport.
  • Restorable in-memory sessions — Resume externally stored session entries through the SDK. See Session Management.

新增Added

  • Added SessionManager.inMemory() support for restoring externally managed session entries (#8980 by @y-nk).
  • Added inherited OpenAI-compatible vllmPriority and supportsMaxOutputTokens model settings for vLLM scheduler priority and OpenAI Responses output-token limits (#9004 by @AppleDannyClegg, #8941 by @scturtle).
  • Added inherited LaTeX rendering for relational algebra join symbols (#9050 by @haoqixu).
  • Added a clickable "Jump to latest message" label with the tui.altScreen.bottom shortcut to the fullscreen transcript while it is scrolled up (#9080 by @rwachtler).
  • Added Meta (Muse subscription) login via /login meta with automatic Model API key refresh, plus METAAPIKEY support.

行为调整Changed

  • Moved the streaming working indicator into the default editor border and matched its default spinner and label to the thinking-level border color. Custom editors retain the standalone indicator unless they opt in to embedding it (#8799 by @cristinaponcela).
  • Reduced inherited fullscreen transcript search latency on large transcripts by caching unchanged search results, indexing ASCII runs, and limiting highlight work to visible matches (#8800 by @cristinaponcela).

问题修复Fixed

  • Fixed managed fd and ripgrep downloads on Linux musl systems (#9070 by @Charlie0113-T).
  • Removed the unavailable inherited Grok Build 0.1 model from /model (#9093 by @Jaaneek).
  • Fixed inherited provider streams emitting incompatible event sequences and custom tool-call deltas.
  • Restored the @earendil-works/pi-coding-agent/client compatibility entry point.
  • Fixed the inherited Qwen Token Plan Individual catalog to include Qwen3.8 Flash (#9021).
  • Fixed inherited OpenAI Codex SSE parsing to process terminal events that are not followed by a blank line (#9047).
  • Fixed inherited GitHub Copilot Claude Fable 5 requests so selected reasoning levels are sent (#8961).
  • Fixed inherited Baseten GLM-5.2 models incorrectly advertising image input support (#8293 by @Panoplos).
  • Fixed skills being unavailable when Bash is the only enabled tool (#8552 by @xl0).
  • Fixed concurrent session shares overwriting one another (#8613 by @wutongyuonce).
  • Fixed image orientation detection skipping EXIF data after non-EXIF APP1 segments (#8616 by @wutongyuonce).
  • Fixed imported sessions overwriting an existing session with the same filename (#8985 by @wutongyuonce).
  • Fixed session forks losing their compaction boundary (#8990 by @acmerfight).
  • Fixed in-memory session forks before an active turn settled (#8937 by @acmerfight).
  • Fixed inherited Fireworks GLM models using the wrong API adapter.
  • Fixed inherited NOPROXY matching for root domains and subdomains (#8737 by @MeiSiristhebest).
  • Fixed bash, edit, find, grep, ls, read, and write tools ignoring ctx.cwd (#8627 by @vmizg).
  • Fixed inherited terminal startup under restricted seccomp policies that reject the SIGWINCH self-signal (#8898 by @bartlomiejkida).
  • Fixed inherited Zed terminal image capability detection (#8828 by @Perlence).
  • Fixed drag selection continuing over the fullscreen editor.
  • Fixed managed fd and ripgrep downloads requiring the GitHub Releases API (#8708 by @Terminator666666).
  • Fixed branch summaries failing when reasoning consumes the previous 2048-token output cap (#8845).
  • Fixed the write tool reporting UTF-16 code-unit counts as byte counts by removing the misleading count (#8979).
  • Fixed proxied plain-HTTP provider requests hanging after a tool call by tunneling them with CONNECT (#8134).
  • Fixed RPC abort reporting success without cancelling an in-progress manual compaction (#8920).
v0.84.42026-08-2834 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能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 clearqueue. See RPC clearqueue.
  • 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 supportsMidConvoEffort to custom Anthropic Messages model compatibility settings.
  • Added transcript notices for Anthropic thinking blocks dropped during provider recovery when cache miss notices are enabled.
  • Added uipromptstart and uipromptend 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 clearqueue 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).

行为调整Changed

  • Changed fullscreen scrollbars to reveal on pointer entry, support optional scrollbarTrack and scrollbarThumb theme colors with muted and text fallbacks, keep one thumb color across normal and expanded states, and support track-click jumping.
  • Changed fullscreen transcript search arrows to underline on hover and capitalized the search placeholder.
  • Changed selectors in /thinking, /model, /scoped-models, /trust, per-model thinking settings, and theme settings to keep active options marked while browsing. /scoped-models now uses consistent per-item toggles and strikes through unavailable models (#8900).

问题修复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 reasoningdetails 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).
v0.84.32026-08-2464 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • PowerShell tool — Use optional native PowerShell command execution on Windows. See PowerShell Tool.
  • Safer managed updates — Stage, verify, and atomically activate updates for installer-managed installations. See Install and Manage.
  • Model and thinking controls — Select thinking levels with /thinking, search defaults, keep selections session-scoped, and persist them explicitly with Ctrl+S. See Models and Thinking.

破坏性变更Breaking Changes

  • Renamed the inherited GoogleThinkingLevel type to GoogleApiThinkingLevel and added ResolvedGoogleThinkingLevel for normalized adapter levels.

新增Added

  • Added an optional powershell tool for Windows, configurable through defaultTools and the SDK. See PowerShell Tool.
  • Added a /thinking selector and searchable default choices to the model and thinking selectors; Ctrl+S saves the selected model as the global default. See Models and Thinking.
  • Added optional routing session IDs to exported compaction summary helpers so callers can preserve provider routing without enabling prompt cache writes.
  • Added transcript usage notices for compaction and branch summaries when cache miss notices are enabled.
  • Added sessioncompactfailed extension events so compaction failures and aborts expose their reason, retry state, source, and error message to handlers (#8175).
  • Added inherited provider-neutral toolChoice support to simple stream requests.
  • Added inherited automatic Anthropic server-side refusal fallback for supported first-party models, including returned-model usage pricing (#8017).
  • Added inherited configurable OpenAI-compatible thinking-token budget fields for vLLM, Qwen/SGLang, and llama.cpp servers. See OpenAI Compatibility (#8275 by @bnsd55).
  • Added inherited China-specific ZAI Coding Plan models, including GLM-4.6V vision support and API-equivalent usage cost estimates (#8220).
  • Added inherited deepseek-v4-pro-0813 support to the Qwen Token Plan Individual catalog (#8194).

行为调整Changed

  • Changed experimental installer-managed installations so pi update stages, verifies, and atomically activates the selected release in place. See Install and Manage.
  • Changed inherited built-in xAI models to use the Responses API with encrypted reasoning replay and made Grok 4.6 the default xAI model (#8124 by @Jaaneek).
  • Changed inherited Anthropic, Azure OpenAI, Google, Mistral, and OpenAI adapters to send Pi's default User-Agent unless overridden (#8305).
  • Changed Windows and WSL keybinding defaults to avoid terminal-reserved shortcuts for image paste, model cycling, editor undo, fullscreen transcript navigation and search, and message queueing (#8372).
  • Changed Bun release archives to ship the native clipboard binary only inside the wrapper package, removing a duplicate platform package from each archive.
  • Changed package resource glob expansion to use Node.js's built-in implementation with deterministic visible-path matching, reducing the installed runtime dependency tree.
  • Changed the bundled Node.js runtime to load jiti only when importing an extension and Babel only when uncached source needs transformation, reducing CLI startup time and bundle size.
  • Changed syntax highlighting to initialize only twenty common languages eagerly and defer the remaining grammars until after the initial TUI render, reducing CLI startup time.
  • Changed the Node.js CLI and RPC entrypoints to load a bundled runtime, reducing startup filesystem reads while keeping the public library and legacy module paths on the modular runtime for normal dependency identity.
  • Changed session sharing to render clickable terminal links, display only the canonical Radius artifact URL, and include the current system prompt and active tool definitions in Radius session shares.

问题修复Fixed

  • Fixed failed extension factories leaving event subscriptions, provider registrations, and default flag state active (#8424 by @acmerfight).
  • Fixed models.json typings omitting the documented OpenAI-compatible compat.supportsFinishReason provider and model override (#8487 by @petrroll).
  • Fixed /model and /thinking selections being persisted globally unless explicitly saved with Ctrl+S (#5263).
  • Fixed JSON and RPC toolcallstart events omitting the tool call id and name (#7953 by @christianklotz).
  • Fixed extensions failing to load when the Node.js CLI runs as a single-executable application (#8237).
  • Fixed nested Markdown skills inside .agents/skills/ grouping directories not being discovered.
  • Fixed compaction and branch summarization requests exposing tools to providers.
  • Fixed single-object edit tool inputs failing validation by accepting them as one-edit arrays in both coding-agent and harness edit tools (#7835).
  • Fixed root Markdown files such as README.md and AGENTS.md in skill directories being reported as broken skills unless they declare valid skill frontmatter (#7805).
  • Fixed the default Cerebras model referencing an unavailable Z.AI model.
  • Fixed inherited OpenAI-compatible Chat Completions reasoning replay to preserve and resend assistant-level reasoningdetails verbatim and in order (#7994).
  • Fixed inherited Anthropic server-side fallback responses being priced with the requested model instead of the returned fallback model (#8285).
  • Fixed inherited GitHub Copilot login triggering model-policy rate limits by limiting policy updates, retrying model discovery once, and honoring server retry delays (#7850).
  • Fixed inherited Amazon Bedrock dropping and failing to replay opaque redacted reasoning from non-Anthropic models (#8314 by @seiji).
  • Fixed inherited Z.AI Coding Plan models deriving incomplete reasoning-effort metadata, including missing GLM-5.3 low, high, and max levels (#8336).
  • Fixed inherited DeepSeek V4 Flash on OpenCode and OpenCode Go omitting its supported low thinking level (#8181 by @tianshuang).
  • Fixed inherited Azure OpenAI Responses ignoring toolChoice in provider-specific stream requests.
  • Fixed inherited Amazon Bedrock response hooks receiving only a synthesized request id instead of the raw response headers (#8234).
  • Fixed inherited Kimi usage reporting so top-level cachedtokens count as cache reads instead of normal input tokens (#8075).
  • Fixed inherited Google custom models ignoring thinkingLevelMap, which dropped extended thinking controls (#8135).
  • Fixed writes to auth.json and models-store.json overriding administrator-managed file permissions and ACLs (#7779).
  • Fixed UTF-8 BOM markers preventing frontmatter and user configuration files from loading (#8337).
  • Fixed invalid settings files being easy to miss during interactive startup by rendering warnings with the file path inside the TUI (#7829).
  • Fixed the subagent example repeatedly prompting before running project-local agents in trusted repositories (#8261).
  • Added sessioncompactfailed extension events so compaction failures and aborts expose their reason, retry state, source, and error message to handlers (#8175).
  • Fixed truncated compaction and branch summaries being persisted when generation reaches its output token limit (#7048).
  • Fixed npm package update checks treating older registry versions as available updates, preventing pi update from downgrading already-newer installed packages (#8226).
  • Fixed built-in llama.cpp models disappearing from /model when /llama refreshed a configured server under PIOFFLINE, and included idle-slept sleeping router models plus autoloadable unloaded presets in the selectable catalog (#8558 by @cristinaponcela).
  • Fixed pi.registerFlag() accepting default values that do not match the declared flag type (#8064).
  • Fixed Z.AI Coding Plan defaults referencing the removed GLM-5.1 model (#8096).
  • Fixed repeated ambiguous truncated-response recovery being mislabeled as context overflow (#8130).
  • Fixed duplicate fullscreen right-click paste in VS Code-based terminals on Windows (#8186).
  • Fixed inherited padded text exceeding narrow terminal widths (#8252).
  • Fixed inherited wrapped Markdown table links leaking color into borders and neighboring cells, including tables inside blockquotes (#8335).
  • Fixed llama.cpp login guidance to direct users to /llama before /model when no local models are loaded (#8203).
  • Fixed hung pi.dev model catalog requests consuming the entire refresh deadline without retrying (#8198).
  • Fixed inherited Xiaomi model catalogs listing shut-down MiMo V2 models in /model and --list-models (#8187).
  • Fixed branch summary entries recording the navigation destination in fromId instead of the pre-navigation source leaf.
  • Fixed threshold auto-compaction being skipped when providers omit streaming usage data (#8328).
  • Fixed dash-prefixed prompts being parsed as options by supporting -- as an end-of-options delimiter (#7269).
v0.84.22026-08-1445 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能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 per-block fullscreen mouse expansion for thinking sections and tool results, while preserving drag selection and link activation.
  • 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 PIEXPERIMENTAL=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 endturn 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 AIAGENT=pi process marker and how it differs from PICODINGAGENT=true (#7747).
  • Changed inherited OpenAI Responses deferred tool loading to prefer message-anchored additionaltools 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 root Markdown files such as README.md and AGENTS.md in skill directories being reported as broken skills unless they declare valid skill frontmatter (#7805).
  • Fixed single-object edit tool inputs failing validation by accepting them as one-edit arrays in both coding-agent and harness edit tools (#7835).
  • 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 messageupdate events dropping cumulative usage during streaming. See JSON Event Mode and RPC messageupdate (#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 PITUIESCTIMEOUT 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).
v0.84.12026-08-0717 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Qwen Token Plan Individual — Use the built-in provider for models documented for Individual subscriptions. See API Keys.
  • Authentication readiness checks — Use pi auth check to verify provider or model credentials, optionally emitting the resolved credential.
  • Improved fullscreen interaction — Select words and paragraphs with multiple clicks and configure half-page transcript scrolling. See TUI Fullscreen Viewport.
  • Terminating blocked tool calls — Extension toolcall handlers can stop all-terminating batches without another model call. See Tool Events.

新增Added

  • Added Qwen Token Plan Individual as a built-in provider with its documented subscription model catalog and the shared international QWENTOKENPLANAPIKEY. See API Keys (#7659 by @arasovic).
  • Added pi auth check provider/model auth preflight with optional credential output (#7152).
  • Added terminate support to blocked extension toolcall events so all-terminating batches can skip the automatic follow-up model call. See Tool Events (#7715 by @muyiyr).
  • Added inherited double-click word and whitespace selection, granularity-aware drag selection, and triple-click paragraph selection in fullscreen mode (#7725, #7733 by @volsa).
  • Added inherited unbound half-page transcript scrolling actions for fullscreen mode. See TUI Fullscreen Viewport (#7735).

行为调整Changed

  • Softened the bash tool's PI environment guideline in an attempt to reduce unnecessary inspection commands (#7128).
  • Reduced worst-case automatic terminal theme detection delay from 200 ms to 100 ms by probing color-scheme and background support concurrently.

问题修复Fixed

  • Fixed Bun standalone binaries crashing on startup when the cwd contains a bunfig.toml with preload by compiling with --no-compile-autoload-bunfig (#7685 by @geril07).
  • Fixed extension TUI method wrappers recursing indefinitely when delegating to the original method (#7731).
  • Fixed right-click not pasting clipboard text in fullscreen mode on Windows.
  • Fixed inherited Agent.reset() clearing transcript and runtime state during active runs; it now rejects until the agent is idle (#7717 by @wesleyzhangwq).
  • Fixed inherited LaTeX relation, multiplication, and named-operator spacing, and matrix composition with stacked fractions, operator limits, and adjacent matrices.
  • Reduced inherited fullscreen mouse event volume under tmux, Zellij, and GNU Screen by using button-motion tracking instead of all-motion tracking.
v0.84.02026-08-06124 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Fullscreen TUI mode — Switch between regular and fullscreen modes at runtime, with a sticky editor and footer, independently scrollable transcript, and draggable scrollbars. See UI & Display.
  • Mermaid and LaTeX rendering — Render Mermaid diagrams and terminal-friendly Unicode math in interactive transcripts. See Markdown settings and TUI Markdown.
  • Per-directory context overrides — Use AGENTS.override.md to replace context files for a specific directory. See Context Files.
  • Advanced custom model sampling — Configure arbitrary OpenAI-compatible samplingParams and opt-in vLLM thinkingtokenbudget values. See Sampling Parameters.
  • Baseten provider — Use built-in Baseten authentication and model support. See API Keys.

破坏性变更Breaking Changes

  • Renamed the inherited pi-ai ModelsStreamTransforms interface to ModelsRequestTransforms because its header transformation now applies to all authenticated provider requests.
  • Changed JSON and RPC messageupdate events to emit only assistantMessageEvent deltas, removing the cumulative message and assistantMessageEvent.partial fields that caused quadratic output growth. Clients that need partial messages must assemble deltas between messagestart and messageend; the latter remains authoritative (#7290).
  • ModelRegistry.getApiKeyAndHeaders() now returns ProviderHeaders with string | null values and preserves null header-deletion markers. Extensions that inspect returned headers must handle null; extensions forwarding them to pi-ai streams should pass them through unchanged. This prevents placeholder OpenAI credentials from being sent through Cloudflare AI Gateway (#7030).
  • Changed ModelRegistry.refresh() to accept ModelsRefreshOptions and return ModelsRefreshResult instead of discarding cancellation and provider errors.
  • Changed ModelRuntime.setRuntimeApiKey() to accept auth cancellation options rather than catalog refresh options. Call refresh({ providers: [providerId], signal }) separately when remote freshness is required.
  • Required config-form extension OAuth refreshToken(credentials, signal) callbacks to accept and honor a concrete abort signal.
  • Replaced dynamic provider refresh context store access with the read-only context.stored snapshot and generation-checked context.publish() transaction.
  • Providers built with createProvider({ fetchModels }): no catalog-publication migration is required. Before and after, return the fetched models and register the resulting provider; createProvider() owns restoration, persistence, and in-memory publication.
  • // Before · const beforeProvider = createProvider({ · // ... · fetchModels: async ({ signal }) => { · const response = await fetch(catalogUrl, { signal }); · return parseModels(await response.json()); · }, · }); · pi.registerProvider(beforeProvider); · // After: unchanged · const afterProvider = createProvider({ · // ... · fetchModels: async ({ signal }) => { · const response = await fetch(catalogUrl, { signal }); · return parseModels(await response.json()); · }, · }); · pi.registerProvider(afterProvider);
  • Handwritten native Provider.refreshModels(): replace direct store access and pre-publication mutation with generation-guarded publications.
  • // Before · refreshModels: async (context) => { · const stored = await context.store.read(); · if (stored) currentModels = stored.models; · if (!context.allowNetwork) return; · const refreshed = await fetchModels(context.signal); · currentModels = refreshed; · await context.store.write({ models: refreshed, checkedAt: Date.now() }); · }, · // After · refreshModels: async (context) => { · if (context.stored) { · const restored = context.stored.models; · if (!(await context.publish({ · update: () => { currentModels = restored; }, · }))) return; · } · if (!context.allowNetwork) return; · const refreshed = await fetchModels(context.signal); · if (context.signal.aborted) return; · await context.publish({ · persist: { models: refreshed, checkedAt: Date.now() }, · update: () => { currentModels = refreshed; }, · }); · },
  • For the config-form pi.registerProvider(name, { refreshModels }), callbacks that only return models remain unchanged; pi publishes the returned list. If such a callback previously used context.store for custom persistence, read context.stored and call context.publish({ persist: entry }). In publish(), omit persist to leave storage unchanged, pass a ModelsStoreEntry to write it, or pass persist: null to delete it.
  • Replaced the inherited pi-agent-core harness session model with the v4 lane-based Session, SessionStorage, and SessionRepo APIs, including durable operation records, global facts, shared sequence numbers, and tree-scoped lane views.
  • Promoted the inherited v2 session and AgentHarness API from pi-agent-core's experimental entrypoint to its default export and removed the experimental subpaths.
  • Removed the inherited legacy JSONL and in-memory repository APIs. Use pi-agent-core's v4 JsonlSessionRepo or InMemorySessionRepo, both implementing the new SessionRepo contract.
  • Added the inherited required pi-agent-core FileSystem.renameFile() operation for atomic JSONL publication; custom harness file-system implementations must provide same-filesystem replacement semantics (#7707 by @davidbrai).
  • Replaced experimental remote-session list summaries with durable SessionMetadata; RemoteSession.sessions no longer exposes runtime phase, model, thinking, attachment, or lock state, which remains available from acquired SessionSnapshot values (#7708).

新增Added

  • Added built-in Baseten provider support with BASETENAPIKEY authentication and zai-org/GLM-5.2 as the default model.
  • Added experimental remote-session client APIs: the transport-neutral PiClient, CBOR protocol, Unix-socket transport, and @earendil-works/pi-coding-agent/client RemoteSession controller with transcript reducers. See Pi Client and Remote Protocol (#7344, #7348, #7371, #7409).
  • Added CredentialSynchronizationError for credential changes that commit successfully but fail to synchronize local model state.
  • Added chainable pi.registerMarkdownTransformer() hooks for display-only transformation of user and assistant Markdown. See pi.registerMarkdownTransformer() (#7231 by @xl0).
  • Added an experimental fullscreen TUI mode, selectable through --tui-mode fullscreen or /settings (#7304).
  • Added runtime switching between regular and fullscreen TUI modes through /settings.
  • Added a sticky editor, status, widget, and footer dock to fullscreen mode while keeping the transcript independently scrollable.
  • Added a draggable transcript scrollbar to fullscreen mode with configurable auto, always, and hidden modes through /settings; always reserves the rightmost column.
  • Added page scrolling and marked-message navigation shortcuts to fullscreen mode.
  • Added an optional scrollbarThumb theme color for fullscreen scrollbar thumbs, falling back to selectedBg.
  • Added configurable themed Unicode rendering for supported Mermaid diagrams in interactive messages, including optional rendering while streaming. See Markdown settings (#7624 by @xl0).
  • Added opt-in Ctrl+P/Ctrl+N prompt history navigation, with explicit history bindings taking precedence over application shortcuts while the editor is focused.
  • Added per-directory AGENTS.override.md context files, which replace AGENTS.md or CLAUDE.md in the same directory while preserving context from other directories. See Context Files (#7681 by @Marvae).
  • Added AIAGENT=pi to CLI and RPC child-process environments for generic agent attribution. See Environment Variables (#7493 by @renaudhartert-db).
  • Added inherited terminal-friendly Unicode rendering for LaTeX expressions in Markdown. See TUI Markdown.
  • Added stacked transient notifications in fullscreen mode.
  • Added arbitrary OpenAI-compatible model sampling parameters through samplingParams in models.json, model overrides, extension providers, and stream options. See Sampling Parameters (#7568 by @mrexodia).
  • Added inherited opt-in vLLM thinkingtokenbudget support for OpenAI-compatible models, reserving output tokens for the final answer (#7638 by @bnsd55).
  • Added inherited support for OpenAI-compatible streams that omit finishreason, using compat.supportsFinishReason to infer normal and tool-use stops when the stream ends. See OpenAI Compatibility.
  • Added inherited deferred provider request contracts, durable response handles, authenticated fetch/cancel dispatch, and faux-provider support for pending, ready, failed, and cancelled responses (#7339 by @davidbrai).
  • Added inherited vendor-neutral telemetry contracts plus agent-owned typed AI-request and harness schemas, composed span starters, and callback helpers. See the agent telemetry schema reference.
  • Added inherited structured Amazon Bedrock failure diagnostics with HTTP status, modeled error code, and AWS request id when available (#7286 by @brianstanley).
  • Added inherited AgentOptions.shouldStopAfterTurn for gracefully stopping after a completed turn before queued messages or another model call are processed. See Agent Options (#7367 by @acmerfight).
  • Added inherited v4 JsonlSessionRepo support for append-only JSONL harness sessions (#7611 by @davidbrai).
  • Added inherited bounded branch-entry and indexed open-operation recovery queries to the v4 session API (#7448, #7646).
  • Added the inherited compile-complete AgentHarness v2 scaffold; unfinished operation paths reject with HarnessNotImplemented while durable execution is implemented.

行为调整Changed

  • Added inherited optional cancellation to pi-ai ModelsStore reads, writes, and deletions; catalog orchestration binds these waits to the provider refresh signal.
  • Reduced the inherited default fullscreen mouse wheel step from three lines to one for finer scrolling.

问题修复Fixed

  • Fixed the footer showing (sub) for generic OAuth/OpenID sign-ins without a known subscription; extension OAuth providers can opt in with isSubscription.
  • Fixed inherited OAuth token refreshes so stalled requests release the credential-store lock (#7508).
  • Fixed inherited tool argument validation to preserve values that already match an anyOf/oneOf union arm before coercion, avoiding nullable unions converting null to another primitive value (#7328).
  • Fixed inherited Fireworks GLM 5.2 requests sending the unsupported promptcacheretention field when long cache retention is enabled, and enabled session affinity for automatic prompt caching (#7676).
  • Fixed inherited JsonlSessionRepo enforcing session IDs globally across working directories; IDs are now unique within each working directory.
  • Fixed inherited JSONL session forks and torn-tail repairs to publish atomically, avoiding partially written or corrupted sessions after interrupted writes (#7707 by @davidbrai).
  • Fixed path-containing find globs returning no results on Windows (#6817).
  • Fixed messages queued during manual /compact failing instead of being sent after compaction completes.
  • Fixed Git Bash, MSYS, Cygwin, and WSL drive paths passed to built-in file tools resolving against the current Windows drive instead of their native drive (#7064, #7547).
  • Fixed project-level nested provider retry settings replacing unmodified global provider retry settings (#7572).
  • Fixed inherited GitHub Copilot Grok 4.5 requests to use the supported Responses API (#7560).
  • Fixed fullscreen shutdown leaking terminal capability-query replies into the parent shell prompt.
  • Fixed bare exact --model IDs shared by multiple providers choosing the first catalog entry instead of the sole authenticated provider or a clear ambiguity error (#7327).
  • Fixed standalone x64 binaries requiring Haswell-era AVX2/BMI2 instructions by compiling release executables against Bun's baseline runtime (#7390 by @davidbrai).
  • Fixed Ctrl+X copy confirmations in fullscreen mode adding a transcript status line instead of showing the transient Copied! marker.
  • Fixed Kitty image previews in fullscreen mode overlapping the sticky editor and footer dock while scrolling.
  • Fixed image-heavy fullscreen sessions lagging when layout changes retransmitted visible Kitty image payloads and rendered the transcript twice per frame.
  • Fixed spaces in /settings searches toggling the highlighted setting while typing multi-word queries such as TUI mode or Quiet startup.
  • Fixed custom editors not inheriting the default editor's autocomplete dropdown item limit (#7333).
  • Fixed malformed resource arrays in package manifests crashing session startup (#7187).
  • Fixed the DOOM overlay example downloading its shareware WAD from a dead URL.
  • Fixed setToolsExpanded(false) to be a no-op when tool output is already collapsed, avoiding redundant Tool output: collapsed startup notices from extensions (#7292).
  • Fixed extension-driven model calls in custom compaction, handoff, and Q&A examples to dispatch through the coding-agent model runtime so custom providers and resolved auth options are preserved (#7325).
  • Fixed long-running sessions using stale credentials after another process updates auth.json without serializing concurrent credential reads and delaying startup (#7319).
  • Fixed concurrent models-store.json reads forming a file-lock convoy and delaying startup.
  • Updated the packaged brace-expansion dependency to 5.0.8 to address GHSA-mh99-v99m-4gvg (#7316).
  • Fixed forced model availability refreshes remaining blocked behind a stalled earlier refresh (#7301, #7421 by @a-yeyang).
  • Fixed /model catalog refresh failures to identify every catalog that failed.
  • Fixed provider login remaining stuck after saving credentials when a model catalog refresh stalls by separating local credential consistency from bounded background freshness (#7027, #7113, #7418).
  • Fixed /scoped-models waiting for remote catalogs before rendering instead of showing cached models and cancelling refresh on close (#7153).
  • Fixed /model name waiting for catalog refresh before checking cached model matches (#7443).
  • Fixed stale availability snapshots and errors publishing after a newer availability pass.
  • Fixed stale pi.dev, Radius, llama.cpp, and extension catalog refreshes publishing after a newer provider refresh.
  • Fixed cancellation while waiting for file-backed credential or model-catalog locks, preventing cancelled mutations from running or committing later.
  • Fixed concurrent in-memory credential mutations losing unrelated provider updates by serializing their read-modify-write sections.
  • Updated undici to 8.9.0 and the packaged brace-expansion to 5.0.9 to address GHSA-8xcm-r25x-g524, GHSA-4cwx-7wf7-3272, GHSA-m8rv-5g2x-5cg5, GHSA-jr45-8vmc-qm54, GHSA-v3r7-h72x-cjcm, and GHSA-rgw5-rvv9-x895.
  • Fixed GitHub Copilot compaction and branch summaries using the Individual endpoint instead of the credential-resolved Business or Enterprise endpoint (#6768).
  • Fixed extension model calls dropping credential-resolved endpoints when forwarding request authentication, including custom compaction with GitHub Copilot Business and Enterprise accounts (#7579).
  • Fixed fullscreen transcript navigation leaving no editor-accessible Home, End, PageUp, or PageDown variants by adding Ctrl-modified editor bindings (#7574).
  • Fixed extension event-bus listeners surviving session reloads and disposal (#7656 by @tudoroancea).
  • Fixed /copy failing to read clipboard text on Wayland when no X11 clipboard is available (#7387).
  • Fixed slow connections failing during the initial connection attempt by increasing the connect timeout (#7435 by @muyiyr).
  • Fixed oversized images returned by extension and built-in tools bypassing automatic image resizing. See Image settings (#7330 by @tizmagik).
  • Fixed session discovery missing sessions stored through symlinked directories (#7552 by @muyiyr).
  • Fixed manual compaction racing with threshold auto-compaction (#7370 by @davidbrai).
  • Fixed responses truncated below their intended output limit ending the run instead of compacting and retrying once (#7540 by @davidbrai).
  • Fixed Git package updates leaving dependencies missing when git clean cannot remove an ignored dependency directory (#7570 by @mrexodia).
  • Fixed find results from POSIX and Windows filesystem roots losing the first path segment or gaining duplicate trailing separators (#7569 by @petrroll).
  • Fixed transient version-check, catalog, managed-tool, and package-management HTTP failures not being retried (#7632 by @petrroll).
  • Fixed interactive errors ignoring the configured output padding.
  • Fixed the inherited OpenCode Go provider display name.
  • Fixed inherited provider error normalization treating arrays and class instances as structured response bodies instead of preserving their original errors (#7205 by @erikogenvik).
  • Fixed inherited Anthropic streams dropping text or thinking included in the initial content-block event (#7358 by @davidbrai).
  • Fixed inherited Google history conversion dropping signed empty text and thinking blocks required for replay (#7362 by @jingtao-wisdomgraph).
  • Fixed inherited OpenAI Codex cached WebSocket sessions being shared across different account credentials (#7364).
  • Fixed inherited transient Google Generative AI and Vertex AI provider errors bypassing automatic retries (#7471 by @vish-pr).
  • Fixed inherited Gemini 3 tool call ids being discarded during history conversion, breaking signed multi-turn replay (#7494 by @muyiyr).
  • Restored inherited GitHub Copilot models returned through account-specific policy responses (#7672 by @muyiyr).
  • Replaced the inherited retired Qwen Token Plan qwen3.8-max-preview model with qwen3.8-max (#7670 by @QuintinShaw).
  • Fixed inherited terminal width accounting for Indic conjunct grapheme clusters (#6987 by @petrroll).
  • Fixed inherited nested fullscreen stack layouts ignoring child minimum sizes.
  • Fixed inherited batched terminal color-scheme reports being parsed as one malformed response (#7550).
  • Fixed inherited terminal progress clearing to emit the complete OSC 9;4 sequence (#7581).
  • Fixed inherited iTerm2 image payloads omitting the size metadata required by the xterm.js image addon (#7612).
  • Fixed inherited width truncation leaving OSC 8 hyperlinks unterminated (#7657 by @xXJSONDeruloXx).
  • Updated inherited GPT-5.6 Terra and Luna pricing across OpenAI and passthrough model catalogs.
  • Fixed inherited Fireworks Kimi K3 models to use the OpenAI-compatible API with native reasoning-effort levels and deferred tools (#7199, #7230 by @XBeg9).
  • Updated the inherited Groq Qwen reasoning override for the replacement qwen/qwen3.6-27b model.
  • Fixed inherited Windows Shift+Enter detection by reading modifier state from the native Win32 helper.
  • Fixed the inherited pi-tui npm package omitting the source and build scripts needed to rebuild its Windows and Darwin native addons.
  • Fixed inherited Windows console truecolor detection when Windows Terminal does not provide WTSESSION to child shells.
  • Fixed inherited phantom fullscreen text selection from unmatched mouse events when changing terminal pane focus.
  • Fixed inherited keyboard input rendering latency on Windows by letting input preempt the throttled render timer.
  • Fixed inherited agent harness path handling on Windows for file basenames, recursive skill loading, and prompt template names.
v0.83.02026-07-2928 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Credential export for external clients — pi auth print-api-key and pi auth print-bearer-token export configured credentials with automatic OAuth refresh and minimum-validity enforcement.
  • Headless OpenRouter sign-in — Complete /login over SSH by pasting the redirect URL or authorization code when the loopback callback is unavailable. See OpenRouter.
  • Claude Opus 5 on GitHub Copilot — Use Claude Opus 5 through GitHub Copilot with adaptive thinking and a 1M context window. See GitHub Copilot.

破坏性变更Breaking Changes

  • Upgraded bundled TypeBox aliases to 1.3.7, removing deprecated APIs including Type.Base, Type.Awaited, Type.Promise, Type.AsyncIterator, Type.Iterator, Type.Options, and Value.Mutate, while fixing compiled validation of nullable array tool arguments. Extensions using removed APIs must migrate to supported TypeBox APIs. See Package Dependencies (#7243 by @petrroll).

新增Added

  • Added pi auth print-api-key and pi auth print-bearer-token commands for exporting configured credentials to external clients, including automatic OAuth refresh and configurable minimum token validity (#7168).
  • Exposed the session's resolved model scope as ctx.scopedModels to extensions. See Extension Context (#7191 by @pungggi, #7215).
  • Added inherited per-request fetch injection for supported text and image provider transports.
  • Added the inherited "pending" stop reason for partial streaming messages. See Custom Provider Stream Pattern (#7151 by @lucasmeijer).
  • Added inherited raw provider stop reasons across Google, Anthropic, Amazon Bedrock, Mistral, and OpenAI streams; unmapped terminal reasons now surface as provider errors instead of successful stops (#7272).
  • Added manual redirect URL and authorization-code entry to OpenRouter login for remote and headless environments. See OpenRouter (#7114 by @rgarcia).
  • Added inherited Claude Opus 5 support for GitHub Copilot with adaptive thinking and a 1M context window. See GitHub Copilot (#7158 by @jay-aye-see-kay).

行为调整Changed

  • Changed inherited OAuth credential resolution to refresh tokens with less than five minutes of validity remaining instead of waiting until expiration (#7168).

问题修复Fixed

  • Added a status line when the tool output expansion is toggled (#7180).
  • Fixed file-backed SYSTEM.md and APPENDSYSTEM.md prompts being omitted from the interactive startup context listing. See System Prompt Files (#7096).
  • Fixed context files loading twice when a linked Git worktree is nested under its main repository. See Context Files (#7221 by @arajkumar).
  • Fixed llama.cpp streamed responses reporting zero token usage and leaving session context accounting empty. See llama.cpp (#7258 by @SteveImmanuel).
  • Fixed session replacement and committed tree navigation during an active response to abort and persist the outgoing turn instead of leaving dangling tool calls. See Sessions (#7022 by @tmustier).
  • Fixed failed Git package installs leaving partial directories that blocked clean retries. See Install and Manage (#7210 by @haoqixu).
  • Fixed the /model selector retaining a stale selection while filtering instead of highlighting the top match (#7211 by @christianbasch).
  • Fixed direct RPC bash commands bypassing extension userbash handlers. See User Bash Events (#7214).
  • Fixed skills, prompts, and themes losing package source metadata after extensions reload resources. See Resource Events (#6968).
  • Fixed cancellation of concurrently running user bash commands so every active command is aborted (#7103 by @yzhg1983).
  • Fixed duplicate messages appearing when extensions switch sessions during interactive startup (#7110 by @yzhg1983).
  • Fixed inherited Qwen Token Plan reasoning models to send their service-specific thinking controls and supported reasoning-effort levels (#6951, #6998).
  • Fixed inherited Z.AI output limits being sent through an unsupported parameter. See Providers (#7174 by @HyeokjaeLee).
  • Fixed explicitly configured Amazon Bedrock profiles being overridden by ambient AWS access keys. See Amazon Bedrock (#7176 by @christianbasch).
  • Fixed inherited image fallback paths overflowing narrow terminals, shortened home-directory paths, and made absolute paths clickable when terminal hyperlinks are available (#7262).
  • Fixed inherited OpenAI-compatible tool calls losing their function arguments when malformed deltas also contain an empty custom object (#7288 by @sunnyyoung).
v0.82.12026-07-2513 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Claude Opus 5 — Available on Anthropic and Amazon Bedrock with adaptive thinking (including xhigh), inference profiles, and prompt caching. See Providers.
  • Anthropic gateway bearer auth — ANTHROPICAUTHTOKEN authenticates against Anthropic-compatible gateways that require Authorization: Bearer, including compaction and branch summaries. See Environment Variables or Auth File.
  • Faster, more resilient model catalogs — pi.dev catalogs revalidate with If-None-Match so unchanged providers answer with an empty 304, and llama.cpp models stay listed across restarts. See llama.cpp.

新增Added

  • Exposed the outputPad setting to custom message renderers. See Extensions (#7045 by @xl0).
  • Added inherited ANTHROPICAUTHTOKEN bearer authentication for Anthropic-compatible gateways. See Providers (#5871).
  • Added inherited Claude Opus 5 support for Anthropic and Amazon Bedrock with adaptive thinking, inference profiles, prompt caching, and preserved AWS validation messages (#7081 by @unexge, #7083 by @davidbrai).

行为调整Changed

  • Changed pi.dev model catalog refreshes to revalidate with If-None-Match, so unchanged provider catalogs answer with an empty 304 instead of a full download.
  • Changed inherited Radius OAuth device authorization, token exchange, and refresh requests to use the configured gateway directly.
  • Changed inherited model loading errors to append the underlying cause, so auth failures such as OAuth refresh failed for openai-codex report the provider response instead of a bare wrapper message.

问题修复Fixed

  • Fixed compaction and branch summaries for providers whose authentication resolves entirely to request headers (#5871)
  • Fixed unavailable scoped models being hidden from /models, allowing them to be removed without editing settings manually (#6949, #7032 by @christianklotz).
  • Fixed startup context file discovery to skip directories that match context file names such as AGENTS.md, which produced EISDIR warnings (#7106 by @mrexodia).
  • Fixed the llama.cpp extension to persist its model catalog, so llama.cpp models stay listed before the first successful refresh. See llama.cpp (#7072 by @davidbrai).
v0.82.02026-07-2427 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能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 PISESSIONID, PISESSIONFILE, PIPROVIDER, PIMODEL, and PIREASONINGLEVEL to commands run by built-in and factory-created bash tools. See Bash Tool Session Environment.
  • Added streaming bashexecutionupdate 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 EAIAGAIN 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 previousresponsenotfound 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 PISKIPVERSIONCHECK 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).
v0.81.12026-07-217 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Verifiable release source archives — GitHub releases now include deterministic, checksummed source archives with instructions for rebuilding standalone binaries. See Building standalone binaries from release source.
  • Resilient compaction and branch summaries — Transient provider failures now follow the configured retry policy, with retry lifecycle events available to interactive, JSON, RPC, and SDK consumers. See Compaction & Branch Summarization and RPC retry events.

新增Added

  • Added deterministic, checksummed source archives to GitHub releases with documented standalone binary rebuild instructions (#6913 by @christianklotz).

问题修复Fixed

  • Fixed compaction and branch summarization to retry transient provider failures using the configured retry policy, with retry lifecycle events exposed to interactive, JSON, RPC, and SDK consumers (#6901 by @davidbrai).
  • Fixed interactive startup waiting for background model catalog refresh while computing the footer provider count.
  • Restored the default stream fallback for extensions using the pre-0.81 agent-core API (#6915).
  • Fixed inherited Kimi K3 models from Moonshot AI and Moonshot AI China to use the OpenAI thinking format and expose reasoning effort support.
v0.81.02026-07-2131 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Local llama.cpp model management — Connect to a llama.cpp router, search and download Hugging Face models, and explicitly load or unload models with live progress. See llama.cpp.
  • Full provider extensions — Extensions can register complete pi-ai providers with authentication, model refresh, filtering, and custom streaming. See Register New Provider.
  • Qwen Token Plan providers — Use the built-in international and China subscription providers with regional endpoints and API-key authentication. See API Keys.
  • Expanded usage accounting — Tool, compaction, and branch-summary usage is persisted and included in session totals. See Compaction & Branch Summarization.

新增Added

  • Added Qwen Token Plan and Qwen Token Plan China to built-in provider setup, default model resolution, and provider documentation (#6858 by @QuintinShaw).
  • Added the getavailablethinkinglevels RPC command and RpcClient.getAvailableThinkingLevels() method (#6865 by @cristinaponcela).
  • Exported message and tool execution lifecycle event types from the package root (#6772 by @davidbrai).
  • Added built-in llama.cpp router support with /login connection setup and /llama Hugging Face model search and downloads, explicit loading, unloading, and live progress. See llama.cpp.
  • Added extension registration for complete pi-ai providers, including native authentication, model refresh, filtering, and streaming behavior.
  • Added usage accounting for tools, compaction, and branch summaries in persisted sessions, footer totals, and session statistics (#6671 by @davidbrai).

问题修复Fixed

  • Updated the packaged brace-expansion dependency to 5.0.7 (#6896 by @davidbrai).
  • Fixed persisted remote model catalogs from overriding newer bundled catalogs after an upgrade.
  • Fixed inherited stored API-key credentials to apply their provider-scoped env values, including Amazon Bedrock profiles (#6864 by @cristinaponcela).
  • Fixed inherited OpenAI-compatible cross-provider replay to keep tool call IDs unique when multiple calls share a provider call ID (#6854 by @cristinaponcela).
  • Fixed inherited Kimi K3 thinking levels to expose low, high, and max, and normalized the k2p7 alias to kimi-for-coding.
  • Fixed inherited OpenCode Go models routed through the OpenAI Responses API.
  • Fixed inherited pi-ai package metadata to avoid repeated consumer lockfile changes (#6812 by @jmfederico).
  • Fixed inherited terminal shutdown to clear the editor's inverted software cursor before restoring the hardware cursor (#6790 by @dam9000).
  • Fixed inherited ANSI-aware text wrapping to recognize CRLF and CR line endings while preserving styles (#6764 by @xz-dev).
  • Fixed inherited editor paste registry corruption after deleting and undoing paste markers, preventing literal or mismatched paste markers in submitted prompts (#6844).
  • Fixed sessionless OpenAI Codex WebSocket requests to use UUIDv7 request IDs (#6834 by @xl0).
  • Fixed inherited GPT-5.6 Codex models to default to the 272K context window, avoiding automatic long-context pricing (#6853 by @aadishv).
  • Fixed messages queued during compaction to preserve steering and follow-up delivery behavior (#6730 by @dannote).
  • Fixed read tool errors being syntax-highlighted as if they were file contents (#6731 by @dannote).
  • Fixed llama.cpp router download progress updates and removed redundant wording from model action confirmations.
  • Moved automatic model catalog network refresh out of startup initialization and into the running interactive and RPC modes.
  • Fixed persisted sessions being read and parsed twice when opened, reducing startup latency for large sessions (#6793).
  • Fixed prompt-template defaults for all arguments (${@:-default} and ${ARGUMENTS:-default}) (#6695).
  • Fixed obsolete custom UI, custom tool, and custom editor examples in the extension documentation (#6735).
  • Fixed Kimi Coding sessions to show API-equivalent implied costs with the subscription indicator.
  • Fixed OpenAI Responses early stream endings to trigger automatic retry instead of ending the agent run (#6727).
v0.80.102026-07-165 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Kimi Coding thinking compatibility — Kimi Coding models now use adaptive thinking correctly; K3 exposes its supported max level and supports replaying empty-signature thinking blocks. See Kimi For Coding setup and Model Options.

问题修复Fixed

  • Fixed inherited Kimi Coding requests to use Anthropic adaptive thinking effort without token budgets, and enabled empty thinking signatures for K3 and kimi-for-coding.
  • Fixed inherited Kimi K3 pricing metadata for Moonshot AI and Moonshot AI China.
  • Fixed inherited Kimi Coding K3 thinking-level metadata to expose only the supported max level (#6737).
  • Fixed inherited catalog generation restoring xAI models removed in 0.80.9 (#6736).
v0.80.92026-07-167 项记录

以下明细保留官方英文表述,避免翻译改变技术含义。

新功能New Features

  • Kimi K3 and deferred tool loading — Use Kimi K3 across built-in providers, including progressive extension tool activation through Kimi’s native protocol. See Dynamic Tool Loading, OpenAI Compatibility, and the kimi-deferred-tools.ts example.

新增Added

  • Added inherited Kimi K3 support for Kimi Coding, Moonshot AI, Moonshot AI China, OpenRouter, and Vercel AI Gateway.
  • Added Kimi deferred tool loading for extension-driven tool activation. See Dynamic Tool Loading, OpenAI Compatibility, and the kimi-deferred-tools.ts example.

行为调整Changed

  • Changed xAI login to use a prefilled device-authorization link labeled “Sign in with SuperGrok or X Premium,” and changed the default xAI model to Grok 4.5 (#6734 by @Jaaneek).

问题修复Fixed

  • Fixed inherited Kimi K3 output limits for Vercel AI Gateway and OpenRouter models.
  • Fixed cloning or forking a session before its first assistant response to explain that the session must be saved first.

移除Removed

  • Removed Grok 3, Grok 3 Fast, Grok 4.20 variants, and Grok Code Fast 1 from the built-in xAI model catalog (#6734 by @Jaaneek).

数据边界与维护方式

  • 事实源:Pi Coding Agent 官方 Changelog。每条版本记录都可以回到对应官方原文核对。
  • 页面保存经过核验的本地快照,网站构建不依赖浏览器临时请求 GitHub;断网时仍能查询已经收录的版本。
  • 更新数据时运行 npm run sync:pi-releases,再同步繁体页面并执行完整检查。页面会显示本次快照的核验日期。
  • 官方英文记录按上游仓库许可使用;本页的中文分类和关键节点说明属于蓝皮书整理内容。项目许可边界见内容许可

如果你准备升级 Pi,先阅读更新、退出登录与卸载,记录当前 pi --version,再对照这里检查目标版本的 Breaking Changes 和迁移说明。