发布日期: 2026-08-14
版本号: v0.84.2

新版本增加了全屏转录搜索功能(支持增量高亮和导航),允许用户全局或按项目配置默认内置工具,并新增了全屏退出时的输出选项(可打印完整会话或仅显示恢复提示)。同时引入了实验性严格JSON模式约束采样、--use-theme运行时主题切换、扩展API的expandPromptTemplates选项、Cloudflare AI网关绑定请求路由、以及OpenAI终端信号保留等功能。改进了Kimi请求头、替换Mistral SDK传输层以降低开销、优化全屏渲染性能。此外修复了大量问题,包括托管工具下载延迟影响启动、模型选择器与刷新冲突、GitHub Copilot登录限流、全屏搜索滚动定位、LaTeX参数解析、JSON/RPC流式事件、子代理示例配置、自定义系统提示拼接、多款AI模型API兼容性,以及SSH终端输入识别、全屏鼠标/键盘交互、剪贴板操作等多个方面的错误。

更新内容 (中文)

新功能

  • 全屏记录搜索 — 在全屏模式下搜索和导航匹配项。参见 TUI全屏视口
  • 可配置默认工具 — 全局或按项目选择启动时内置工具。参见 工具
  • 可配置全屏退出输出 — 退出时打印记录或仅显示会话恢复提示。参见 交互模式

新增

  • 新增全屏记录搜索功能,使用 Ctrl+Shift+F 进行搜索,支持增量匹配高亮、可配置的搜索匹配主题颜色,以及通过 Enter/Ctrl+GShift+Enter/Ctrl+Shift+G 进行下一项/上一项导航。
  • PI_EXPERIMENTAL=1 环境下,为默认的 readbasheditwrite 工具新增实验性的严格JSON模式约束采样。
  • 新增全屏退出输出设置,用于选择打印最终记录或仅显示会话恢复提示。
  • 新增 defaultTools 设置,用于全局或按项目配置初始内置工具选择。
  • 新增 --use-theme <name[/name]> 参数,用于选择每次运行的交互主题,而不更改已保存的设置 (#7722,由 @rwachtler 贡献)。
  • 在扩展 pi.sendUserMessage() 选项中新增 expandPromptTemplates,用于显式分派命令并扩展技能和提示模板。参见 pi.sendUserMessage() (#7857,由 @mrexodia 贡献)。
  • 新增继承的 createGatewayBindingFetch(),用于通过 Workers AI 绑定路由 Cloudflare AI Gateway 请求,无需 API 令牌 (#7901,由 @Maximo-Guk 贡献)。
  • 新增继承的 AssistantMessage.endTurn,以保留 OpenAI Codex 的终端 end_turn 信号用于诊断 (#7766)。
  • 新增继承的未绑定单行记录滚动操作,用于全屏模式。参见 TUI全屏视口 (#7903,由 @midastruth 贡献)。

变更

  • 更改了继承的 Kimi Coding 请求,使用 pi 的运行时 User-Agent 头。
  • 用原生聊天补全 HTTP 流替换了继承的 Mistral SDK 传输层,消除了其生成的客户端和模式运行时开销。
  • 记录了通用 AI_AGENT=pi 进程标记及其与 PI_CODING_AGENT=true 的区别 (#7747)。
  • 更改了继承的 OpenAI Responses 延迟工具加载,以在支持的情况下优先使用消息锚定的 additional_tools,同时保留工具搜索和顶级回退 (#7709)。
  • 通过直接绘制全宽布局行而非在每一帧重新合成,减少了继承的全屏渲染分配变动。

修复

  • 通过先挂载 TUI 并在其中显示下载进度和警告,修复了管理工具下载延迟 TUI 启动和全屏模式下隐藏诊断信息的问题。
  • 修复了启动后立即打开模型选择器会取消并重启正在进行的模型目录刷新的问题。
  • 通过限制并发策略更新,修复了继承的 GitHub Copilot 登录在启用模型策略时触发 API 速率限制的问题 (#6187)。
  • 修复了全屏记录搜索在手动滚动时跳回当前匹配项以及碎片化鼠标输入泄漏到搜索查询中的问题。
  • 修复了继承的必需 LaTeX 参数从新行开始被解析为空的问题 (#7760)。
  • 更新了传递依赖 nanoid 开发依赖,以解决拒绝服务漏洞。
  • 修复了扩展工具结果的回退渲染,使其折叠长输出并遵守工具展开 (#7979)。
  • 修复了 JSON 和 RPC message_update 事件在流式传输期间丢弃累积使用量的问题。参见 JSON 事件模式RPC message_update (#7982,由 @christianklotz 贡献)。
  • 修复了 pi.sendMessage(..., { triggerTurn: false }) 操纵活跃运行而非仅记录自定义消息的问题 (#8022,由 @cristinaponcela 贡献)。
  • 修复了 defaultTools 设置在选择内置默认值时丢弃扩展和 SDK 自定义工具的问题。
  • 修复了子代理示例拒绝 tools 前置字段使用 YAML 数组语法的问题 (#7598,由 @alexsavio 贡献)。
  • 修复了子代理示例丢弃父会话模型、思考和工具配置的问题 (#7897,由 @virtuald 贡献)。
  • 修复了自定义系统提示将当前工作目录与后续附加提示内容拼接的问题 (#7887,由 @distributedlock 贡献)。
  • 修复了继承的 OpenAI Responses 函数和自定义工具调用在流式传输、代理和重放期间丢失命名空间的问题 (#7709)。
  • 修复了继承的上游请求缓冲区失败未触发自动助手重试的问题。
  • 修复了继承的内置和自定义 DeepSeek API 模型通过不支持的字段发送输出限制的问题。
  • 修复了继承的 Amazon Bedrock 重放拒绝包含空对象键的工具参数,同时保留所有有效嵌套值的问题 (#7882,由 @muyiyr 贡献)。
  • 修复了继承的 DeepSeek 兼容性检测中,主机名包含大写字母的基础 URL 无法正确识别的问题 (#7933,由 @yearth 贡献)。
  • 修复了继承的 Google Generative AI 和 Vertex AI 响应在包含工具调用时,错误地将输出限制或提供者错误停止视为正常工具使用的问题 (#8059)。
  • 修复了继承的全屏鼠标拖动选择和 OSC 8 链接激活,在报告通用 SGR 鼠标释放按钮代码的终端中无法正常工作的问题 (#7963)。
  • 修复了继承的聚焦全屏覆盖层无法接收鼠标滚轮或视口滚动键(如 PageUp 和 PageDown)的问题 (#7894)。
  • 修复了继承的 LaTeX 控制空格跨行分割导致完整表达式回退到原始源代码的问题。
  • 修复了 SSH 上分离的 Alt+Enter 输入被误读为 Escape 的问题,新增了 PI_TUI_ESC_TIMEOUT 参数用于高延迟终端,并将该超时限制为仅针对独立 Escape 输入 (#7899,由 @powerfooI 贡献)。
  • 修复了继承的空闲全屏会话在终端失去焦点时重绘并清除文本选择的问题 (#7892,由 @terrorobe 贡献)。
  • 修复了全屏选择复制以使用主机剪贴板,并在不支持 OSC 52 时报告失败,而不是声称成功 (#8110,由 @Panoplos 贡献)。

更新内容 (原始)

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).

下载链接