新闻

Pi Coding Agent 及其子包的版本发布记录。

v0.84.2(2026-08-14)

Pi Coding Agent

新功能

  • 全屏转录搜索 – 在全屏模式中搜索并跳转到匹配项。详见 TUI 全屏视口
  • 可配置的默认工具 – 在全局或项目级选择启动时启用的内置工具。详见 工具
  • 可配置的全屏退出输出 – 退出时打印转录,或仅打印恢复提示。详见 交互模式

新增

  • 添加全屏转录搜索,支持 Ctrl+Shift+F、增量匹配高亮、可配置的搜索匹配主题颜色,以及使用 Enter/Ctrl+GShift+Enter/Ctrl+Shift+G 跳转到下一个或上一个匹配项。
  • PI_EXPERIMENTAL=1 下为默认的 readbasheditwrite 工具添加实验性严格 JSON Schema 约束采样。
  • 添加全屏退出输出设置,可选择打印最终转录或仅打印会话恢复提示。
  • 添加 defaultTools 设置,用于在全局或项目级配置初始内置工具。
  • 添加 --use-theme <name[/name]>,可为单次交互运行选择初始主题,且不修改已保存的设置(#7722@rwachtler 贡献)。
  • 为扩展的 pi.sendUserMessage() 选项添加 expandPromptTemplates,用于显式分派命令并展开 Skill 和 Prompt 模板。详见 pi.sendUserMessage()#7857@mrexodia 贡献)。
  • 添加 createGatewayBindingFetch(),无需 API Token 即可通过 Workers AI binding 路由 Cloudflare AI Gateway 请求(来自 @earendil-works/pi-ai)(#7901@Maximo-Guk 贡献)。
  • 添加 AssistantMessage.endTurn,保留 OpenAI Codex 最终的 end_turn 信号以供诊断(来自 @earendil-works/pi-ai)(#7766)。
  • 添加全屏模式中未绑定的单行转录滚动操作。详见 TUI 全屏视口(来自 pi-tui)(#7903@midastruth 贡献)。

变更

  • Kimi Coding 请求改用 Pi 运行时的 User-Agent 请求头(来自 @earendil-works/pi-ai)。
  • 将 Mistral SDK 传输替换为原生 Chat Completions HTTP 流,移除其生成式客户端和 Schema 运行时开销(来自 @earendil-works/pi-ai)。
  • 记录通用的 AI_AGENT=pi 进程标记,并说明它与 PI_CODING_AGENT=true 的区别(#7747)。
  • OpenAI Responses 的延迟工具加载现在优先使用支持的、以消息为锚点的 additional_tools,同时保留工具搜索和顶层回退(来自 @earendil-works/pi-ai)(#7709)。
  • 通过直接绘制全宽布局行而非每帧重新组合,减少全屏渲染的内存分配(来自 pi-tui)。

修复

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

新增

  • 添加 createGatewayBindingFetch(),无需 API Token 即可通过 Workers AI binding 路由 Cloudflare AI Gateway 请求(#7901@Maximo-Guk 贡献)。
  • 添加 AssistantMessage.endTurn,保留 OpenAI Codex 最终的 end_turn 信号以供诊断(#7766)。

变更

  • Kimi Coding 请求改用 Pi 运行时的 User-Agent 请求头。
  • 自动将受支持的严格工具 Schema 转换为 Provider 兼容的封闭对象,要求可空的可选字段为必填,同时保留原始工具定义;将可选但不可空的工具参数中的 null 视为省略。
  • OpenAI Responses 的延迟工具加载现在优先使用支持的、以消息为锚点的 additional_tools,同时保留工具搜索和顶层回退(#7709)。
  • 将 Mistral SDK 传输替换为原生 Chat Completions HTTP 流,移除其生成式客户端和 Schema 运行时开销。

修复

  • 修复 GitHub Copilot 登录在启用模型策略时因并发更新策略而触发 API 速率限制的问题(#6187)。
  • 修复上游请求缓冲区限制错误不会触发自动助手重试的问题。
  • 修复 OpenAI Responses 函数和自定义 tool call 在流式传输、代理转发和重放期间丢失命名空间的问题(#7709)。
  • 修复内置和自定义 DeepSeek API 模型未通过受支持的 max_tokens 字段发送输出限制的问题。
  • 修复 Google Generative AI 和 Vertex AI 响应包含 tool call 时,将输出限制或 Provider 错误导致的停止误判为正常工具使用的问题(#8059)。
  • 修复 Amazon Bedrock 重放拒绝包含空对象键的工具参数的问题,同时保留所有有效的嵌套值(#7882@muyiyr 贡献)。
  • 修复 DeepSeek 兼容性检测无法识别主机名含大写字母的 base URL(#7933@yearth 贡献)。
Pi Agent

修复

  • 修复 streamProxy() 丢失最终 tool call 元数据的问题,例如 OpenAI Responses 命名空间(#7709)。
Pi TUI

新增

  • 添加未绑定的单行转录滚动操作 tui.altScreen.lineUptui.altScreen.lineDown,用于全屏 TUI 快捷键(#7903@midastruth 贡献)。
  • 为全屏 TUI 添加主滚动视图增量搜索,支持可配置的匹配样式、Ctrl+Shift+F,以及使用 Enter/Ctrl+GShift+Enter/Ctrl+Shift+G 跳转到下一个或上一个匹配项。

变更

  • 直接绘制全宽布局行,避免每帧通过 ANSI/字素分段重新组合所有可见行,将备屏每帧内存分配减少约 9–18 倍。

修复

  • 修复终端报告通用 SGR 鼠标释放按钮代码时,全屏鼠标拖选和 OSC 8 链接激活的问题(#7963)。
  • 修复手动滚动时全屏转录搜索跳回当前匹配项,以及分段 SGR 鼠标输入泄漏到搜索查询的问题。
  • 修复必需的 LaTeX 参数从新行开始时被解析为空的问题(#7760)。
  • 修复 LaTeX 控制空格被换行拆分时,整个表达式回退为原始源码的问题。
  • 修复获得焦点的全屏浮层无法接收鼠标滚轮或 PageUp、PageDown 等视口滚动键的问题(#7894)。
  • 修复通过 SSH 传入的分段 Alt+Enter 被误判为 Escape 的问题;添加用于高延迟终端的 PI_TUI_ESC_TIMEOUT,且该超时仅适用于单独的 Escape 输入(#7899@powerfooI 贡献)。
  • 修复终端失去焦点时,空闲的全屏会话重绘并清除文本选择的问题(#7892@terrorobe 贡献)。
  • 修复 OSC 52 不受支持时,全屏选择复制错误提示成功的问题;现在可使用主机剪贴板集成,并报告已确认的失败(#8110@Panoplos 贡献)。

v0.84.1(2026-08-07)

Pi Coding Agent

新功能

  • Qwen Token Plan Individual — 为文档中标注 Individual 订阅的模型使用内置 Provider。详见 API Keys
  • 认证就绪检查 — 使用 pi auth check 验证 Provider 或模型凭据,可选地输出解析后的凭据。
  • 改进的全屏交互 — 多次点击选择单词和段落,配置半页转录滚动。详见 TUI 全屏视口
  • 终止被阻塞的 tool call — 扩展 tool_call 处理器可以在不再次调用模型的情况下停止全部终止批次。详见 Tool Events

新增

  • 将 Qwen Token Plan Individual 添加为内置 Provider,带其文档化的订阅模型目录和共享的国际 QWEN_TOKEN_PLAN_API_KEY。详见 API Keys#7659@arasovic 贡献)。
  • 添加 pi auth check Provider/模型认证预检,支持可选的凭据输出(#7152)。
  • 为被阻塞的扩展 tool_call 事件添加 terminate 支持,使全部终止批次可以跳过自动的 follow-up 模型调用。详见 Tool Events#7715@muyiyr 贡献)。
  • 添加全屏模式中的双击单词和空白选择、粒度感知的拖拽选择,以及三击段落选择(来自 pi-tui)(#7725#7733@volsa 贡献)。
  • 添加全屏模式中未绑定的半页转录滚动操作。详见 TUI 全屏视口#7735)。

变更

  • 软化了 bash 工具的 PI_* 环境变量指南,以减少不必要的检查命令(#7128)。
  • 通过并发探测配色方案和背景支持,将最坏情况下的自动终端主题检测延迟从 200 ms 减少到 100 ms。

修复

  • 通过使用 --no-compile-autoload-bunfig 编译,修复 cwd 包含带 preloadbunfig.toml 时 Bun 独立二进制在启动时崩溃的问题(#7685@geril07 贡献)。
  • 修复扩展 TUI 方法包装器在委托给原始方法时无限递归的问题(#7731)。
  • 修复 Windows 上全屏模式右键不粘贴剪贴板文本的问题。
  • 修复 Agent.reset() 在活动运行期间清除转录和运行时状态的问题;现在它会在 agent 空闲前拒绝(#7717@wesleyzhangwq 贡献)。
  • 修复 LaTeX 关系、乘法和命名运算符间距,以及带堆叠分数、运算符限制和相邻矩阵的矩阵组合(来自 pi-tui)。
  • 通过使用按钮移动跟踪而非全量移动跟踪,减少 tmux、Zellij 和 GNU Screen 下的全屏鼠标事件量(来自 pi-tui)。
Pi AI

新增

  • 将 Qwen Token Plan Individual 添加为内置 Provider,带其文档化的订阅模型目录和共享的国际 QWEN_TOKEN_PLAN_API_KEY#7659@arasovic 贡献)。
Pi Agent

新增

  • 添加 BeforeToolCallResult.terminate,使被阻塞的 tool call 可以参与现有的批次提前终止规则(#7715@muyiyr 贡献)。

修复

  • 修复 Agent.reset() 在活动运行期间清除转录和运行时状态的问题;现在它会在 agent 空闲前拒绝(#7717@wesleyzhangwq 贡献)。
Pi TUI

新增

  • 添加未绑定的半页转录滚动操作 tui.altScreen.halfPageUptui.altScreen.halfPageDown,用于全屏 TUI 快捷键(#7735)。
  • 添加全屏 TUI 中的双击单词和空白选择、粒度感知的拖拽选择,以及三击段落选择(#7725#7733@volsa 贡献)。
  • 为备屏 TUI 添加可选的右键粘贴处理器,目前仅在 Windows 上启用。

修复

  • 修复 LaTeX 关系、乘法和命名运算符间距,以及带堆叠分数、运算符限制和相邻矩阵的矩阵组合。
  • 通过使用按钮移动跟踪而非全量移动跟踪,减少 tmux、Zellij 和 GNU Screen 下的全屏鼠标事件量。

v0.84.0(2026-08-06)

Pi Coding Agent

新功能

  • 全屏 TUI 模式 — 在运行时于常规与全屏模式间切换,带粘性编辑器和 footer、可独立滚动的转录,以及可拖动的滚动条。详见 UI 与显示
  • Mermaid 与 LaTeX 渲染 — 在交互式转录中渲染 Mermaid 图表和终端友好的 Unicode 数学。详见 Markdown 设置TUI Markdown
  • 按目录的上下文覆盖 — 使用 AGENTS.override.md 为特定目录替换上下文文件。详见 上下文文件
  • 高级自定义模型采样 — 配置任意 OpenAI 兼容的 samplingParams 和可选的 vLLM thinking_token_budget 值。详见 采样参数
  • Baseten Provider — 使用内置的 Baseten 认证和模型支持。详见 API Keys

不兼容变更

  • 将继承的 pi-ai ModelsStreamTransforms 接口重命名为 ModelsRequestTransforms,因为其请求头转换现在适用于所有经过认证的 Provider 请求。

  • 变更 JSON 和 RPC 的 message_update 事件,仅发送 assistantMessageEvent 增量,移除导致输出二次增长的累计 messageassistantMessageEvent.partial 字段。需要部分消息的客户端必须在 message_startmessage_end 之间组装增量;后者仍是权威值(#7290)。

  • ModelRegistry.getApiKeyAndHeaders() 现在返回带 string | null 值的 ProviderHeaders,并保留 null 请求头删除标记。检查返回请求头的扩展必须处理 null;将其转发给 pi-ai 流的扩展应原样透传。这可以防止占位 OpenAI 凭据通过 Cloudflare AI Gateway 发送(#7030)。

  • 变更 ModelRegistry.refresh(),使其接受 ModelsRefreshOptions 并返回 ModelsRefreshResult,而非丢弃取消和 Provider 错误。

  • 变更 ModelRuntime.setRuntimeApiKey(),使其接受认证取消选项而非目录刷新选项。需要远程新鲜度时,请单独调用 refresh({ providers: [providerId], signal })

  • 要求配置形式的扩展 OAuth refreshToken(credentials, signal) 回调接受并遵循具体的中止信号。

  • 用只读的 context.stored 快照和带代数检查的 context.publish() 事务替换动态 Provider 刷新上下文对 store 的直接访问。

    使用 createProvider({ fetchModels }) 构建的 Provider:无需迁移目录发布。前后都要返回获取的模型并注册得到的 Provider;createProvider() 负责恢复、持久化和内存发布。

    // 之前
    const beforeProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });
    pi.registerProvider(beforeProvider);
    
    // 之后:保持不变
    const afterProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });
    pi.registerProvider(afterProvider);

    手写的原生 Provider.refreshModels():用带代数保护的发布替换直接访问 store 和发布前变更。

    // 之前
    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() });
    },
    
    // 之后
    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; },
      });
    },

    对于配置形式的 pi.registerProvider(name, { refreshModels }),只返回模型的回调保持不变;pi 会发布返回的列表。如果此类回调之前使用 context.store 做自定义持久化,请读取 context.stored 并调用 context.publish({ persist: entry })。在 publish() 中,省略 persist 保持存储不变,传入 ModelsStoreEntry 写入它,或传 persist: null 删除它。

  • 用基于 v4 lane 的 SessionSessionStorageSessionRepo API 替换继承的 pi-agent-core harness 会话模型,包括持久化操作记录、全局事实、共享序列号和树作用域的 lane 视图。

  • 将继承的 v2 session 和 AgentHarness API 从 pi-agent-core 的实验性入口提升为其默认导出,并移除实验性子路径。

  • 移除继承的旧版 JSONL 和内存仓库 API。请改用 pi-agent-core 的 v4 JsonlSessionRepoInMemorySessionRepo,两者都实现新的 SessionRepo 契约。

  • 新增继承的必需 pi-agent-core FileSystem.renameFile() 操作,用于原子 JSONL 发布;自定义 harness 文件系统实现必须提供同文件系统的替换语义(#7707@davidbrai 贡献)。

  • 用持久化的 SessionMetadata 替换实验性远程会话列表摘要;RemoteSession.sessions 不再暴露运行时阶段、模型、thinking、附件或锁状态,这些可从获取的 SessionSnapshot 值中获取(#7708)。

新增

  • 新增内置 Baseten Provider 支持,使用 BASETEN_API_KEY 认证,默认模型为 zai-org/GLM-5.2
  • 新增实验性远程会话客户端 API:传输中立的 PiClient、CBOR 协议、Unix-socket 传输,以及带转录 reducer 的 @earendil-works/pi-coding-agent/client RemoteSession 控制器。详见 Pi ClientRemote Protocol#7344#7348#7371#7409)。
  • 新增 CredentialSynchronizationError,用于凭据变更成功提交但同步本地模型状态失败的情况。
  • 新增可链式调用的 pi.registerMarkdownTransformer() 钩子,用于对用户和助手的 Markdown 进行仅显示转换。详见 pi.registerMarkdownTransformer()#7231@xl0 贡献)。
  • 新增实验性全屏 TUI 模式,可通过 --tui-mode fullscreen/settings 选择(#7304)。
  • 新增通过 /settings 在运行时切换常规和全屏 TUI 模式。
  • 在全屏模式中新增粘性编辑器、状态、widget 和 footer 停靠,同时保持转录可独立滚动。
  • 新增全屏模式中可拖动的转录滚动条,可通过 /settings 配置 autoalwayshidden 模式;always 会保留最右侧一列。
  • 新增全屏模式中的翻页滚动和标记消息导航快捷键。
  • 新增可选的 scrollbarThumb 主题颜色,用于全屏滚动条滑块,回退到 selectedBg
  • 新增支持 Mermaid 图表的可配置主题 Unicode 渲染,用于交互式消息,包括流式渲染时可选渲染。详见 Markdown 设置#7624@xl0 贡献)。
  • 新增可选的 Ctrl+P/Ctrl+N prompt 历史导航,编辑器聚焦时显式历史绑定优先于应用快捷键。
  • 新增按目录的 AGENTS.override.md 上下文文件,替换同目录中的 AGENTS.mdCLAUDE.md,同时保留其他目录的上下文。详见 上下文文件#7681@Marvae 贡献)。
  • 新增在 CLI 和 RPC 子进程环境中设置 AI_AGENT=pi,用于通用 agent 归属。详见 环境变量#7493@renaudhartert-db 贡献)。
  • 新增 Markdown 中 LaTeX 表达式的继承终端友好 Unicode 渲染。详见 TUI Markdown
  • 新增全屏模式中的堆叠式瞬时通知。
  • 新增通过 models.json、模型覆盖、扩展 Provider 和流选项中的 samplingParams 配置任意 OpenAI 兼容模型采样参数。详见 采样参数#7568@mrexodia 贡献)。
  • 新增继承的可选 vLLM thinking_token_budget 支持,用于 OpenAI 兼容模型,为最终答案预留输出 token(#7638@bnsd55 贡献)。
  • 新增对省略 finish_reason 的 OpenAI 兼容流支持,使用 compat.supportsFinishReason 在流结束时推断正常和工具使用停止。详见 OpenAI 兼容性
  • 新增继承的延迟 Provider 请求契约、持久化响应句柄、认证 fetch/cancel 分发,以及 pending、ready、failed 和 cancelled 响应的 faux-provider 支持(#7339@davidbrai 贡献)。
  • 新增继承的厂商中立 telemetry 契约,以及 agent 拥有的类型化 AI-request 和 harness 模式、组合 span 启动器和回调辅助函数。详见 agent telemetry 模式参考
  • 新增继承的结构化 Amazon Bedrock 失败诊断,包含 HTTP 状态、建模错误码,以及可用时的 AWS request id(#7286@brianstanley 贡献)。
  • 新增继承的 AgentOptions.shouldStopAfterTurn,用于在完成一轮、处理排队消息或另一次模型调用之前优雅停止。详见 Agent Options#7367@acmerfight 贡献)。
  • 新增继承的 v4 JsonlSessionRepo 对追加式 JSONL harness 会话的支持(#7611@davidbrai 贡献)。
  • 新增继承的有界分支条目和索引开放操作恢复查询到 v4 会话 API(#7448#7646)。
  • 新增继承的编译完整的 AgentHarness v2 脚手架;未完成的操作路径在实现持久化执行前以 HarnessNotImplemented 拒绝。

变更

  • 新增继承的可选取消到 pi-ai ModelsStore 的读取、写入和删除;目录编排将这些等待绑定到 Provider 刷新信号。
  • 将继承的默认全屏鼠标滚轮步长从三行减少到一行,实现更精细的滚动。

修复

  • 修复 footer 在没有已知订阅的通用 OAuth/OpenID 登录时显示 (sub);扩展 OAuth Provider 可以用 isSubscription 选择加入。
  • 修复继承的 OAuth token 刷新,使停滞的请求释放凭据存储锁(#7508)。
  • 修复继承的工具参数验证,在强制转换前保留已匹配 anyOf/oneOf union 分支的值,避免可空 union 将 null 转换为另一个原始值(#7328)。
  • 修复继承的 Fireworks GLM 5.2 请求在启用长缓存保留时发送不支持的 prompt_cache_retention 字段,并为自动 prompt 缓存启用会话亲和(#7676)。
  • 修复继承的 JsonlSessionRepo 在全局范围内强制会话 ID 的问题;ID 现在在每个工作目录内唯一。
  • 修复继承的 JSONL 会话 fork 和 torn-tail 修复的原子发布,避免中断写入后产生部分写入或损坏的会话(#7707@davidbrai 贡献)。
  • 修复包含路径的 find glob 在 Windows 上返回空结果的问题(#6817)。
  • 修复手动 /compact 期间排队的消息失败而非在压缩完成后发送的问题。
  • 修复传给内置文件工具的 Git Bash、MSYS、Cygwin 和 WSL 驱动器路径解析到当前 Windows 驱动器而非其原生驱动器的问题(#7064#7547)。
  • 修复项目级嵌套 Provider 重试设置替换未修改的全局 Provider 重试设置的问题(#7572)。
  • 修复继承的 GitHub Copilot Grok 4.5 请求使用受支持的 Responses API(#7560)。
  • 修复全屏关闭将终端能力查询回复泄漏到父 shell prompt 的问题。
  • 修复多个 Provider 共享的裸精确 --model ID 选择第一个目录条目而非唯一认证 Provider 或明确歧义错误的问题(#7327)。
  • 修复独立 x64 二进制需要 Haswell 时代 AVX2/BMI2 指令的问题,改为针对 Bun 基线运行时编译发布可执行文件(#7390@davidbrai 贡献)。
  • 修复全屏模式中 Ctrl+X 复制确认添加转录状态行,而非显示瞬时的 Copied! 标记。
  • 修复全屏模式中 Kitty 图片预览在滚动时与粘性编辑器和 footer 停靠重叠的问题。
  • 修复图片密集的全屏会话在布局变更重传可见 Kitty 图片载荷并每帧渲染两次转录时延迟的问题。
  • 修复 /settings 搜索中的空格在输入多词查询(如 TUI modeQuiet startup)时切换高亮设置的问题。
  • 修复自定义编辑器不继承默认编辑器自动补全下拉项限制的问题(#7333)。
  • 修复包清单中的畸形资源数组导致会话启动崩溃的问题(#7187)。
  • 修复 DOOM overlay 示例从失效 URL 下载其 shareware WAD 的问题。
  • 修复 setToolsExpanded(false) 在工具输出已折叠时为 no-op,避免扩展产生冗余的 Tool output: collapsed 启动通知(#7292)。
  • 修复自定义压缩、handoff 和 Q&A 示例中的扩展驱动模型调用,改为通过 coding-agent 模型运行时分发,以保留自定义 Provider 和已解析的认证选项(#7325)。
  • 修复长时间运行的会话在另一个进程更新 auth.json 时使用过期凭据的问题,通过序列化并发凭据读取并延迟启动(#7319)。
  • 修复并发的 models-store.json 读取形成文件锁 convoy 并延迟启动的问题。
  • 将打包的 brace-expansion 依赖更新到 5.0.8,以解决 GHSA-mh99-v99m-4gvg(#7316)。
  • 修复强制模型可用性刷新仍被停滞的早期刷新阻塞的问题(#7301#7421@a-yeyang 贡献)。
  • 修复 /model 目录刷新失败无法识别每个失败的目录的问题。
  • 修复模型目录刷新停滞时保存凭据后 Provider 登录仍卡住的问题,通过将本地凭据一致性从有界后台新鲜度分离(#7027#7113#7418)。
  • 修复 /scoped-models 在渲染前等待远程目录,而非显示缓存模型并在关闭时取消刷新(#7153)。
  • 修复 /model <name> 在检查缓存模型匹配前等待目录刷新(#7443)。
  • 修复较新可用性通过后仍发布过期可用性快照和错误的问题。
  • 修复较新 Provider 刷新后仍发布过期的 pi.dev、Radius、llama.cpp 和扩展目录刷新的问题。
  • 修复等待文件支持的凭据或模型目录锁时的取消,防止已取消的变更稍后运行或提交。
  • 修复并发内存凭据变更丢失无关 Provider 更新的问题,通过序列化其读-改-写段。
  • undici 更新到 8.9.0,打包的 brace-expansion 更新到 5.0.9,以解决 GHSA-8xcm-r25x-g524、GHSA-4cwx-7wf7-3272、GHSA-m8rv-5g2x-5cg5、GHSA-jr45-8vmc-qm54、GHSA-v3r7-h72x-cjcm 和 GHSA-rgw5-rvv9-x895。
  • 修复 GitHub Copilot 压缩和分支摘要使用 Individual 端点,而非凭据解析的 Business 或 Enterprise 端点(#6768)。
  • 修复扩展模型调用在转发请求认证时丢弃凭据解析端点的问题,包括自定义压缩与 GitHub Copilot Business 和 Enterprise 账户(#7579)。
  • 修复全屏转录导航无编辑器可访问的 HomeEndPageUpPageDown 变体的问题,通过添加 Ctrl 修改的编辑器绑定(#7574)。
  • 修复扩展事件总线监听器在会话重载和销毁后仍存活的问题(#7656@tudoroancea 贡献)。
  • 修复 Wayland 上没有 X11 剪贴板时 /copy 无法读取剪贴板文本的问题(#7387)。
  • 修复慢连接在初始连接尝试期间失败的问题,通过增加连接超时(#7435@muyiyr 贡献)。
  • 修复扩展和内置工具返回的超大图片绕过自动图片缩放的问题。详见 图片设置#7330@tizmagik 贡献)。
  • 修复会话发现遗漏通过符号链接目录存储的会话的问题(#7552@muyiyr 贡献)。
  • 修复手动压缩与阈值自动压缩竞争的问题(#7370@davidbrai 贡献)。
  • 修复响应被截断低于其预期输出限制时结束运行而非压缩并重试一次的问题(#7540@davidbrai 贡献)。
  • 修复 Git 包更新在 git clean 无法移除忽略的依赖目录时留下缺失依赖的问题(#7570@mrexodia 贡献)。
  • 修复 POSIX 和 Windows 文件系统根部的 find 结果丢失第一路径段或产生重复尾部分隔符的问题(#7569@petrroll 贡献)。
  • 修复瞬时版本检查、目录、托管工具和包管理 HTTP 失败未被重试的问题(#7632@petrroll 贡献)。
  • 修复交互式错误忽略配置的输出内边距的问题。
  • 修复继承的 OpenCode Go Provider 显示名。
  • 修复继承的 Provider 错误规范化将数组和类实例视为结构化响应体,而非保留其原始错误的问题(#7205@erikogenvik 贡献)。
  • 修复继承的 Anthropic 流丢弃初始 content-block 事件中包含的文本或 thinking 的问题(#7358@davidbrai 贡献)。
  • 修复继承的 Google 历史转换丢弃重放所需的签名空文本和 thinking 块的问题(#7362@jingtao-wisdomgraph 贡献)。
  • 修复继承的 OpenAI Codex 缓存 WebSocket 会话在不同账户凭据间共享的问题(#7364)。
  • 修复继承的瞬时 Google Generative AI 和 Vertex AI Provider 错误绕过自动重试的问题(#7471@vish-pr 贡献)。
  • 修复继承的 Gemini 3 tool call id 在历史转换期间被丢弃,破坏签名多轮重放的问题(#7494@muyiyr 贡献)。
  • 恢复继承的 GitHub Copilot 模型通过账户特定策略响应返回(#7672@muyiyr 贡献)。
  • qwen3.8-max 替换继承的退役 Qwen Token Plan qwen3.8-max-preview 模型(#7670@QuintinShaw 贡献)。
  • 修复继承的终端宽度对 Indic 辅音连接字素簇的计数(#6987@petrroll 贡献)。
  • 修复继承的嵌套全屏堆叠布局忽略子元素最小尺寸的问题。
  • 修复继承的批量终端配色方案报告被解析为一个畸形响应的问题(#7550)。
  • 修复继承的终端进度清除未发出完整 OSC 9;4 序列的问题(#7581)。
  • 修复继承的 iTerm2 图片载荷省略 xterm.js 图片 addon 所需的大小元数据的问题(#7612)。
  • 修复继承的宽度截断使 OSC 8 超链接未终止的问题(#7657@xXJSONDeruloXx 贡献)。
  • 更新继承的 GPT-5.6 Terra 和 Luna 定价,覆盖 OpenAI 和 passthrough 模型目录。
  • 修复继承的 Fireworks Kimi K3 模型使用 OpenAI 兼容 API、原生 reasoning-effort 级别和延迟工具(#7199#7230@XBeg9 贡献)。
  • 更新继承的 Groq Qwen reasoning 覆盖,用于替换的 qwen/qwen3.6-27b 模型。
  • 修复继承的 Windows Shift+Enter 检测,通过从原生 Win32 辅助函数读取修饰键状态。
  • 修复继承的 pi-tui npm 包省略重建其 Windows 和 Darwin 原生 addon 所需的源码和构建脚本的问题。
  • 修复继承的 Windows 控制台 truecolor 检测,当 Windows Terminal 未向子 shell 提供 WT_SESSION 时的问题。
  • 修复继承的幻影全屏文本选择,在更改终端窗格焦点时未匹配的鼠标事件导致的问题。
  • 修复继承的 Windows 键盘输入渲染延迟,通过让输入抢占限速渲染定时器。
  • 修复继承的 agent harness 在 Windows 上处理路径的问题,涉及文件 basename、递归 skill 加载和 prompt 模板名称。
Pi AI

不兼容变更

  • 将导出的 ModelsStreamTransforms 接口重命名为 ModelsRequestTransforms,因为其请求头转换现在适用于所有经过认证的 Provider 请求。

  • 要求动态模型 Provider 接受具体的 RefreshModelsContext.signal;调用方省略其可选 signal 时,Models.refresh() 保持无界。

  • 要求 Provider 登录、API-key 检查/解析和 OAuth 刷新实现接受具体的中止信号;调用方省略其可选 signal 时,公开的 auth 和凭据操作保持无界。

  • 用只读的 context.stored 快照和带代数检查的 context.publish() 事务替换对原始 RefreshModelsContext.store 的访问。

    createProvider({ fetchModels }) 无需迁移目录发布。前后都要返回获取的列表;createProvider() 自己恢复存储的模型并发布、持久化刷新后的模型。现在保证 signal 存在。

    // 之前
    const beforeProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });
    
    // 之后:保持不变
    const afterProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });

    手写 Provider.refreshModels() 用带代数保护的发布替换直接访问 store 和发布前变更。

    // 之前
    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() });
    },
    
    // 之后
    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; },
      });
    },

    publish() 中,省略 persist 保持存储不变,传入 ModelsStoreEntry 写入它,或传 persist: null 删除它。省略 update 做仅元数据的持久化;省略 persist 做临时内存发布。

新增

  • 新增可选的 OAuthAuth.isSubscription 元数据,用于区分基于订阅的认证和通用 OAuth 登录。
  • 使用厂商中立的 @earendil-works/pi-telemetry 契约,在流、延迟和图片请求选项中新增显式的 TelemetryContext 传播。
  • 新增延迟 Provider 请求契约、持久化响应句柄、认证 fetch/cancel 分发,以及 pending、ready、failed 和 cancelled 响应的 faux-provider 支持(#7339@davidbrai 贡献)。
  • 新增 Baseten 作为内置 OpenAI 兼容 Provider,带 models.dev 目录生成和原生 chat_template_args reasoning 控制。
  • 新增通过 Model.samplingParamsStreamOptions.samplingParams 配置任意 OpenAI 兼容采样参数,包括 per-request 覆盖(#7568@mrexodia 贡献)。
  • 新增 OpenAI 兼容模型的可选 vLLM thinking_token_budget 支持,为最终答案预留输出 token(#7638@bnsd55 贡献)。
  • 新增 OpenAICompletionsCompat.supportsFinishReason,用于省略流式 finish_reason 值的 Provider,在流结束时推断正常和工具使用停止。
  • 新增结构化的 Amazon Bedrock 失败诊断,包含 HTTP 状态、建模错误码,以及可用时的 AWS request id(#7286@brianstanley 贡献)。

变更

  • 新增 ModelsStore 读取、写入和删除的可选取消;目录编排将这些等待绑定到 Provider 刷新信号。

修复

  • 修复 GitHub Copilot Grok 4.5 请求使用受支持的 Responses API(#7560)。
  • 限制 OAuth token 刷新,使停滞的请求释放凭据存储锁(#7508)。
  • 修复工具参数验证,在尝试强制转换前保留已匹配 anyOf/oneOf union 分支的值,避免可空 union 将 null 转换为另一个原始值(#7328)。
  • 修复模型目录刷新的取消,即使自定义 Provider 忽略其 abort signal,调用方也停止等待(#7027)。
  • 修复 auth 解析、可用性检查、OAuth 刷新、Provider 登录和内存凭据队列等待遵循调用方取消的问题。
  • 修复较新 Provider 刷新被较旧停滞代数阻塞或覆盖的问题,包括持久化目录发布。
  • 更新 GPT-5.6 Terra 和 Luna 定价,覆盖 OpenAI 和 passthrough 模型目录。
  • 修复 Fireworks Kimi K3 模型使用 OpenAI 兼容 API、原生 reasoning-effort 级别和延迟工具(#7199#7230@XBeg9 贡献)。
  • 修复 Fireworks GLM 5.2 模型在启用长缓存保留时发送不支持的 prompt_cache_retention 字段,并为自动 prompt 缓存启用会话亲和(#7676)。
  • 更新 Groq 的 Qwen reasoning 覆盖,用于替换的 qwen/qwen3.6-27b 模型。
  • 修复 OpenCode Go Provider 显示名。
  • 修复 Provider 错误规范化将数组和类实例视为结构化响应体,而非保留其原始错误的问题(#7205@erikogenvik 贡献)。
  • 修复 Anthropic 流丢弃初始 content-block 事件中包含的文本或 thinking 的问题(#7358@davidbrai 贡献)。
  • 修复 Google 历史转换丢弃重放所需的签名空文本和 thinking 块的问题(#7362@jingtao-wisdomgraph 贡献)。
  • 修复 OpenAI Codex 缓存 WebSocket 会话在不同账户凭据间共享的问题(#7364)。
  • 修复瞬时 Google Generative AI 和 Vertex AI Provider 错误绕过自动重试的问题(#7471@vish-pr 贡献)。
  • 修复 Gemini 3 tool call id 在历史转换期间被丢弃,破坏签名多轮重放的问题(#7494@muyiyr 贡献)。
  • 修复 OpenAI Responses 不完整原因,仅将 max_output_tokens 视为长度停止,并暴露被截断低于预期输出限制的响应的有界恢复检测(#7540@davidbrai 贡献)。
  • 恢复 GitHub Copilot 模型通过账户特定策略响应返回(#7672@muyiyr 贡献)。
  • qwen3.8-max 替换退役的 Qwen Token Plan qwen3.8-max-preview 模型(#7670@QuintinShaw 贡献)。
Pi Agent

不兼容变更

  • 用基于 v4 lane 的 SessionSessionStorageSessionRepo API 替换旧版 harness 会话模型,包括持久化操作记录、全局事实、共享序列号和树作用域的 lane 视图。
  • 将 v2 session 和 AgentHarness API 从实验性入口提升为默认包导出,并移除实验性子路径。
  • 移除旧版 JSONL 和内存仓库 API。请使用 v4 JsonlSessionRepoInMemorySessionRepo,两者都实现新的 SessionRepo 契约。
  • 为 harness 执行环境新增必需的 FileSystem.renameFile() 操作,用于原子 JSONL 发布;自定义文件系统实现必须提供同文件系统的替换语义(#7707@davidbrai 贡献)。

新增

  • 新增类型化 AI-request 和 harness telemetry 模式、组合模式元组、回调辅助函数和生成的模式参考。
  • 新增有界 Session.findEntriesOnBranch()findEntryOnBranch() 查询,带显式遍历、过滤、排序和限制选项。
  • 新增编译完整的 AgentHarness v2 脚手架;未完成的操作路径在实现持久化执行前以 HarnessNotImplemented 拒绝。
  • 新增 JsonlSessionRepo,一个带元数据验证和共享存储语义的 v4 追加式 JSONL 会话仓库(#7611@davidbrai 贡献)。
  • 新增索引的 Session.findOpenOperations() 恢复查询和 RecordQuery.operationKind 过滤(#7646)。
  • 新增 AgentOptions.shouldStopAfterTurn,用于在完成一轮、处理排队消息或另一次模型调用之前优雅停止。详见 Agent Options#7367@acmerfight 贡献)。
  • 新增任意 OpenAI 兼容 samplingParams 的代理转发(#7568@mrexodia 贡献)。

修复

  • 修复 NodeExecutionEnv 文件 basename、递归 skill 加载和 prompt 模板名称的 Windows 路径处理。
  • 修复 JsonlSessionRepo 在全局范围内强制会话 ID 的问题;ID 现在在每个工作目录内唯一。
  • 修复 JSONL 会话 fork 和 torn-tail 修复的原子发布,避免中断写入后产生部分写入或损坏的会话(#7707@davidbrai 贡献)。
Pi TUI

新增

  • 新增 Markdown 中 LaTeX 表达式的终端友好 Unicode 渲染,包括行内和显示数学、分数、脚本、常见符号、对齐方程、cases 和矩阵。
  • 新增共享的 TuiMode 类型和主屏、备屏 TUI 渲染器上的 mode 判别符。
  • 新增 TUI 生命周期和渲染状态交接 API,用于替换渲染器而不重放主屏内容。
  • 导出捆绑的 Marked 解析器和 token 类型。
  • 新增 Markdown 组件的宽度感知源转换。
  • 新增接口兼容的主屏和备屏 TUI 渲染器,带应用拥有的滚动(#7304)。
  • 新增备屏 VStackHStack 和嵌套 ScrollView 布局,带受限尺寸、粘性区域和指针目标滚动。
  • 新增备屏拖拽选择跨屏外滚动视图内容的边缘自动滚动。
  • 新增带鼠标拖动的比例滚动条、Home/End 文档导航、瞬时 auto 模式和保留最右侧一列的 always 模式;滚动条模式可在运行时更改。
  • 新增备屏视口的翻页滚动和 OSC 133 语义 prompt 导航。
  • 新增与垂直光标移动无关的可配置上一/下一 prompt 历史操作。
  • 新增备屏渲染器的堆叠式瞬时通知(#7361)。

变更

  • 将默认备屏鼠标滚轮步长从三行减少到一行,实现更精细的滚动。

修复

  • 通过扩展原生 Win32 辅助函数报告修饰键状态,修复 Windows Shift+Enter 检测。
  • 修复 npm 包省略重建 Windows 原生 addon 所需的源码和构建脚本的问题。
  • 修复 npm 包省略重建 Darwin 原生 addon 所需的源码和构建脚本的问题。
  • 修复 Windows Terminal 未向子 shell 提供 WT_SESSION 时 Windows 控制台 truecolor 检测的问题。
  • 修复终端宽度对 Indic 辅音连接字素簇的计数(#6987@petrroll 贡献)。
  • 修复未匹配鼠标事件在更改终端窗格焦点时产生幻影备屏文本选择的问题。
  • 修复可搜索设置查询中的空格更改所选值,而非过滤多词标签的问题。
  • 修复备屏 Kitty 图片在滚动时跨垂直布局裁剪边界并与粘性区域重叠的问题。
  • 修复备屏重绘在放置移动或近期离屏图片返回时重传 Kitty 图片数据、复用放置时丢弃相邻行内容、每帧渲染两次固定基准滚动内容,以及在绘制时扫描裁剪的转录行的问题。
  • 修复全屏转录导航无编辑器可访问的 HomeEndPageUpPageDown 变体的问题,通过添加 Ctrl 修改的编辑器绑定(#7574)。
  • 修复 Windows 键盘输入渲染延迟,通过让输入抢占限速渲染定时器。
  • 修复嵌套堆叠布局忽略子元素最小尺寸的问题。
  • 修复批量终端配色方案报告被解析为一个畸形响应的问题(#7550)。
  • 修复终端进度清除未发出完整 OSC 9;4 序列的问题(#7581)。
  • 修复 iTerm2 图片载荷省略 xterm.js 图片 addon 所需的大小元数据的问题(#7612)。
  • 修复宽度截断使 OSC 8 超链接未终止的问题(#7657@xXJSONDeruloXx 贡献)。

v0.83.0(2026-07-29)

Pi Coding Agent

新功能

  • 外部客户端凭据导出pi auth print-api-keypi auth print-bearer-token 可导出已配置的凭据,支持自动 OAuth 刷新和最低有效性强制检查。
  • Headless OpenRouter 登录 — 通过粘贴重定向 URL 或授权码,在 SSH 环境下完成 /login。详见 OpenRouter
  • GitHub Copilot 上的 Claude Opus 5 — 通过 GitHub Copilot 使用 Claude Opus 5,支持 adaptive thinking 和 1M 上下文窗口。详见 GitHub Copilot

不兼容变更

  • 升级捆绑的 TypeBox 别名至 1.3.7,移除 Type.BaseType.AwaitedType.PromiseType.AsyncIteratorType.IteratorType.OptionsValue.Mutate 等已弃用 API,同时修复了可空数组工具参数的编译验证。详见 包依赖#7243@petrroll 贡献)。

新增

  • 添加 pi auth print-api-keypi auth print-bearer-token 命令,用于向外部客户端导出已配置凭据,包括自动 OAuth 刷新和可配置的最低 token 有效期(#7168)。
  • 向扩展暴露会话的已解析模型作用域 ctx.scopedModels。详见 扩展上下文#7191@pungggi 贡献,#7215)。
  • 为受支持的 text 和 image Provider 传输添加 per-request fetch 注入。
  • 添加 "pending" 停止原因,用于部分流式消息。详见 自定义 Provider 流模式#7151@lucasmeijer 贡献)。
  • 添加原始 Provider 停止原因,覆盖 Google、Anthropic、Amazon Bedrock、Mistral 和 OpenAI 流;未映射的终止原因现在表现为 Provider 错误而非成功停止(#7272)。
  • 为远程和 headless 环境的 OpenRouter 登录添加手动重定向 URL 和授权码输入。详见 OpenRouter#7114@rgarcia 贡献)。
  • 为 GitHub Copilot 添加 Claude Opus 5 支持,包括 adaptive thinking 和 1M 上下文窗口。详见 GitHub Copilot#7158@jay-aye-see-kay 贡献)。

变更

  • OAuth 凭据解析改为在剩余有效期不足五分钟时刷新 token,而非等到过期(#7168)。

修复

  • 切换工具输出展开时添加状态行提示(#7180)。
  • 修复文件形式的 SYSTEM.mdAPPEND_SYSTEM.md prompt 在 interactive 启动上下文列表中缺失的问题。详见 系统 Prompt 文件#7096)。
  • 修复链接的 Git worktree 嵌套在主仓库下时上下文文件加载两次的问题。详见 上下文文件#7221@arajkumar 贡献)。
  • 修复 llama.cpp 流式响应报告零 token 用量、导致会话上下文统计为空的问题。详见 llama.cpp#7258@SteveImmanuel 贡献)。
  • 修复响应进行中时替换会话和提交树导航会中止并持久化待发送轮次,而非留下悬空 tool call。详见 会话#7022@tmustier 贡献)。
  • 修复 Git 包安装失败留下不完整目录导致干净重试被阻止的问题。详见 安装和管理#7210@haoqixu 贡献)。
  • 修复 /model 选择器在过滤时保留过期选择而非高亮首个匹配项的问题(#7211@christianbasch 贡献)。
  • 修复直接 RPC bash 命令绕过扩展 user_bash 处理器的问题。详见 用户 Bash 事件#7214)。
  • 修复扩展重载资源后 skills、prompts 和 themes 丢失包源元数据的问题。详见 资源事件#6968)。
  • 修复并发运行的用户 bash 命令取消问题,确保每个活跃命令都被中止(#7103@yzhg1983 贡献)。
  • 修复扩展在 interactive 启动期间切换会话导致重复消息的问题(#7110@yzhg1983 贡献)。
  • 修复 Qwen Token Plan reasoning 模型,发送其服务特定的 thinking 控制和受支持的 reasoning-effort 级别(#6951#6998)。
  • 修复 Z.AI 输出限制通过不支持的参数发送的问题。详见 Providers#7174@HyeokjaeLee 贡献)。
  • 修复显式配置的 Amazon Bedrock profiles 被 ambient AWS 访问密钥覆盖的问题。详见 Amazon Bedrock#7176@christianbasch 贡献)。
  • 修复图片回退路径在窄终端中溢出、缩短 home 目录路径、并使绝对路径在终端支持超链接时可点击(#7262)。
  • 修复 OpenAI 兼容 tool call 在格式错误的 delta 同时包含空 custom 对象时丢失函数参数的问题(#7288@sunnyyoung 贡献)。
Pi AI

不兼容变更

  • 升级导出的 TypeBox 依赖至 1.3.7,移除 Type.BaseType.AwaitedType.PromiseType.AsyncIteratorType.IteratorType.OptionsValue.Mutate 等已弃用 API,同时修复了可空数组工具参数的编译验证。使用已移除 API 的消费者需迁移至受支持的 TypeBox API(#7243@petrroll 贡献)。

新增

  • 为受支持的 text 和 image Provider 传输添加 per-request fetch 注入;Google 适配器拒绝非全局实现而非静默绕过。
  • 为 GitHub Copilot Provider 添加 Claude Opus 5 支持,通过 Anthropic Messages API 路由,支持 adaptive thinking、1M 上下文和 Copilot minimal thinking-level 覆盖(#7158@jay-aye-see-kay 贡献)。
  • 为部分流式消息添加 "pending" 停止原因。详见 停止原因#7151@lucasmeijer 贡献)。
  • 添加 AssistantMessage.rawStopReason,并填入 Google、Anthropic、Amazon Bedrock、Mistral 和 OpenAI 流;未映射的终止原因现在表现为 Provider 错误而非成功停止(#7272)。
  • 为远程和 headless 环境的 OpenRouter OAuth 登录添加手动重定向 URL 和授权码输入(#7114@rgarcia 贡献)。
  • 添加 AuthResolutionOverrides.minOAuthValidityMs,允许调用方要求 OAuth 凭据具有最低剩余有效期并据此刷新(#7168)。

变更

  • 存储的 OAuth 凭据改为在剩余有效期不足五分钟时刷新,而非等到过期(#7168)。

修复

  • 修复 Qwen Token Plan reasoning 模型,发送其服务特定的 thinking 控制和受支持的 reasoning-effort 级别(#6951#6998)。
  • 修复 Z.AI Provider 和兼容自定义端点,通过 max_tokens 发送输出限制(#7174@HyeokjaeLee 贡献)。
  • 修复显式配置的 Amazon Bedrock profiles 被 ambient AWS 访问密钥覆盖的问题(#7176@christianbasch 贡献)。
  • 修复格式错误的 OpenAI 兼容 tool-call 增量同时包含有效 function 载荷和空 custom 对象时丢弃函数参数的问题(#7288@sunnyyoung 贡献)。
Pi TUI

修复

  • 修复长图片回退路径在窄终端中溢出、缩短 home 目录路径、并使绝对路径在终端支持超链接时可点击(#7262)。

v0.82.1(2026-07-25)

Pi Coding Agent

新功能

  • Claude Opus 5 – 在 Anthropic 和 Amazon Bedrock 上可用,支持 adaptive thinking(包括 xhigh)、推理配置文件和 prompt 缓存。详见 API Keys
  • Anthropic 网关 Bearer 认证ANTHROPIC_AUTH_TOKEN 可对要求 Authorization: Bearer 的 Anthropic 兼容网关进行认证,包括压缩和分支摘要。详见 Environment Variables or Auth File
  • 更快、更具弹性的模型目录 – pi.dev 目录通过 If-None-Match 重新验证,未变更的 Provider 返回空 304 响应,llama.cpp 模型在重启后仍保留列出。详见 llama.cpp

新增

  • 向自定义消息渲染器公开 outputPad 设置。详见 Extensions#7045@xl0 贡献)。
  • 为 Anthropic 兼容网关添加 ANTHROPIC_AUTH_TOKEN Bearer 认证。详见 Providers#5871)。
  • 为 Anthropic 和 Amazon Bedrock 添加 Claude Opus 5 支持,包括 adaptive thinking、推理配置文件、prompt 缓存并保留 AWS 验证消息(#7081@unexge 贡献,#7083@davidbrai 贡献)。

变更

  • pi.dev 模型目录刷新改为通过 If-None-Match 重新验证,未变更 Provider 目录返回空 304 而非完整下载。
  • Radius OAuth 设备授权、token 交换和刷新请求改为直接使用配置的网关。
  • 模型加载错误改为追加底层原因,因此类似 OAuth refresh failed for openai-codex 的认证失败会报告 Provider 响应,而不是空包装消息。

修复

  • 修复认证完全解析为请求头的 Provider 的压缩和分支摘要(#5871)。
  • 修复 /models 中不可用作用域模型被隐藏的问题,使其可在不手动编辑设置的情况下移除(#6949#7032@christianklotz 贡献)。
  • 修复启动上下文文件发现,跳过与上下文文件同名的目录(如 AGENTS.md),避免 EISDIR 警告(#7106@mrexodia 贡献)。
  • 修复 llama.cpp 扩展以持久化其模型目录,使 llama.cpp 模型在首次成功刷新前仍保持列出。详见 llama.cpp#7072@davidbrai 贡献)。
Pi AI

新增

  • 添加 ModelsStoreEntry.etag,使持久化的 Provider 目录可携带用于条件刷新的远程 ETag 校验器。
  • 为 Anthropic 兼容网关添加 ANTHROPIC_AUTH_TOKEN Bearer 认证(#5871)。
  • 为 Anthropic 和 Amazon Bedrock 添加 Claude Opus 5 支持,包括 adaptive thinking、推理配置文件、prompt 缓存并保留 AWS 验证消息(#7081@unexge 贡献,#7083@davidbrai 贡献)。

变更

  • Radius OAuth 设备授权、token 交换和刷新请求改为直接使用配置的网关。
  • ModelsError 消息改为追加底层原因,因此类似 OAuth refresh failed for openai-codex 的认证失败会报告 Provider 响应,而不是空包装消息。

v0.82.0(2026-07-24)

Pi Coding Agent

新功能

  • 约束工具采样 — 工具可以偏好或要求严格的 JSON Schema 采样,或使用 OpenAI Lark/regex 语法,模型能力元数据会阻止不支持的请求。详见 工具的约束采样
  • OpenRouter 和 Kimi Code 登录 — 使用 /login 授权 OpenRouter 或 Kimi Code 订阅,无需手动配置 API key。详见 OpenRouter
  • 会话感知的流式 bash 集成 — Bash 工具接收当前会话/模型元数据,而直接 RPC bash 命令流式输出关联的输出。详见 Bash 工具会话环境RPC bash 事件

新增

  • 添加了 Tool.constrainedSampling,支持严格 JSON Schema(prefer/require)和 OpenAI Lark/regex 语法变体,覆盖 OpenAI、Anthropic、Amazon Bedrock、Google Gemini 和 Mistral。详见 工具的约束采样
  • 添加了 supportsGrammarToolssupportsStrictTools 兼容性标志,扩展了 supportsStrictMode 覆盖范围,并生成模型能力元数据以控制约束采样。
  • 添加了 Kimi Code 订阅 OAuth 登录,支持 Kimi For Coding Provider,包括设备授权和自动 token 刷新(#6935@zaycruz 贡献)。
  • 添加了 OpenRouter OAuth PKCE 登录,通过 /login 创建用户控制的 API key。详见 OpenRouter#6927@rsaryev 贡献)。
  • 向内置和工厂创建的 bash 工具运行的命令暴露 PI_SESSION_IDPI_SESSION_FILEPI_PROVIDERPI_MODELPI_REASONING_LEVEL。详见 Bash 工具会话环境
  • 为直接 RPC bash 命令添加流式 bash_execution_update 事件,与请求 ID 关联。详见 RPC bash 事件#6971@ananthakumaran 贡献)。

变更

  • 变更生成模型目录,仅暴露 models.dev 上经过 Provider 验证的 reasoning effort 级别(#6928@davidbrai 贡献)。

修复

  • 修复 DNS 查找失败(如 getaddrinfoENOTFOUNDEAI_AGAIN),触发自动 assistant 重试(#6946@christianklotz 贡献)。
  • 修复 OpenRouter Anthropic 缓存断点,使其在 tool result 之后推进,并为 ~anthropic/*-latest 别名启用缓存控制(#6941@mteam88 贡献)。
  • 修复 OpenAI Codex WebSocket 会话,在 previous_response_not_found 错误后重试一次,不带缺失的 previous-response 续接(#6955@davidbrai 贡献)。
  • 修复 TUI 调试和崩溃日志,使其遵循自定义 agent 目录,而非始终写入 ~/.pi/agent#6958@davidbrai 贡献)。
  • 修复系统临时目录条目过多时 Ctrl+G 外部编辑器启动缓慢的问题(#6903@christianklotz 贡献)。
  • 修复启动资源显示,保留包加载的同级 npm 扩展的相对路径(#6964@davidbrai 贡献)。
  • 修复压缩和分支摘要请求,使用新的路由会话 ID,并在支持的情况下禁用 prompt 缓存(#6618@tmustier 贡献)。
  • 修复设置 PI_SKIP_VERSION_CHECK 时的显式自更新(#6977)。
  • 修复包含方括号的作用域模型 ID,先作为字面精确匹配再作为 glob 匹配(#6210)。
  • 修复 OpenAI 和 Anthropic Provider 重试等待,使其遵循 abort 信号和配置的延迟限制(#6980@petrroll 贡献)。
  • 修复全新安装时因包文件 mtime 较新而优先使用捆绑模型目录而非较新的远程目录的问题(#7016@davidbrai 贡献)。
  • 修复编辑器滚动指示器在窄终端中溢出的问题(#7015@christianklotz 贡献)。
  • 修复 llama.cpp 模型,使用加载的上下文窗口作为输出 token 限制,而非限制在 16K(#7034@christianklotz 贡献)。
  • 修复发布源码归档,包含构建独立二进制所需的生成 Provider 模型数据。
  • 更新打包的 protobufjs 依赖至 7.6.5,解决 GHSA-j3f2-48v5-ccww(#7005)。
  • 修复 Wayland 上 /copywl-copy 失败时回退到 X11 或 OSC 52(#7009@rkfshakti 贡献)。
  • 修复 /model 在打开模型选择器时重新加载更新后的 models.json 配置(#6999)。
  • 修复压缩和分支摘要,使认证完全解析为请求头的 Provider 正常工作(#5871)。
Pi AI

不兼容变更

  • getBuiltinModelDataUrl(provider) 替换为 getBuiltinModelDataGeneratedAt(),使内置目录的新鲜度使用其记录的生成时间而非依赖安装的文件元数据(#7016@davidbrai 贡献)。

新增

  • 添加了 Kimi Code 订阅 OAuth 登录,支持 kimi-coding Provider,包括设备授权、token 刷新和 OAuth 主机覆盖(#6935@zaycruz 贡献)。
  • 添加了 OpenRouter OAuth PKCE 登录,为用户创建 API key,适用于 chat 和 image Provider(#6927@rsaryev 贡献)。
  • 添加了 Tool.constrainedSampling,支持严格 JSON Schema(prefer/require)和 OpenAI Lark/regex 语法变体,在 OpenAI、Anthropic、Amazon Bedrock、Google Gemini 和 Mistral 上强制执行 Provider 端约束工具采样。详见 工具的约束采样
  • 添加了 supportsGrammarToolssupportsStrictTools 兼容性标志,扩展了 supportsStrictMode 至 Responses 和 Bedrock 模型,并生成模型能力元数据以控制约束采样。

变更

  • 变更生成的模型目录,仅暴露 models.dev 上经过 Provider 验证的 reasoning effort 级别(#6928@davidbrai 贡献)。

修复

  • 修复 OpenAI Codex 缓存的 WebSocket 续接,在 grammar tool call 之后仅发送真实的 tool-result delta。
  • 修复 Google、Amazon Bedrock、Mistral 和 Azure OpenAI Responses 适配器的约束工具采样,包括模型感知的 strict-tool 能力、语法配置验证和畸形 grammar-call 重放错误。
  • 修复 cacheRetention: "none",对支持的 OpenAI 模型禁用隐式 prompt 缓存写入,对 OpenAI Codex 禁用基于会话的缓存(#6618@tmustier 贡献)。
  • 修复 DNS 查找失败(如 getaddrinfoENOTFOUNDEAI_AGAIN),触发自动 assistant 重试(#6946@christianklotz 贡献)。
  • 修复 OpenAI Codex WebSocket 会话,在 previous_response_not_found 错误后重试一次,不带缺失的 previous-response 续接(#6955@davidbrai 贡献)。
  • 修复 OpenAI 和 Anthropic Provider 重试等待,使其遵循 abort 信号和配置的延迟限制(#6980@petrroll 贡献)。
  • 修复 OpenRouter Anthropic 缓存断点,使其在 tool result 之后推进,并为 ~anthropic/*-latest 别名启用缓存控制(#6941@mteam88 贡献)。
Pi Agent

不兼容变更

  • AgentHarnessExecutionEnv 依赖和上下文无关的 AgentTool 输入替换为应用定义的 toolContext 值和上下文感知的 AgentHarnessTool 定义。

新增

  • 添加了上下文感知的 readwriteeditbash harness 工具,由 ExecutionEnv 支持,包括异步 bash 执行准备。

变更

  • 对齐了 harness 工具路径处理、编辑序列化、shell 输出捕获、显式非继承环境和跨平台进程清理,与 coding-agent 行为一致。

修复

  • 修复压缩和分支摘要请求,使用新的路由会话 ID,并在支持的情况下禁用 prompt 缓存(#6618@tmustier 贡献)。
Pi TUI

修复

  • 修复调试和崩溃日志,使用配置的 TUI 日志目录(包括 PI_CODING_AGENT_DIR),而非始终写入 ~/.pi/agent#6958@davidbrai 贡献)。
  • 修复窄终端中编辑器底部滚动指示器超出终端宽度导致崩溃的问题(#7015@christianklotz 贡献)。

v0.81.1(2026-07-21)

Pi Coding Agent

新功能

  • 可验证的发布源码归档 — GitHub Releases 现在包含确定性、带校验和的源码归档,并附有独立二进制构建说明。详见 从发布源码构建独立二进制
  • 弹性压缩与分支摘要 — 临时 Provider 故障现在遵循配置的重试策略,重试生命周期事件可供 interactive、JSON、RPC 和 SDK 消费者使用。详见 压缩与分支摘要RPC 重试事件

新增

  • 在 GitHub Releases 中添加确定性、带校验和的源码归档,并附有独立二进制重建文档(#6913@christianklotz 贡献)。

修复

  • 修复压缩和分支摘要,使用配置的重试策略重试临时 Provider 故障,重试生命周期事件暴露给 interactive、JSON、RPC 和 SDK 消费者(#6901@davidbrai 贡献)。
  • 修复 interactive 启动时等待后台模型目录刷新导致 footer Provider 计数计算阻塞的问题。
  • 恢复使用 0.81 之前 agent-core API 的扩展的默认流回退(#6915)。
  • 修复 Kimi K3 模型(来自 Moonshot AI 和 Moonshot AI China),使用 OpenAI thinking 格式并暴露 reasoning effort 支持。
Pi AI

新增

  • 新增 retryAssistantCall(),支持对临时 assistant 故障进行有界重试,提供生命周期回调和 abort 处理(#6901@davidbrai 贡献)。

修复

  • 修复 Kimi K3 模型(来自 Moonshot AI 和 Moonshot AI China),使用 OpenAI thinking 格式并暴露 reasoning effort 支持。
Pi Agent

新增

  • AgentHarness 中为压缩和分支摘要操作添加重试策略支持和生命周期事件(#6901@davidbrai 贡献)。

修复

  • 恢复 AgentstreamFn 选项和主机可配置的省略 agent-loop stream 函数的回退,同时避免重新引入 pi-ai/compat 依赖(#6915)。

v0.81.0(2026-07-21)

Pi Coding Agent

新功能

  • 本地 llama.cpp 模型管理 — 连接 llama.cpp 路由器,搜索和下载 Hugging Face 模型,并显式加载或卸载模型,提供实时进度。详见 llama.cpp
  • 完整 Provider 扩展 — 扩展可以注册完整的 pi-ai Provider,包括认证、模型刷新、过滤和自定义流式处理。详见 注册新 Provider
  • Qwen Token Plan Provider — 使用内置的国际和中国订阅 Provider,支持区域端点和 API-key 认证。详见 API Keys
  • 扩展用量统计 — 工具、压缩和分支摘要的用量被持久化并计入会话总计。详见 压缩与分支摘要

新增

  • 将 Qwen Token Plan 和 Qwen Token Plan China 添加到内置 Provider 设置、默认模型解析和 Provider 文档中(#6858@QuintinShaw 贡献)。
  • 新增 get_available_thinking_levels RPC 命令和 RpcClient.getAvailableThinkingLevels() 方法(#6865@cristinaponcela 贡献)。
  • 从包根导出消息和工具执行生命周期事件类型(#6772@davidbrai 贡献)。
  • 新增内置 llama.cpp 路由器支持,包括 /login 连接设置和 /llama Hugging Face 模型搜索与下载、显式加载、卸载和实时进度。详见 llama.cpp
  • 新增扩展注册完整 pi-ai Provider 的能力,包括原生认证、模型刷新、过滤和流式行为。
  • 新增工具、压缩和分支摘要的用量统计,在持久化会话、footer 总计和会话统计中体现(#6671@davidbrai 贡献)。

修复

  • 更新打包的 brace-expansion 依赖至 5.0.7(#6896@davidbrai 贡献)。
  • 修复持久化的远程模型目录在升级后覆盖较新捆绑目录的问题。
  • 修复已存储 API-key 凭据,使其应用 Provider 作用域的 env 值,包括 Amazon Bedrock profiles(#6864@cristinaponcela 贡献)。
  • 修复 OpenAI 兼容跨 Provider 重放,当多个 tool call 共享一个 Provider call ID 时保持 tool call ID 唯一(#6854@cristinaponcela 贡献)。
  • 修复 Kimi K3 thinking 级别,暴露 low、high 和 max,并将 k2p7 别名规范化为 kimi-for-coding
  • 修复 OpenCode Go 模型通过 OpenAI Responses API 路由的问题。
  • 修复 pi-ai 包元数据,避免消费者 lockfile 重复变更(#6812@jmfederico 贡献)。
  • 修复终端关闭时先清除编辑器反转软件光标再恢复硬件光标的问题(#6790@dam9000 贡献)。
  • 修复 ANSI 感知文本换行,识别 CRLF 和 CR 行尾同时保留样式(#6764@xz-dev 贡献)。
  • 修复编辑器粘贴注册表在删除和撤销粘贴标记后损坏,防止提交的 prompt 中出现字面或错配的粘贴标记(#6844)。
  • 修复无会话 OpenAI Codex WebSocket 请求使用 UUIDv7 请求 ID(#6834@xl0 贡献)。
  • 修复 GPT-5.6 Codex 模型默认使用 272K 上下文窗口,避免自动长上下文定价(#6853@aadishv 贡献)。
  • 修复压缩期间排队的消息保留 steering 和 follow-up 投递行为(#6730@dannote 贡献)。
  • 修复 read 工具错误被语法高亮为文件内容的问题(#6731@dannote 贡献)。
  • 修复 llama.cpp 路由器下载进度更新,并移除模型操作确认中的冗余措辞。
  • 将自动模型目录网络刷新从启动初始化移至运行中的 interactive 和 RPC 模式。
  • 修复持久化会话被读取和解析两次的问题,减少大型会话的启动延迟(#6793)。
  • 修复 prompt 模板中所有参数的默认值(${@:-default}${ARGUMENTS:-default})(#6695)。
Pi AI

新增

  • 新增 Qwen Token Plan 和 Qwen Token Plan China 作为内置 Provider,支持区域端点、API-key 认证和生成的模型目录(#6858@QuintinShaw 贡献)。
  • 新增 contentText,用于从消息内容中提取拼接文本(#6840@xl0 贡献)。
  • 新增共享的 uuidv7 工具,用于时间排序标识符(#6834@xl0 贡献)。
  • 新增可选的用量元数据到工具结果消息中(#6671@davidbrai 贡献)。

变更

  • 变更生成的模型目录,将 TypeScript 模型形状与忽略的 JSON 模型值分离,减少生成源码的变动(#6765@mitsuhiko 贡献)。
  • 变更模型生成,在编译前验证忽略的 Provider 数据;npm run build 照常刷新模型数据,npm run build:offline 复用已有数据无需网络访问。

修复

  • 修复已存储 API-key 凭据在认证解析期间应用 Provider 作用域的 env 值,包括 Amazon Bedrock profiles(#6864@cristinaponcela 贡献)。
  • 修复 OpenAI 兼容跨 Provider 重放,当多个 tool call 共享一个 Provider call ID 时保持 tool call ID 唯一(#6854@cristinaponcela 贡献)。
  • 修复 Kimi K3 暴露其支持的 low、high 和 max thinking 级别,并将 k2p7 别名规范化为 kimi-for-coding 模型。
  • 修复 OpenCode Go Provider 支持通过 OpenAI Responses API 路由的模型。
  • 修复 pi-ai 可执行路径与 npm registry 元数据匹配,避免消费者 lockfile 重复变更(#6812@jmfederico 贡献)。
  • 修复无会话 OpenAI Codex WebSocket 请求使用 UUIDv7 请求 ID,使拒绝 UUIDv4 ID 的模型可用(#6834@xl0 贡献)。
  • 修复 GitHub Copilot 长上下文定价层级在生成的模型元数据中的问题(#6668)。
  • 修复 Kimi Coding 订阅模型在 models.dev 报告零定价时报告 API 等效隐含成本。
  • 修复 OpenAI Responses 提前结束流被归类为可重试的 Provider 错误(#6727)。
  • 修复 GPT-5.6 Codex 模型默认使用 272K 上下文窗口,避免自动长上下文定价(#6853@aadishv 贡献)。
Pi Agent

不兼容变更

  • 变更 SessionStorage,使用 getPathToRootOrCompaction(),要求会话名称和统计方法,支持基于游标的条目读取,并将保留的压缩尾部存储为自包含检查点(#6594@cristinaponcela 贡献)。
  • uuidv7 导出移至 @earendil-works/pi-ai#6834@xl0 贡献)。
  • 将可选的 Agent streamFn 回退替换为必需的 streamFunction,并使低级循环 stream 函数为必需,防止 @earendil-works/pi-ai/compat 和所有内置 Provider 进入选择性 Provider 包(#6851)。

新增

  • 在 agent harness 中为工具结果、压缩条目和分支摘要添加用量元数据(#6671@davidbrai 贡献)。
Pi TUI

修复

  • 修复终端关闭时先清除编辑器的反转软件光标再恢复硬件光标,避免重复光标残留(#6790@dam9000 贡献)。
  • 修复 ANSI 感知文本换行,识别 CRLF 和 CR 行尾同时跨行保留样式(#6764@xz-dev 贡献)。
  • 修复编辑器粘贴注册表在删除粘贴标记时损坏:撤销现在将粘贴注册表与文本一起恢复,标记重新编号按升序 ID 移动注册表条目,因此提交的 prompt 不再包含字面 [paste #N ...] 标记或错误粘贴内容(#6844)。

v0.80.10(2026-07-16)

Pi Coding Agent

新功能

  • Kimi Coding thinking 兼容 — Kimi Coding 模型现在正确使用自适应 thinking;K3 暴露其支持的 max 级别,并支持回放空签名 thinking blocks。详见 Kimi For Coding 设置模型选项

修复

  • 修复 Kimi Coding 请求,使用 Anthropic 自适应 thinking effort 而不带 token 预算,并为 K3 和 kimi-for-coding 启用空 thinking 签名。
  • 修复 Kimi K3 定价元数据,适用于 Moonshot AI 和 Moonshot AI China。
  • 修复 Kimi Coding K3 thinking 级别元数据,仅暴露支持的 max 级别(#6737)。
  • 修复目录生成,恢复在 0.80.9 中移除的 xAI 模型(#6736)。
Pi AI

修复

  • 修复 Kimi Coding 请求,使用 Anthropic 自适应 thinking effort 而不带 token 预算,并为 K3 和 kimi-for-coding 启用空 thinking 签名。
  • 修复 Kimi K3 定价元数据,适用于 Moonshot AI 和 Moonshot AI China。
  • 修复 Kimi Coding K3 thinking 级别元数据,仅暴露支持的 max 级别(#6737)。
  • 修复目录生成,恢复在 0.80.9 中移除的 xAI 模型(#6736)。

v0.80.9(2026-07-16)

Pi Coding Agent

新功能

新增

变更

  • 将 xAI 登录改为使用预填充的设备授权链接,标签为 "使用 SuperGrok 或 X Premium 登录 ",并将默认 xAI 模型改为 Grok 4.5(#6734,感谢 @Jaaneek)。

修复

  • 修复 Kimi K3 输出限制,适用于 Vercel AI Gateway 和 OpenRouter 模型。
  • 修复在首次助手响应之前克隆或 fork 会话时,提示会话必须先保存。

移除

  • 从内置 xAI 模型目录中移除 Grok 3、Grok 3 Fast、Grok 4.20 变体和 Grok Code Fast 1(#6734,感谢 @Jaaneek)。
Pi AI

新增

  • 为 Kimi Coding、Moonshot AI、Moonshot AI China、OpenRouter 和 Vercel AI Gateway 添加 Kimi K3 支持。
  • 通过 compat.deferredToolsMode 为 OpenAI 兼容 Chat Completions 添加 Kimi 延迟工具加载。

变更

  • 将 xAI 设备 OAuth 改为打开预填充的授权链接,并添加 Provider 特定的 OAuth 登录标签(#6734,感谢 @Jaaneek)。

修复

  • 修复 Kimi K3 输出限制,适用于 Vercel AI Gateway 和 OpenRouter 模型。

移除

  • 从内置 xAI 模型目录中移除 Grok 3、Grok 3 Fast、Grok 4.20 变体和 Grok Code Fast 1(#6734,感谢 @Jaaneek)。

v0.80.8(2026-07-16)

Pi Coding Agent

不兼容变更

  • 将 SDK 的 CreateAgentSessionOptions.authStoragemodelRegistry 选项替换为异步 modelRuntime 选项。AuthStorage 及其存储后端不再导出;请使用 ModelRuntime(或自定义 pi-ai CredentialStore),或 readStoredCredential() 进行一次性读取。
  • 移除了冗余的 ModelRuntime.getAll()find()getSnapshot()getAuthOptions() 投影。请直接使用 pi-ai ModelsgetModels()getModel()getProviders()checkAuth() 方法。
  • 将 SDK 通过 ModelRegistry.getApiKeyAndHeaders() 组装的请求认证替换为 ModelRuntime.getAuth()。传入 Provider ID 返回 Provider 作用域认证;传入模型还会解析内置、models.json 和扩展模型请求头。
  • 面向扩展的 ModelRegistry.refresh() 从同步 void 改为 Promise<void>,因为 models.json 加载是异步的。扩展必须在同步读取注册表之前 await 它。
  • 将规范的动态目录刷新迁移到异步 ModelRuntime.refresh() / pi-ai Models.refresh()。旧版扩展 OAuth modifyModels 在凭据初始化后仍作为同步兼容投影保留。

新功能

  • 统一的模型运行时与 Provider 认证ModelRuntime 集中管理模型配置、Provider 自有的 /login 和动态 Provider 目录。详见 Providers
  • 实时模型目录刷新/model 在后台刷新已配置的 Provider,pi update --models 可强制立即刷新。详见安装和管理
  • xAI 设备码 OAuth 与 Grok 4.5 Responses 支持 — 使用设备码登录 xAI,并以低、中、高 thinking 级别使用 Grok 4.5。详见 xAI

新增

  • 新增 ModelRuntime 作为规范的异步 SDK 和内部模型/认证门面,同时保留面向扩展的同步 ModelRegistry API。ModelRuntime.create() 可通过 credentials 选项接受任何 pi-ai CredentialStore
  • 新增 Provider 自有的 /login 发现,直接从注册的 pi-ai Provider 获取,包括 ambient 认证状态和信息链接。
  • 新增基于文件的动态目录 models-store.json、按 Provider 的 pi.dev 目录覆盖,以及 Radius 网关支持(包括从旧版凭据缓存目录离线迁移)。
  • 新增扩展 Provider refreshModels(context) 支持动态模型发现,并可选地由 Provider 控制持久化。
  • 新增 pi update --models,用于在不更新 Pi 或扩展的情况下强制立即刷新模型目录。
  • 新增 xAI 设备码 OAuth 登录,以及 Grok 4.5 OpenAI Responses 支持,提供低、中、高 thinking 级别(#6651,感谢 @Jaaneek)。

变更

  • ModelRuntime 改为通过临时 pi-ai Provider 方法组合内置 Provider、不可变的 models.json 配置和扩展覆盖。
  • ModelRuntime 改为拥有最终请求组装:getAuth(model) 包含已配置模型请求头;流方法只解析一次认证;before_provider_headers 作为仅 Models 的请求头转换在 Provider 分发前运行。
  • /model 改为立即渲染当前模型快照、在后台刷新已配置 Provider,并用部分结果或超时错误更新打开的选择器。

修复

  • 修复已配置 Provider 目录刷新,使其能解析 pi.dev 以模型 ID 为键的响应、将检查频率限制为每 4 小时一次、发送带版本的 Pi user agent、将未实现路由视为不可用覆盖,并在 /model 中显示简洁刷新状态。
  • 修复相邻的助手 thinking blocks,使其渲染为一个 thinking 区域。
  • 修复 OpenAI Codex 会话 ID 超过 64 字符的问题,以符合 API 限制(#6630)。
  • 修复终端输出,统一规范化 tab 字符(#6697,感谢 @xz-dev)。
  • 修复检查 npm 包后的 Windows 终端标题(#6629)。
  • 修复 Bun 独立二进制文件打包 OAuth 适配器以支持交互式登录。
Pi AI

不兼容变更

  • 将运行时认证改为 Provider 作用域的 Models.checkAuth()getAuth()login()logout() API。checkAuth() 现在返回 AuthCheck | undefined,API key 认证解析器不再接收模型。
  • 移除了旧版内置 OAuth Provider 对象、全局 OAuth 注册表 API 和公开的低层内置 login/refresh 函数。请改用规范的 Provider.auth.oauth 方法;oauth 子路径现在仅保留扩展兼容类型。
  • 将规范登录交互接口从 AuthLoginCallbacks 重命名为 AuthInteraction;它暴露了 API key 和 OAuth 流程共用的 Provider 中立 prompt() / notify() 协议。
  • 更改 Models 请求契约:getAuth(model) 现在包含模型请求头,getAuth(providerId) 仍为 Provider 作用域,Models 流选项可包含 transformHeaders。自定义 Models 实现必须在合并 auth/模型和显式请求头后执行该转换,然后在 Provider 分发前移除它。
  • 将动态模型刷新改为 Models.refresh(options),刷新每个已配置的动态 Provider 并返回按 Provider 的错误/取消状态。Provider.refreshModels(context) 现在接收有效凭据、作用域模型存储、网络策略和 abort 信号。

新增

  • Models 新增 Provider 自有的认证与可用性解析,包括存储的 OAuth 刷新和通过 CredentialStore 的交互式登录支持。
  • 新增 CredentialStore.list() 异步枚举非机密凭据,以及支持凭据感知的 Provider.filterModels() 可用性策略。
  • 新增中立的认证流程信息/链接事件,以及 Provider 自有的 Amazon Bedrock 和 Google Vertex AI 凭据选择流程。
  • 新增 ModelsStore,使用内存默认实现来恢复和持久化动态 Provider 目录。
  • 新增动态 Radius pi-messages 网关 Provider,支持 OAuth 和凭据特定的目录刷新。
  • 新增 Models.refresh({ force: true }),让 Provider 绕过新鲜度检查执行显式刷新。
  • 新增 xAI 设备码 OAuth 登录,并将 Grok 4.5 路由到 OpenAI Responses,支持低、中、高 thinking(#6651,感谢 @Jaaneek)。

变更

  • Models.getAuth(model) 改为包含模型请求头,并新增仅作用于 Models 的 transformHeaders 流选项,在 auth 和显式请求头组装之后、Provider 分发之前运行。

修复

  • 修复 Cloudflare Workers AI 和 AI Gateway 流,使其在认证解析后对账户和网关端点占位符实例化,包括使用自定义模型对象的兼容流。
  • 修复懒加载 Provider 流,使其在转发内部流时保留最终助手消息。
  • 修复 OpenAI Codex 会话 ID 超过 64 字符的问题,以符合 API 限制(#6630)。
Pi TUI

修复

  • 修复终端输出,统一规范化 tab 字符(#6697,感谢 @xz-dev)。

v0.80.7(2026-07-14)

Pi Coding Agent

不兼容变更

  • 移除了 openai-responsescompat.sendSessionIdHeader 标志。会话亲和行为现在由 compat.sessionAffinityFormat"openai""openai-nosession""openrouter")控制。将 sendSessionIdHeader: false 替换为 sessionAffinityFormat: "openai-nosession"#6496,感谢 @petrroll)。

新功能

  • 缓存友好的动态工具加载 — 扩展可以在执行期间添加工具,同时受支持的 Anthropic 和 OpenAI Responses 模型保留 prompt 缓存前缀。详见动态工具加载
  • 消息复制快捷键Ctrl+X 复制转录中最后一条助手消息或 /tree 中选中的消息,使旧消息和分支消息可直接复制。详见显示和消息队列
  • Fable 5 xhighmax thinking — 在生成的 Provider 目录中提供原生的 xhighmax thinking 级别。详见模型选项

新增

  • 为扩展工具添加了缓存友好的动态工具加载,由 tool result 触发。受支持的 Anthropic 和 OpenAI Responses 模型在工具定义可用时加载定义,保留缓存的 prompt 前缀。详见动态工具加载#6474)。
  • 在所有生成的 Provider 目录中为 Claude Fable 5 添加了原生 xhighmax thinking 级别(#6490,感谢 @davidbrai)。
  • 添加了 Ctrl+X 复制最后一条助手消息或 /tree 中选中的消息。
  • 为 OpenAI 和 Codex Responses 添加了 toolChoice 支持,包括 required 和 named 工具选择(#6588,感谢 @xl0)。

修复

  • 修复了 OpenRouter 模型上下文窗口,使用 top provider 的实际上下文长度(#6481,感谢 @davidbrai)。
  • 修复了 OpenRouter OpenAI 兼容会话 ID,使用 x-session-id 请求头代替 OpenAI 特定的会话亲和字段(#6496,感谢 @petrroll)。
  • 修复了 Ctrl+V 在剪贴板不含图片时粘贴文本的行为。
  • 修复了 /login amazon-bedrock 提示并保存 Bedrock API key,而非仅显示 ambient AWS 凭据设置说明。
  • 修复了 Amazon Bedrock ambient AWS 凭据,继续使用 SigV4 认证,包括自定义模型 ID(#6532,感谢 @ribelo)。
  • 修复了 Cloudflare Workers AI 和 AI Gateway 认证,在存储的凭据仅包含 API key 时使用 ambient 账户和网关 ID(#6292,感谢 @markphelps)。
  • 修复了旧终端解码中 Alt+,Alt+. 等 Alt+符号组合键(#6523,感谢 @ribelo)。
  • 修复了 GitHub Copilot mai-code-1-flash-picker 模型路由,使其通过 /responses 端点(#6544,感谢 @petrroll)。
  • 修复了分支摘要,使其在使用 ambient 认证而非 API key 的 Provider 上正常工作(#6595,感谢 @davidbrai)。
Pi AI

不兼容变更

  • 移除了 OpenAIResponsesCompat.sendSessionIdHeader 标志。会话亲和行为现在由 compat.sessionAffinityFormat"openai""openai-nosession""openrouter")控制。将 sendSessionIdHeader: false 替换为 sessionAffinityFormat: "openai-nosession"#6496,感谢 @petrroll)。

新增

  • 添加了缓存友好的动态工具加载。ToolResultMessage.addedToolNames 标记 Context.tools 中工具可用的位置;Anthropic 和 OpenAI Responses 使用原生延迟加载,使后加载的工具不进入缓存前缀,其他 Provider 继续正常使用 Context.tools#6474)。
  • 在所有生成的 Provider 目录中为 Claude Fable 5 添加了原生 xhighmax thinking 级别(#6490,感谢 @davidbrai)。
  • 为 OpenAI 和 Codex Responses 添加了 toolChoice 支持,包括 required 和 named 工具选择(#6588,感谢 @xl0)。

修复

  • 修复了 OpenRouter 模型上下文窗口,使用 top provider 的实际上下文长度(#6481,感谢 @davidbrai)。
  • 修复了 GitHub Copilot mai-code-1-flash-picker 模型路由,使其通过 /responses 端点(#6544,感谢 @petrroll)。
  • 修复了 Amazon Bedrock 请求,使用通用 apiKey 流选项作为 Bedrock bearer token。
  • 修复了 OpenRouter OpenAI 兼容会话 ID,使用 x-session-id 请求头代替 OpenAI 特定的会话亲和字段(#6496,感谢 @petrroll)。
  • 修复了 Amazon Bedrock ambient AWS 凭据,继续使用 SigV4 认证,包括自定义模型 ID(#6532,感谢 @ribelo)。
  • 修复了 Cloudflare Workers AI 和 AI Gateway 认证,在存储的凭据仅包含 API key 时使用 ambient 账户和网关 ID(#6292,感谢 @markphelps)。
  • 修复了 Amazon Bedrock 错误,报告未处理的 provider stop reason,而非仅显示 An unknown error occurred#6598,感谢 @davidbrai)。
  • 修复了 Azure OpenAI Responses reasoning replay,当 encrypted_content 仅出现在终端 response event 中时(#6608,感谢 @davidbrai)。
  • 修复了省略 message_delta 事件中 usage 的 Anthropic 兼容代理(#6611,感谢 @davidbrai)。
  • 修复了 OpenCode OpenAI Responses 模型,省略不支持的 session-id 请求头,同时保留其他缓存亲和数据(#6645,感谢 @davidbrai)。
Pi Agent

新增

  • 添加了 AgentToolResult.addedToolNamesToolResultMessage 的传播,使 result 引入的工具可从该转录点起加载(#6474)。
Pi TUI

修复

  • 修复了旧终端解码中 Alt+,Alt+. 等 Alt+符号组合键(#6523,感谢 @ribelo)。

v0.80.6(2026-07-09)

Pi Coding Agent

新功能

  • max thinking 级别 — 全新的可选 thinking 级别,位于 xhigh 之上,在 GPT-5.6 和 adaptive Claude 模型上原生支持,可通过 CLI(--thinking max)、SDK、RPC 和模型选择使用。自定义主题可定义 thinkingMax。详见 CLI 参考
  • 基于输入量的定价阶梯 — 请求级输入 token 定价阶梯,用于精确的长上下文成本核算(如 GPT-5.4/5.5/5.6 长上下文费率),也可在 models.jsonmodelOverrides 中为自定义模型配置。详见 模型配置

新增

  • 在 CLI、SDK、RPC、模型选择和主题中添加了可选的 max thinking 级别。自定义主题可定义 thinkingMax;已有主题回退到 thinkingXhigh
  • models.jsonmodelOverrides 和扩展注册的 Provider 中为自定义模型成本添加了请求级输入 token 定价阶梯。
  • shellPath 设置添加了 ~(home 目录)展开(#6470,感谢 @aaronkyriesenbach)。

修复

  • 修复了 compact 后输出 token 预算,使其忽略 compact 边界之前的过期助手使用量(#6464)。
  • 修复了 GPT-5.4 和 GPT-5.5 长上下文成本核算,同时保留了需要显式覆盖的模型的 272K 默认上下文限制。
  • 修复了 GPT-5.6 元数据,使直接 OpenAI 请求保持在 272K 短上下文阶梯,同时暴露 Codex 后端的 372K 上下文窗口及长上下文定价,并移除了不存在的裸 gpt-5.6 别名。
  • 修复了 Anthropic 消息转换,保留 thinking text 为空但有有效签名的 thinking blocks,而非丢弃它们,避免新版 Claude 模型出现 thinking-block 错误(#6457,感谢 @davidbrai)。
Pi AI

新增

  • 添加了独立的可选 max thinking 级别,包括 GPT-5.6 和 Anthropic adaptive-thinking effort 的原生 xhighmax 支持,匹配 Anthropic 文档:所有 adaptive Claude 模型支持 max,Opus 4.7/4.8、Sonnet 5 和 Fable 5 支持原生 xhigh
  • 在模型成本元数据和使用量成本计算中添加了请求级输入 token 定价阶梯。

修复

  • 修复了 compact 后输出 token 预算,使其忽略 compact 边界之前的过期助手使用量(#6464)。
  • 修复了 GPT-5.4 和 GPT-5.5 长上下文成本核算,同时保留需要显式覆盖的模型的 272K 默认上下文限制。
  • 修复了 GPT-5.6 元数据,使直接 OpenAI 请求保持在 272K 短上下文阶梯,同时暴露 Codex 后端的 372K 上下文窗口及长上下文定价,并从 OpenAI 和 Azure OpenAI Responses 目录中移除了不存在的裸 gpt-5.6 别名。
  • 修复了 Anthropic 消息转换,保留 thinking text 为空但有有效签名的 thinking blocks,而非丢弃它们,避免新版 Claude 模型出现 thinking-block 错误(#6457,感谢 @davidbrai)。
Pi Agent

新增

  • xhigh 之后添加了 max 模型 thinking 级别。

v0.80.5(2026-07-09)

此版本无面向用户的功能变更,所有包均为内部改进。

v0.80.4(2026-07-09)

Pi Coding Agent

新功能

新增

  • 添加了 OpenAI GPT-5.6 模型元数据,支持 gpt-5.6gpt-5.6-solgpt-5.6-terragpt-5.6-luna,并验证了 openai-codexgpt-5.6-solgpt-5.6-terragpt-5.6-luna 的支持。
  • 在 GitHub Copilot 模型目录中添加了 Claude Sonnet 5(#6200)。
  • 为 OpenAI Codex Responses SSE 传输添加了 zstd 请求体压缩。
  • 添加了 /login <provider> 支持,含 Provider 自动补全。
  • 添加了 CLI 等效模型和作用域模型解析的公共 SDK 导出(#6201)。
  • 添加了扩展和 RPC agent_settled 事件,以及完全 settled 的 agent 运行的会话级空闲等待(#6363)。
  • 添加了 before_provider_headers 扩展钩子,用于注入 Provider 请求头(#6350,感谢 @pmateusz)。
  • 添加了 InlineExtension 类型,用于命名的内联扩展工厂(#6267,感谢 @any-victor)。
  • 添加了扩展条目渲染器,用于持久化的仅显示会话条目,在交互模式下渲染而不发送到模型上下文。
  • 添加了 pi config 的项目级资源覆盖管理,包括通过 pi config -l 启动项目模式,以及全局和项目作用域之间的 Tab 切换(#6309)。
  • 从 agent harness 中添加了 InMemorySessionStorageJsonlSessionStorage 导出(#6435)。
  • 在 JSONL 会话头中添加了自定义元数据支持(#6417,感谢 @ArcadiaLin)。
  • 添加了 showCacheMissNotices 设置和 /settings 开关,用于显著的 Prompt 缓存未命中转录通知。

修复

  • 修复了 gRPC ResourceExhausted Provider 错误(如 NVIDIA NIM 瞬时耗尽响应)的重试分类(#6449,感谢 @davidbrai)。
  • 修复了 Cloudflare 524 超时响应的重试分类(#6239)。
  • 修复了 GitHub Copilot 设备码登录轮询,在首次 token 轮询前等待,并遵循服务器提供的 slow_down 间隔,避免浏览器授权后的错误失败或挂起(#6187)。
  • 修复了 OpenAI Codex WebSocket 会话,在后端 60 分钟限制之前轮换缓存连接,避免长会话出现连接限制失败(#6268)。
  • 修复了 DS4 服务器对 Prompt has ... tokens, but the configured context size is ... tokens 错误的上下文溢出检测(#6262)。
  • 修复了 Fireworks GLM 5.2 Fast,使其使用 OpenAI 兼容端点和 thinkingLevelMap,与 GLM 5.2 对齐(#6195)。
  • 修复了 fork 菜单对同一选项重复选择的忽略问题(#6430,感谢 @davidbrai)。
Pi AI

新增

  • 添加了 OpenAI GPT-5.6 模型元数据,支持 gpt-5.6gpt-5.6-solgpt-5.6-terragpt-5.6-luna,并验证了 openai-codexgpt-5.6-solgpt-5.6-terragpt-5.6-luna 的支持。
  • 从 models.dev 刷新了生成的模型目录,新增了 Kimi K2.7 Code(GitHub Copilot)和多个 Provider 的 Fable 5 等模型(#6256)。
  • 在 GitHub Copilot 模型目录中添加了 Claude Sonnet 5(#6200)。
  • 为 OpenAI Codex Responses SSE 传输添加了 zstd 请求体压缩。请求在 Node/Bun 支持 zstd 时发送 Content-Encoding: zstd;WebSocket 传输不变。

修复

  • 修复了 gRPC ResourceExhausted Provider 错误(如 NVIDIA NIM 瞬时耗尽响应)的重试分类(#6449,感谢 @davidbrai)。
  • 修复了底层消息转换,在 Provider 转换前规范化 null 消息内容,避免松散导入转录的崩溃(#6343)。
  • 修复了 Xiaomi Token Plan 模型元数据,使其遵循上游 models.dev token-plan 目录,移除不支持的 mimo-v2-omni 变体(#6204)。
  • 修复了 GitHub Copilot 设备码登录轮询,在首次 token 轮询前等待,避免部分用户在浏览器授权后出现设备码错误(#6187)。
  • 修复了 OAuth 设备码轮询,遵循服务器提供的 slow_down 间隔,而不仅应用 RFC 8628 的 5 秒增量,使提前到达的轮询(如 WSL/VM 时钟漂移)时 GitHub Copilot 登录恢复而非挂起(#6187)。
  • 修复了 OpenAI Codex user-agent 构建,同步加载 Node OS 元数据,避免在 Node/Bun 中报告 pi (browser) 的启动竞态。
  • 修复了 Fireworks GLM 5.2 Fast,使其使用 OpenAI 兼容端点和 thinkingLevelMap,与 GLM 5.2 对齐(#6195)。
  • 修复了 Amazon Bedrock Claude Fable 5 和 Claude Sonnet 5 的 Prompt 缓存点数(#6235)。
  • 修复了 Amazon Bedrock Claude 5 Prompt 缓存定价元数据,移除了过期的回退覆盖。
  • 修复了 DS4 服务器对 Prompt has ... tokens, but the configured context size is ... tokens 错误的上下文溢出检测(#6262)。
  • 修复了 OpenAI Codex WebSocket 会话,在后端 60 分钟限制之前轮换缓存连接,避免长会话出现连接限制失败(#6268)。
  • 修复了 OpenAI Completions 和 Responses Provider,在工具结果文本为空且无图片内容时发送 (no tool output) 而非 (see attached image),防止模型虚构图片附件。
  • 修复了 OpenAI Responses 和 Azure OpenAI Responses 请求,避免发送低于 Provider 最小值的 max_output_tokens#6265)。
  • 修复了 Cloudflare 524 超时响应的重试分类(#6239)。
  • 修复了 Bun fetch socket-drop 错误(如 socket connection was closed)的重试分类,使瞬时流断开自动重试(#6431)。
  • 修复了 GitHub Copilot 扩展上下文窗口模型(Claude Opus 4.7/4.8、Claude Opus 4.6、Claude Sonnet 4.6/5、Claude Fable 5、GPT-5.3 Codex、GPT-5.4、GPT-5.5),使其使用 contextWindow: 1000000,防止过早压缩和预算不足(#6439)。
Pi Agent

新增

  • 添加了可配置的 harness 会话上下文条目变换和自定义条目消息投射器。
  • 在 JSONL 会话头中添加了自定义元数据支持(#6417,感谢 @ArcadiaLin)。
  • 导出了 InMemorySessionStorageJsonlSessionStorage#6435)。

修复

  • 修复了 harness 分轮压缩,使摘要请求串行化,避免单并发 Provider 被要求运行重叠的生成请求(#5536)。
  • 修复了 harness 工具调用,使被长度截断的助手消息中的工具调用失败,而非等待缺失的工具结果(#6285)。
  • 修复了 harness 会话导入,在上下文投射前规范化 null 消息内容,避免松散导入转录的崩溃(#6343)。
  • 修复了非正数或过大的 harness shell 执行超时,使其以明确的验证错误失败,而非被压缩为即时超时(#6181)。
  • 修复了 harness 会话存储的短条目 ID,使用生成的 uuidv7 的随机尾部而非时间戳前缀(后者在调用之间近乎恒定)(#6242)。
Pi TUI

修复

  • 修复了编辑器粘贴标记处理,当粘贴标记被删除或终端状态被清除时防止过期的粘贴状态残留(#6397,感谢 @affanali2k3)。

v0.80.3(2026-06-30)

Pi Coding Agent

新功能

  • Anthropic Claude Sonnet 5 支持 — Claude Sonnet 5 通过 Anthropic 兼容和 Bedrock Provider 目录可用,并启用了自适应 thinking。详见 ProvidersModel Options
  • 可配置的输出间距outputPad 可控制用户消息、助手消息和 thinking 块的水平内边距。详见 Settings
  • 外部编辑器配置externalEditor 允许 Ctrl+G 使用配置的编辑器,再回退到 $VISUAL/$EDITOR。详见 SettingsKeybindings
  • 更丰富的 RPC 会话树访问 — RPC 客户端可以通过 get_entriesget_tree 检查会话条目和树快照。详见 get_entriesget_tree
  • 扩展会话元数据更新 — 扩展可以通过 session_info_changed 观察会话名称变化。详见 session_info_changed
  • 现代 Azure Foundry 端点支持 — Azure OpenAI Responses Provider 设置支持当前的 Microsoft Foundry 端点 URL。详见 Azure OpenAI

新增

  • 添加了 Anthropic Claude Sonnet 5 模型支持。
  • 添加了 get_entriesget_tree RPC 命令,用于通过 RPC 读取会话条目和树快照(#6078)。
  • 添加了 ./rpc-entry 包导出,用于直接以 RPC 模式启动 Pi。
  • 添加了扩展的会话名称变更事件(#6175)。
  • 添加了 Azure OpenAI Responses 支持,用于现代 Microsoft Foundry 端点 URL(#6004)。
  • 添加了 Usage.reasoning token 计数,用于报告 reasoning/thinking token 使用情况的 Provider(#6057)。
  • 添加了 externalEditor settings.json 覆盖项,用于 Ctrl+G 外部编辑器命令,默认回退到 Windows 上的 Notepad 和其他平台上的 nano#6122)。
  • 添加了 outputPad 设置,用于用户消息、助手消息和 thinking 的水平内边距(#6168)。

变更

  • 将默认 OpenAI 模型更改为 gpt-5.5
  • 将 OpenAI Codex Responses SSE 响应头等待时间更改为使用配置的 HTTP 超时,而非之前的固定 20 秒超时,减少慢连接上的假超时(#4945)。

修复

  • 修复了 Claude Sonnet 5 元数据,使其对 Anthropic 兼容和 Bedrock 请求使用自适应 thinking 负载。
  • 修复了生成式 Xiaomi MiMo 模型定价,使其与 models.dev 当前的按量付费定价一致(#6138)。
  • 修复了 Provider HTTP 错误,使其包含响应体而非不透明的 SDK 消息(#5832)。
  • 修复了 streamSimple() max-token 上限,使那些将输入和输出计入同一上下文窗口的 Provider 不会拒绝长请求(#5595)。
  • 修复了 OpenAI Responses 流,使其在输出项乱序完成时保留 reasoning 回放状态(#6009)。
  • 修复了 Z.AI preserved thinking 请求,使其在启用 thinking 时发送 thinking.clear_thinking: false,允许回放的 reasoning_content 参与 Provider 缓存(#6083)。
  • 修复了前导 Prompt 压缩,使其在压缩后停止而非立即继续(#6074)。
  • 修复了恢复会话时资源通知保持在消息之前的问题(#6048)。
  • 修复了启动基准计时输出,使其在 TUI 关闭后打印、保留扩展计时,并在停止基准模式前耗尽终端查询回复(#6030#6063)。
  • 修复了扩展工具变更,使其在同一 agent 运行中的下一次 Provider 请求前应用,而不丢失 before_agent_start 系统提示覆盖(#6162)。
  • 修复了 undici 在终止流中 HTTP 响应时发出内部客户端错误导致的崩溃(#6133)。
  • 修复了压缩事件回归测试,以覆盖状态指示器清理并保持 CI 通过。
  • 修复了交互式状态指示器,使结束工作、重试、压缩或分支摘要指示器在启用 clear-on-shrink 时不再缩小 TUI(#6026)。
  • 修复了 --sessionSessionManager.open(),使其拒绝非空无效的会话文件而不覆盖它们(#6002)。
  • 修复了用户消息转译渲染,使 Markdown 转义序列(如 \")中的可见反斜杠得以保留(#6105)。
  • 修复了因输出长度而停止的助手消息,使其显示可见的不完整响应错误(#4290)。
  • 修复了 --no-session --session-id,使临时 CLI 运行可以使用确定性会话 ID 以获得 Provider 缓存亲和性(#6070)。
  • 修复了磁盘 BMP 图像文件,使其被检测、转换为 PNG,并通过 read 和 CLI @file 输入附加(#6047)。
  • 修复了针对明确告知调用者重试请求的 Provider 流错误的自动重试(#6019)。
Pi AI

新增

  • 为 Anthropic 兼容、Bedrock、OpenRouter 和 Vercel AI Gateway Provider 添加了 Anthropic Claude Sonnet 5 模型元数据。
  • 添加了 Azure OpenAI Responses 对现代 Microsoft Foundry 端点 URL 的支持(#6004)。
  • Usage 中添加了可选的 reasoning 字段,报告 reasoning/thinking token 计数作为 output 的子集。Anthropic(output_tokens_details.thinking_tokens)、OpenAI Responses/Codex/Azure(output_tokens_details.reasoning_tokens)、OpenAI Completions(completion_tokens_details.reasoning_tokens)以及 Google Generative AI / Vertex(thoughtsTokenCount)均已填充。Bedrock Converse 和 Mistral 未填充,因为这些 API 不返回 reasoning token 细分(#6057)。

变更

  • 将 OpenAI Codex Responses SSE 响应头等待时间更改为使用配置的 HTTP 超时,而非之前的固定 20 秒超时,减少慢连接上的假超时(#4945)。

修复

  • 修复了 Claude Sonnet 5 元数据,使其对 Anthropic 兼容和 Bedrock 请求使用自适应 thinking 负载。
  • 修复了生成的 Xiaomi MiMo 模型定价,使其与 models.dev 当前的按量付费定价一致(#6138)。
  • 修复了 Provider HTTP 错误,使其包含响应体而非不透明的 SDK 消息(#5832)。
  • 修复了 streamSimple() 发送上下文感知的 max-token 上限,使那些将输入和输出计入同一上下文窗口的 Provider 不会拒绝长请求(#5595)。
  • 修复了 OpenAI Responses 流,使其在输出项乱序完成时保留 reasoning 回放状态(#6009)。
  • 修复了针对明确告知调用者重试请求的 Provider 错误的重试分类(#6019)。
  • 修复了 Z.AI preserved thinking 请求,使其在启用 thinking 时发送 thinking.clear_thinking: false,允许回放的 reasoning_content 参与 Provider 缓存(#6083)。
Pi Agent

新增

  • 为需要下一轮循环上下文的 Agent 用户添加了 prepareNextTurnWithContext

修复

  • 修复了 Agent.prepareNextTurn,使其持续接收运行中止信号而非下一轮上下文。
Pi TUI

新增

  • 添加了可选的 Markdown 渲染器选项,用于保留转译渲染中的源反斜杠转义(#6105)。

v0.80.2(2026-06-23)

Pi Coding Agent

变更

  • 将 pi-ai ApiKeyCredential 更改为使用与 auth.json 兼容的鉴别器 type: "api_key" 和 Provider 作用域内的 env 值,而非 type: "api-key" 和元数据。
  • 将 agent-core 公共 harness shell 执行选项类型从 ExecutionEnvExecOptions 重命名为 ShellExecOptions

修复

  • 修复 Anthropic 兼容自定义模型,使其使用显式兼容性元数据,而非用于会话亲和性头部和不支持的工具字段省略的 Provider 名称启发式方法。
  • 修复请求作用域内的 apiKeyenv 值,使其参与 Provider 身份验证解析,以便 Cloudflare 等 Provider 可以从显式调用选项中派生请求特定的基础 URL(#6021)。
  • 恢复 pi-ai compat 入口点上临时传统逐 API 流别名,如 streamSimpleOpenAICompletions#6016#6017)。
  • 恢复 openai-completions 中运行时 detectCompat 回退,用于没有显式兼容性元数据的模型(#6020)。
Pi AI

变更

  • ApiKeyCredential 更改为使用与 auth.json 兼容的鉴别器 type: "api_key" 和 Provider 作用域内的 env 值,而非 type: "api-key" 和元数据。

修复

  • 修复 Anthropic 兼容自定义模型,使其使用显式兼容性元数据,而非用于会话亲和性头部和不支持的工具字段省略的 Provider 名称启发式方法。
  • 修复请求作用域内的 apiKeyenv 值,使其参与 Provider 身份验证解析,以便 Cloudflare 等 Provider 可以从显式调用选项中派生请求特定的基础 URL(#6021)。
  • 恢复 compat 入口点上的临时传统逐 API 流别名,如 streamSimpleOpenAICompletions#6016#6017)。
  • 恢复 openai-completions 中的运行时 detectCompat 回退,用于没有显式兼容性元数据的模型(#6020)。
Pi Agent

变更

  • 将公共 harness shell 执行选项类型从 ExecutionEnvExecOptions 重命名为 ShellExecOptions

v0.80.1(2026-06-23)

Pi Coding Agent

修复

  • 修复 Amazon Bedrock 作用域内 AWS_PROFILE 端点解析,适用于内置推理配置文件端点。
  • 修复 Fireworks Anthropic 兼容请求,为自定义 Fireworks 模型应用会话亲和性和不支持的工具字段默认值。
  • 修复 Together MiniMax M2.7 元数据,以避免不支持的 Together 推理切换。
Pi AI

修复

  • 修复 Amazon Bedrock 作用域内 AWS_PROFILE 端点解析的回归问题,适用于内置推理配置文件端点。
  • 修复 Fireworks Anthropic 兼容请求,为自定义 Fireworks 模型应用会话亲和性和不支持的工具字段默认值。
  • 修复 Together MiniMax M2.7 元数据,以避免不支持的 Together 推理切换。

v0.80.0(2026-06-23)

Pi Coding Agent

变更

  • 添加 Ctrl+J 作为默认换行快捷键,与 Shift+Enter 并列。
  • 将显示的 zai Provider 标签重命名为 ZAI Coding Plan (Global) 以提高清晰度(#5965)。
  • pi-ai 的旧全局 API(stream/complete/completeSimplegetModel/getModels/getProvidersregisterApiProvidergetEnvApiKey 等)已从 @earendil-works/pi-ai 根入口点移至 @earendil-works/pi-ai/compat。扩展在运行时不受影响:扩展加载器会将 pi-ai 根解析为 compat 入口点(严格超集),因此现有扩展可继续正常工作。对 pi-ai 已发布类型进行类型检查的扩展应将这些导入切换为 @earendil-works/pi-ai/compat(或迁移到新的 createModels()/Provider-factory API)。compat 入口点和加载器别名将在未来版本中通过迁移指南移除。

修复

  • 修复会话名称,在存储或显示标签前规范化换行符(#5999,感谢 @haoqixu)。
  • 修复会话选择器,按每个子树中最新活动对线程化会话树排序(#5784,感谢 @Perlence)。
  • 修复与扩展相关的崩溃和启动失败报告,建议使用 pi -ne 重启。
  • 修复 OpenAI Responses 流,使其在缺失终端事件前失败,并修复上下文使用和压缩估算,在截断响应后忽略格式错误的全零助手使用情况(#5526,感谢 @dmmulroy)。
  • 修复 OpenAI Codex Responses WebSocket 会话,在输出开始前达到 OpenAI 连接限制时重新连接一次(#5973)。
  • 修复 Amazon Bedrock 端点解析,使其遵循作用域内的 AWS_PROFILE 值。
  • 修复 Cloudflare Providers,要求账户/网关配置并通过 Provider 身份验证路由内置兼容调用。
  • 修复 Provider 作用域内的身份验证环境变量值,使其能够到达 Models/ImagesModels API 调用和兼容 API 密钥注入。
  • 修复 OpenCode Go GLM-5.2 元数据,以暴露 xhigh 推理并发送 Provider 的最大推理强度(#5967)。
  • 修复 pi --resume,使其加载用户包主题并解析自动亮/暗主题设置。
  • 修复 models.json 自定义 Providers,使存储的凭据无需冗余 Provider 级别 apiKey 即可满足身份验证要求(#5953)。

移除

  • 移除了选择性 Provider @earendil-works/pi-ai/base@earendil-works/pi-agent-core/base 入口点;请改用带有显式 Models Provider 工厂的根包。
Pi AI

不兼容变更

  • 根入口点(@earendil-works/pi-ai)现在仅包含核心功能且无副作用。旧的全局 API 已移至临时的 @earendil-works/pi-ai/compat 入口点,这是根的严格超集:只需更改文件的导入路径即可完成迁移。被移动的符号包括 stream/complete/streamSimple/completeSimplegetModel/getModels/getProviders(现在是 @earendil-works/pi-ai/providers/allgetBuiltinModel/getBuiltinModels/getBuiltinProviders 的已弃用别名)、registerApiProvider/unregisterApiProviders/resetApiProviders/getApiProvidergetEnvApiKey/findEnvKeyssetBedrockProviderModule、每个 API 的惰性流包装器(anthropicMessagesApi 等)以及图像生成 API。
  • Provider 类型重命名为 ProviderIdProvider 现在是运行时 Provider 接口的名称(id、name、auth、模型列表、流行为)。
  • API 实现模块已从 src/providers/ 移至 @earendil-works/pi-ai/api/*,按 API id 重命名(anthropic -> api/anthropic-messagesgoogle -> api/google-generative-aimistral -> api/mistral-conversationsamazon-bedrock -> api/bedrock-converse-stream),每个模块恰好导出 streamstreamSimple。旧的按实现导出的名称(streamAnthropicstreamSimpleAnthropic 等)和旧的原始 API 子路径(./anthropic./google./openai-completions 等)已移除;请通过 @earendil-works/pi-ai/api/* 导入原始 API 实现。
  • 移除了 @earendil-works/pi-ai/base 选择性 Provider 入口点;请将根/核心 API 与显式的 createModels() 集合和 Provider 工厂一起使用,以实现隔离的 bundle。
Pi Agent

不兼容变更

  • AgentHarnessOptions.models 是必需的,且是唯一的身份验证路径:Harness 通过提供的 Models 实例(models.streamSimple()/completeSimple())流处理轮次、压缩和分支摘要,通过 Providers 解析身份验证。已移除 AgentHarnessOptions.getApiKeyAndHeaders — 按请求解析密钥的应用现在应将其表示为 Models 集合中 Providers 的身份验证(ApiKeyAuth/OAuthAuth)。使用 createModels() + Provider 工厂(或 @earendil-works/pi-ai/providers/all 中的 builtinModels())构建;测试使用 fauxProvider()
  • compact()generateSummary()generateBranchSummary() 接受 Models 参数,不再接受显式的 apiKey/headers
  • StreamFn 以结构形式定义((model, context, options?) => AssistantMessageEventStream | Promise<...>);Models.streamSimple 满足它。
  • 移除了 @earendil-works/pi-agent-core/base 选择性 Provider 入口点;请改用带有显式 Models 实例的根包。

修复

  • 修复 Harness 会话名称,在存储标签前规范化换行符(#5999,感谢 @haoqixu)。
  • 修复 Harness 压缩估算,在截断响应后忽略格式错误的全零助手使用情况(#5526,感谢 @dmmulroy)。
Pi TUI

变更

  • 添加 Ctrl+J 作为默认换行快捷键,与 Shift+Enter 并列。

v0.79.10(2026-06-22)

Pi Coding Agent

新功能

  • 扩展压缩事件上下文 — Extension session_before_compactsession_compact 事件现在包含 reasonwillRetry,使扩展可以区分手动 /compact、阈值自动压缩和溢出重试流程。参见 session_before_compact / session_compact通过扩展自定义摘要
  • 更安全的更新流程pi update 会安装精确匹配的已检出 Pi 版本,更新通知会显示 changelog URL,使升级更可预期。参见 安装与管理

新增

  • 为扩展 session_before_compactsession_compact 事件添加了 reasonwillRetry 元数据,使扩展可以区分手动、阈值和溢出压缩流程(#5962,感谢 @PizzaMarinara)。

修复

  • 修复了 find 工具,使其在父 .gitignore 规则忽略嵌套仓库时仍能尊重嵌套 git 仓库边界(#5960)。
  • 修复了 usage 文档的斜杠命令表,补全 /trust/import#5959)。
  • 修复了 OpenAI 兼容流式传输,保留在匹配 tool call delta 之前到达的加密 reasoning_details#5114)。
  • 修复了损坏的 TUI 文档链接,指向计划模式扩展示例(#5957)。
  • 修复了会话替换或重载期间发出的瞬时扩展 UI 和会话启动消息,使其保持可见,并在重载完成前保持重载输入阻塞(#5943)。
  • 修复了 plan-mode 示例,使其保留活跃自定义工具、未找到计划时跳过动作提示,并从 agent_end 正确排队细化/执行 follow-up(#5940)。
  • 修复了 pi update,使其安装 Pi 更新检查返回的确切版本,--force 重新安装该检查版本,无可用版本时失败而不是回退到无版本重装,并报告旧版本和更新后的版本。
  • 修复了更新通知,将实际 changelog URL 显示为超链接文本。
Pi AI

修复

  • 修复了 OpenAI 兼容流式传输,保留在匹配 tool call delta 之前到达的加密 reasoning_details#5114)。

v0.79.9(2026-06-20)

Pi Coding Agent

新功能

  • Chat-template thinking 兼容 — OpenAI 兼容的自定义 Provider 可以将 Pi 的 thinking 等级映射到 chat_template_kwargs,使基于 vLLM/Hugging Face chat-template 的模型(如 DeepSeek)能够使用 Provider 原生的 thinking 控制。参见 Custom Provider API TypesOpenAI Compatibility
  • GLM-5.2 Provider 改进 — GLM-5.2 现在修正了 Fireworks OpenAI 兼容路由,并支持 OpenRouter xhigh thinking,使 GLM-5.2 用户在 /model 行为和高强度推理方面体验更佳。参见 Model Options

新增

  • 添加了可配置 chat-template thinking 支持,适用于使用 chat_template_kwargs 的 OpenAI 兼容 Provider,例如 vLLM 后端的 DeepSeek 模型(#5673)。

修复

  • 修复了 Fireworks GLM-5.2 元数据,使其使用支持 reasoning_effort 的 OpenAI 兼容 Chat Completions 端点(#5923)。
  • 修复了同目录会话切换,使其复用已导入的扩展模块,同时保持扩展实例的新鲜性和生命周期事件(#5905)。
  • 修复了深层会话分支构建上下文或分支路径时耗时呈平方级增长的问题(#5909)。
  • 修复了 OpenRouter GLM-5.2 元数据,使其暴露 xhigh 推理并发送 OpenRouter 原生的 xhigh effort(#5770)。
  • 修复了 Markdown 流式代码围栏渲染,部分闭合围栏不再导致代码块在内容流式输出过程中缩小或闪烁(#5846,感谢 @xl0)。
  • 修复了 fuzzy edit 匹配,使其保留未触及的行块,而不是通过归一化内容重写整个文件(#5899)。
  • 修复了通过旧版 WSL bash.exe 执行的 bash 命令,使其通过 stdin 传入脚本,shell 变量得以在目标 bash 中展开(#5893)。
  • 修复了 /model,使其隐藏当前已认证账号不可用的 GitHub Copilot 模型(#5897)。
  • 修复了 /model 选择器搜索,使精确的 Provider 前缀匹配排在代理 Provider 模型 ID 匹配之前(#5892)。
Pi AI

新增

  • 添加了可配置的 chat-template thinking 支持,适用于使用 chat_template_kwargs 的 OpenAI 兼容 Provider,例如 vLLM 后端的 DeepSeek 模型(#5673)。

修复

  • 修复了 Fireworks GLM-5.2 元数据,使其使用支持 reasoning_effort 的 OpenAI 兼容 Chat Completions 端点(#5923)。
  • 修复了 OpenRouter GLM-5.2 元数据,使其暴露 xhigh 推理并发送 OpenRouter 原生的 xhigh effort(#5770)。
  • 修复了 GitHub Copilot OAuth 模型可用性,使其使用已认证账号的模型选择器目录(#5897)。
Pi Agent

修复

  • 修复了 Node 执行环境通过旧版 WSL bash.exe 执行命令时,将脚本通过 stdin 传入,使 shell 变量在目标 bash 中得以展开(#5893)。
Pi TUI

修复

  • 修复了 Markdown 流式代码围栏渲染,部分闭合围栏不再导致代码块在内容流式输出过程中缩小或闪烁(#5846,感谢 @xl0)。

v0.79.8(2026-06-19)

Pi Coding Agent

新功能

  • 选择性 Provider 基础入口 — SDK 用户可以将 @earendil-works/pi-ai/base@earendil-works/pi-agent-core/base 与显式 Provider 注册配合使用,避免打包应用包含未使用的 Provider 传输层。参见 pi-ai Base Entry Pointpi-agent-core Base Entry Point
  • Mistral Prompt 缓存 — Mistral 会话现在使用 Provider 端的 Prompt 缓存,具备会话亲和性和缓存 Token 用量/成本核算。参见 API KeysEnvironment Variables
  • 压缩后 Token 估算 — 压缩结果和压缩事件现在包含压缩后 Token 估算数,使客户端可以展示近似的上下文缩减量。参见 RPC compactcompaction events
  • OpenRouter Fusion 别名openrouter/fusion 现可作为内置 OpenRouter 模型别名使用。参见 API Keys

新增

  • 添加了 @earendil-works/pi-ai/base@earendil-works/pi-agent-core/base 入口点,用于打包应用中的选择性 Provider 注册(#5348,感谢 @FredKSchott)。
  • 添加了 Mistral Prompt 缓存,使用 pi 会话 ID 作为 prompt_cache_key,包含缓存 Token 用量和成本核算(#5854)。
  • 为压缩结果和压缩事件添加了压缩后 Token 估算数(#5877)。
  • 添加了 OpenRouter Fusion 别名 openrouter/fusion#5866,感谢 @dannote)。

修复

  • 更新了存在漏洞的运行时依赖,包括 undici 和打包的 protobufjs 传递依赖。
  • 修复了压缩,使其拒绝没有合格消息的会话,而不是产生空摘要(#4811)。
  • 修复了成功的溢出触发自动压缩,避免重试已完成的助手响应(#5720)。
Pi AI

新增

  • 添加了 @earendil-works/pi-ai/base 和直接 Provider 注册导出,供希望在不进行根内置注册的情况下选择性使用 Provider 传输层的打包工具使用(#5348,感谢 @FredKSchott)。
  • 添加了 Mistral 请求的 Prompt 缓存,使用 pi 会话 ID 作为 prompt_cache_key,包含缓存 Token 用量和成本核算(#5854)。
  • 添加了 OpenRouter Fusion 别名 openrouter/fusion#5866,感谢 @dannote)。
Pi Agent

新增

  • 添加了 @earendil-works/pi-agent-core/base,供希望将 agent core 与选择性 @earendil-works/pi-ai/base Provider 注册配合使用的打包工具使用(#5348,感谢 @FredKSchott)。

v0.79.7(2026-06-18)

Pi Coding Agent

新功能

  • 自动主题模式/settings 现在可以选择独立的亮色和暗色主题,并跟随终端配色方案的变化。参见 Selecting a Theme
  • 默认仅更新自身pi update 现在仅更新 pi,使用 pi update --all 可同时更新 pi 和扩展包。参见 Install and Manage
  • 扩展 API 辅助工具 — 扩展可以使用 CONFIG_DIR_NAME 获取项目配置路径,并导入编辑差异辅助工具生成编辑式差异。参见 ctx.cwdSDK Exports
  • Warp 内联图片 — Warp 终端现在通过 Kitty 图形检测获得内联图片渲染。参见 Image

新增

  • 添加了自动主题模式,使 /settings 可以使用独立的亮色和暗色主题并跟随终端配色方案变化(#5874)。
  • 添加了 Warp 终端图片能力检测,使内联图片通过 Warp 的 Kitty 图形支持渲染(#5841,感谢 @dodiego)。
  • 从 coding-agent 公共 API 导出了 CONFIG_DIR_NAME,使扩展可以解析项目配置路径而无需硬编码 .pi#5869,感谢 @xl0)。
  • 从公共 API 导出了编辑差异辅助工具(generateDiffStringgenerateUnifiedPatchEditDiffResult),供需要编辑式差异的扩展使用(#5756,感谢 @xl0)。

变更

  • 将裸 pi update 改为仅更新 pi,添加 pi update --all 用于同时更新 pi 和扩展,并澄清了扩展更新提示。
  • 在主题名称中保留 / 用于自动亮/暗主题设置。
  • 更新了扩展文档、示例、运行时帮助、信任提示和配置标签,使用配置的项目配置目录而非硬编码 .pi 路径。

修复

  • 修复了 RPC 未知命令错误,使其包含请求 id,避免客户端挂起等待响应(#5868)。
  • 修复了 /model 自动补全和模型选择搜索,无论先输入 Provider 还是模型 token 都能匹配 Provider/模型查询。
  • 修复了树形导航器,对深层条目进行水平平移,使选中项保持可读(#5830)。
Pi AI

新增

  • 为 OpenCode Go 订阅模型目录添加了 GLM-5.2 模型(#5860)。
Pi TUI

新增

  • 添加了终端配色方案查询和通知支持,用于亮/暗外观检测(TUI.queryTerminalColorScheme()TUI.onTerminalColorSchemeChange()TUI.setTerminalColorSchemeNotifications())(#5874)。
  • 添加了 Warp 终端检测以支持 Kitty 图形内联图片(#5841,感谢 @dodiego)。
  • 导出了 sliceByColumn,用于感知 ANSI 的水平列切片。

v0.79.6(2026-06-16)

Pi Coding Agent

修复

  • 修复了 HTTP dispatcher 配置,保留调用者显式设置的 fetch 覆盖,而非在其上重新安装 undici 全局 fetch。
  • 修复了 OpenCode Go DeepSeek V4 关闭 thinking 的请求,发送 Provider 的 thinking: { type: "disabled" } 兼容参数。
Pi AI

修复

  • 修复了 OpenCode Go DeepSeek V4 关闭 thinking 的请求,发送 Provider 的 thinking: { type: "disabled" } 兼容参数。

v0.79.5(2026-06-16)

Pi Coding Agent

新功能

  • Provider 级别的 API 密钥环境变量auth.json 的 API 密钥条目现在可以包含 env 覆盖,用于特定 Provider 的 Cloudflare、Azure OpenAI、Google Vertex、Amazon Bedrock、缓存保留和代理设置,无需修改项目 shell。参见 Auth File
  • 全局 HTTP 代理设置 — 在全局设置中配置 httpProxy 即可将 HTTP_PROXYHTTPS_PROXY 应用于 Pi 管理的 HTTP 客户端。参见 网络
  • Vercel AI Gateway 归属 — Vercel AI Gateway 请求现在默认包含 Pi 归属头部。参见 API Keys

新增

  • 为 Vercel AI Gateway 模型添加了请求归属头部(http-refererx-title)(#5798,感谢 @rwachtler)。
  • 在启用实验性功能时添加了 xp 页脚标记。
  • 添加了全局 httpProxy 设置,作为 HTTP_PROXYHTTPS_PROXY 应用于 Pi 管理的 HTTP 客户端(#5790)。
  • 添加了 auth.json API 密钥 env 值,使特定 Provider 的环境覆盖可以限定在 Pi 范围内,并传播到 Provider 配置(#5728)。

变更

  • 将 HTML 会话导出使用的 Markdown 解析器更新为 marked 18.0.5。

修复

  • 修复了 OpenAI Responses 流式响应,在工具调用前容忍 OpenAI 兼容服务器返回的 null 消息内容(#5819)。
  • 修复了 OpenCode DeepSeek V4 thinking 请求,避免同时发送 thinkingreasoning_effort#5818)。
  • 修复了设备码登录,不再自动打开浏览器。
  • 修复了编辑器 Cursor Up 处理,非空草稿在浏览输入历史前先跳转到行首(#5789,感谢 @4h9fbZ)。
  • 修复了 Z.AI GLM-5.2 thinking 请求,发送 reasoning_effort 时使用 Provider 的 high/max 努力映射(#5770)。
  • 修复了 Windows 上 pi update 成功后的退出,改为自然退出而非调用 process.exit(0),避免版本检查网络请求后的 Node.js/libuv 断言(#5805)。
  • 修复了 Google 和 google-vertex Gemini 模型元数据,将 latest 别名映射到当前模型,为 Vertex 添加 Gemini 3.5 Flash,修正 Gemini 2.5 Flash Vertex 缓存定价,并移除已关闭的 Vertex 预览模型(#5761)。
  • 修复了会话选择器,在当前文件夹和全部范围会话列表均为空时保持打开并显示空状态(#5747)。
  • 修复了 Moonshot AI China 模型元数据,包含 Kimi K2.7 Code,并针对 Kimi K2.7 Code 模型省略不支持的关闭 thinking 载荷(#5760)。
Pi AI

新增

  • 添加了 Provider 级别的 StreamOptions.env 覆盖,用于 Provider 配置,包括 Cloudflare 端点占位符、Azure OpenAI、Google Vertex、Amazon Bedrock、缓存保留和代理环境变量查找(#5728)。

修复

  • 修复了 OpenAI Responses 流式响应,在工具调用前容忍 OpenAI 兼容服务器返回的 null 消息内容(#5819)。
  • 修复了 OpenCode DeepSeek V4 thinking 请求,避免同时发送 thinkingreasoning_effort#5818)。
  • 修复了 Z.AI GLM-5.2 thinking 请求,发送 reasoning_effort 时使用 Provider 的 high/max 努力映射(#5770)。
  • 修复了 Google 和 google-vertex Gemini 模型元数据,将 latest 别名映射到当前模型,为 Vertex 添加 Gemini 3.5 Flash,修正 Gemini 2.5 Flash Vertex 缓存定价,并移除已关闭的 Vertex 预览模型(#5761)。
  • 修复了 Moonshot AI China 模型元数据,包含 Kimi K2.7 Code,并针对 Kimi K2.7 Code 模型省略不支持的关闭 thinking 载荷(#5760)。
Pi TUI

变更

  • 将 Markdown 解析更新为 marked 18.0.5。

修复

  • 修复了编辑器 Cursor Up 处理,非空草稿在浏览输入历史前先跳转到行首(#5789,感谢 @4h9fbZ)。

v0.79.4(2026-06-15)

Pi Coding Agent

新功能

  • 首次运行自动主题选择 — pi 在首次运行时会检测终端背景,并默认使用 darklight 主题。参见 选择主题
  • 独立二进制完整性校验 — GitHub 发布资源现在包含 SHA256SUMS 文件,用于校验独立二进制下载。参见 快速开始安装

新增

  • 为独立二进制 GitHub 发布资源添加了 SHA256SUMS 完整性文件(#5739)。
  • 添加了首次运行时通过终端背景检测进行交互式主题选择(#5385,感谢 @vegarsti)。

修复

  • 修复了 bash 工具输出收集,在子进程退出但后代仍在写入时继续排空 stdout/stderr,避免截断延迟输出(#5753,感谢 @Mearman)。
  • 修复了 /tree 帮助渲染,在窄终端上显示紧凑的换行控件而非截断(#5055)。
  • 修复了 SIGTERM/SIGHUP 交互式关闭,在终端清理完成前保持信号处理程序安装,防止 signal-exit 重新发送信号并导致终端停留在 raw/Kitty 键盘模式(#5724)。
  • 修复了扩展文档,澄清 pi.getActiveTools() 返回活跃工具名称,而 pi.getAllTools() 返回工具元数据(#5729)。
  • 修复了 question 和 questionnaire 扩展示例,对长 Prompt、选项和帮助文本进行换行而非截断(#5708,感谢 @xl0)。
  • 修复了 pi listpi installpi update 等包命令,在完成后即使扩展留下后台句柄也能正常终止(#5687)。
  • 修复了 pnpm 全局安装的 pi update,当其配置的 global-bin-dir 与活动的 pnpm home 不匹配时(#5689)。
  • 修复了使用范围或标签(如 @^1.2.7)的 npm 包规范,使已安装的包资源仍能加载,而不会被视为不匹配的确切固定版本(#5695)。
  • 修复了 Anthropic 1 小时 Prompt 缓存写入成本计算,将 1 小时缓存写入定价为 2 倍输入,而非 5 分钟缓存写入费率(#5738,感谢 @theBucky)。
  • 修复了 GitHub Copilot Claude adaptive thinking 元数据,以匹配手动检查的 Copilot 模型能力(#4637)。
  • 修复了 OpenCode/OpenCode Go 补全模型元数据,对拒绝 prompt_cache_retention 的路由省略长保留缓存字段(#5702)。
  • 修复了 overlay 在 CJK 宽字符上的合成,使 overlay 在全宽单元格内开始时边框保持对齐(#5297)。
  • 修复了 WezTerm 内联 Kitty 图片在全量重绘回退期间的渲染,在绘制之前预留图片填充行,且不回归高图放置(#5618#4415)。
  • 修复了自定义 Provider 配置,使纯大写 API key 和 header 值保持为字面量而非被视为旧版环境变量引用;使用显式的 $ENV_VAR 语法表示环境变量(#5661)。
Pi AI

修复

  • 修复了 Anthropic 1 小时 Prompt 缓存写入成本计算,将 1 小时缓存写入定价为 2 倍输入,而非 5 分钟缓存写入费率(#5738,感谢 @theBucky)。
  • 修复了 GitHub Copilot Claude adaptive thinking 元数据,以匹配手动检查的 Copilot 模型能力(#4637)。
  • 修复了拒绝 prompt_cache_retention 的 OpenCode/OpenCode Go 补全模型,在 cacheRetentionlong 时省略长保留缓存字段(#5702)。
Pi TUI

新增

  • 添加了终端背景色查询支持,用于 OSC 11 回复(#5385,感谢 @vegarsti)。

修复

  • 修复了 overlay 在 CJK 宽字符上的合成,使 overlay 在全宽单元格内开始时边框保持对齐(#5297)。
  • 修复了 WezTerm 内联 Kitty 图片在全量重绘回退期间的渲染,在绘制之前预留图片填充行,且不回归高图放置(#5618#4415)。

v0.79.3(2026-06-13)

Pi Coding Agent

修复

  • 修复了压缩摘要系统 Prompt,对非编码 Agent 使用中性 AI 助手措辞(#5401)。
Pi AI

修复

  • 将 OpenAI GPT-5.4/GPT-5.5 和 OpenAI Codex GPT-5.4/GPT-5.4 mini/GPT-5.5 上下文窗口元数据恢复至实际观测的 272k Token Codex 后端限制,避免发送超出 Codex 接受限制的 Prompt 产生计费风险(感谢 @trethore 反馈)。

v0.79.2(2026-06-12)

Pi Coding Agent

新功能

  • 更清晰的 Bedrock 验证指引 — Amazon Bedrock 数据保留验证错误现在会链接到 AWS 数据保留文档。参见 Amazon Bedrock

新增

  • PI_EXPERIMENTAL=1 下添加了实验性首次设置流程,询问深浅色主题选择(预选检测到的外观)以及首次启动时选择加入的数据分析共享;选择加入会在 settings.json 中存储 trackingId#5587,感谢 @vegarsti)。
  • 为 Amazon Bedrock 不支持的数据保留模式验证错误添加了 AWS 数据保留文档链接(#5561,感谢 @unexge)。

修复

  • 修复了项目信任检测,当从 $HOME 运行时忽略全局 ~/.pi/agent 状态,并让 pi update 仅使用已保存或显式的项目信任而不进行提示(#5619)。
  • 修复了实验性首次设置,使其跳过已分叉的会话而非重新运行设置提示(#5627,感谢 @vegarsti)。
  • 修复了 OpenAI 兼容上下文溢出检测,支持带括号的 maximum context length (N) 错误(#5677)。
  • 修复了 OpenAI GPT-5.4/GPT-5.5 和 OpenAI Codex GPT-5.4/GPT-5.4 mini/GPT-5.5 上下文窗口元数据,以匹配当前 OpenAI 限制(#5644)。
  • 修复了 Anthropic 拒绝终止行为,在错误消息中保留了 Provider 的 stop_details 说明(#5666,感谢 @rwachtler)。
  • 将 OpenAI Codex Responses SSE 响应头超时增加到 20 秒,以减少误报暂停,同时保留为零事件挂起引入的有界等待(#4945)。
  • 修复了 Claude Fable 5 关闭 thinking 请求,省略了 Anthropic 不支持的 thinking.type: "disabled" 负载(#5567,感谢 @tmustier)。
  • 修复了工具结算后延迟到达的 tool progress 回调被正确忽略的问题(而非发出陈旧的 tool_execution_update 事件)(#5573)。
  • 修复了用户消息转录渲染,使独立的 + 消息不再渲染为 -#5657)。
  • 修复了斜杠分隔模糊查询,使 Provider/模型补全在插入后仍可匹配。
  • 修复了 WezTerm 内联 Kitty 图片渲染,使保留行清除不再擦除除顶部条带之外的所有工具图片预览(#5618)。
  • 修复了 CJK 编辑器换行,使其在字符边界处断行而非留下较大的尾部空白(#5585,感谢 @haoqixu)。
  • 修复了宽松 Markdown 列表渲染,保留了列表项之间的空行分隔(#5562,感谢 @Perlence)。
  • 修复了 --model 解析,对于斜杠前缀与未认证的内置 Provider 匹配的已认证自定义模型 ID(#5643)。
  • 修复了 /fork 在分叉路径包含标签时保持会话父链的连接(#5669)。
  • 修复了 /share/export HTML 导出在配置的自定义主题不再存在时使用活动的回退主题(#5596)。
  • 修复了带有 :<thinking> 后缀的自定义回退模型 ID,在 Provider 模板模型未声明推理能力时保留请求的 thinking 级别(#5560,感谢 @haoqixu)。
Pi AI

新增

  • 为 Amazon Bedrock 不支持的数据保留模式验证错误添加了 AWS 数据保留文档链接(#5561,感谢 @unexge)。

修复

  • 修复了 OpenAI 兼容上下文溢出检测,支持带括号的 maximum context length (N) 错误(#5677)。
  • 修复了 OpenAI GPT-5.4/GPT-5.5 和 OpenAI Codex GPT-5.4/GPT-5.4 mini/GPT-5.5 上下文窗口元数据,以匹配当前 OpenAI 限制(#5644)。
  • 将 OpenAI Codex Responses SSE 响应头超时增加到 20 秒,以减少误报暂停,同时保留为零事件挂起引入的有界等待(#4945)。
  • 修复了 Anthropic 拒绝终止行为,在错误消息中保留了 Provider 的 stop_details 说明(#5666,感谢 @rwachtler)。
  • 修复了 Claude Fable 5 关闭 thinking 请求,省略了 Anthropic 不支持的 thinking.type: "disabled" 负载(#5567,感谢 @tmustier)。
Pi Agent

修复

  • 修复了工具结算后延迟到达的 tool progress 回调被正确忽略的问题(而非发出陈旧的 tool_execution_update 事件)(#5573)。
Pi TUI

修复

  • 修复了 Markdown 源码列表标记保留,使无序标记也能被保留,这样独立的 + 用户消息不再渲染为 -#5657)。
  • 修复了斜杠分隔的模糊查询,使 Provider/模型补全在插入后仍可匹配。
  • 修复了 WezTerm 内联 Kitty 图片渲染,使保留行清除不再擦除除顶部条带之外的所有工具图片预览(#5618)。
  • 修复了 CJK 编辑器换行,使其在字符边界处断行而非留下较大的尾部空白(#5585,感谢 @haoqixu)。
  • 修复了宽松 Markdown 列表渲染,保留了列表项之间的空行分隔(#5562,感谢 @Perlence)。

v0.79.1(2026-06-09)

Pi Coding Agent

新功能

  • Claude Fable 5 — Claude Fable 5 现已在 Anthropic 和 Amazon Bedrock Provider 上可用,支持 adaptive thinking 与 xhigh 推理强度。
  • Prompt 模板默认值 — Prompt 模板可使用 ${1:-7} 这样的位置参数默认值。参见 Prompt 模板参数
  • 可配置的项目信任默认值defaultProjectTrust 允许用户选择未解析的项目信任询问是默认通过、始终信任还是从不信任,扩展也可以检视生效的信任决策。参见 项目信任ctx.isProjectTrusted()
  • 扩展自动补全的触发字符 — 扩展的自动补全 Provider 可以声明 #$ 这样的触发字符,让建议无需斜杠命令前缀即可弹出。参见 自动补全 Provider

新增

  • 为 Prompt 模板位置参数添加了默认值展开,例如 ${1:-7}#5553,感谢 @dannote)。
  • 添加了 areExperimentalFeaturesEnabled 特性开关,让用户能够选择启用实验性功能(#5547,感谢 @vegarsti)。
  • 添加了 ctx.isProjectTrusted(),使扩展能够观察生效的项目信任决策,包括临时信任决策(#5523)。
  • 添加了全局的 defaultProjectTrust 设置,用于选择未解析的项目信任询问是默认通过、始终信任还是从不信任。
  • ctx.ui.addAutocompleteProvider() 包装器添加了扩展自动补全触发字符支持(#4703)。
  • 在 Anthropic 和 Amazon Bedrock Provider 上添加了 Claude Fable 5 模型支持,支持 adaptive thinking 与 xhigh 推理强度。

修复

  • 修复了来自 Amazon Bedrock 的推理配置文件 ARN 区域解析,优先使用 ARN 内嵌的区域而非 AWS_REGION#5527,感谢 @AJM10565)。
  • 修复了 IME 硬件光标定位,在斜杠命令自动补全可见时正确显示(#5283,感谢 @smoosex)。
  • 修复了 z.ai 关闭 thinking 请求,使其发送 Provider 的 thinking: { type: "disabled" } 兼容性参数(#5330)。
  • 修复了 OpenCode completions 模型元数据,将显式的 maxTokens 作为 max_tokens 发送(#5331)。
  • 修复了 Moonshot Kimi 关闭 thinking 请求,使其发送 Provider 的 thinking: { type: "disabled" } 兼容性参数(#5531)。
  • 修复了 Azure OpenAI Responses 请求,禁用服务器端的响应存储(#5530)。
  • 修复了 Azure GPT-5.4 和 GPT-5.5 上下文窗口元数据为 1,050,000 Token,与 Azure Foundry 部署保持一致,而非 OpenAI 的 272k 上限(#5559)。
  • 修复了 OpenAI 和 Azure GPT-5 Pro maxTokens 元数据为 128,000,修正了上游错误地将 272,000 输入子限制复制为输出限制的值(#5559)。
  • 修复了 Prompt 历史导航,使浏览历史返回时能恢复当前草稿(#5494)。
  • 修复了混合拉丁文与 CJK 文本的换行行为,使无空格 CJK 序列能在字素边界处断行,避免留下过大的尾部空白(#5495)。
  • 修复了扩展 OAuth 登录提示,使先前提交的提示行保持稳定,而不再镜像当前输入值(#5433)。
  • 修复了 /reload 会将更新后的 steeringModefollowUpMode 设置应用到当前会话(#5377)。
  • 修复了 models.json 语法无效时跳过启动配置迁移并按文件路径感知的方式报告正常的 models 错误,而非抛出原始的 JSON 解析堆栈(#5418)。
  • 修复了 GitHub 发布说明和交互式 changelog 链接,使其能正确解析包相对文档 URL(#5516)。
  • 修复了 CLI 帮助与版本输出,包括纯重定向的 --help/--version 输出,并简化了 list/config 帮助文本。
  • 修复了临时会话的 /new 默认将新会话也保持为临时会话而非持久化(#5045)。
  • 澄清了自定义模型文档中 namemodelOverrides.name 不会替换页脚或主模型列表中的模型 ID(#4841)。
Pi AI

新增

  • 在 Anthropic 和 Amazon Bedrock 模型元数据中添加了 Claude Fable 5,支持 adaptive thinking 与 xhigh 推理强度。

修复

  • 修复了 Amazon Bedrock 推理配置文件 ARN 区域解析,优先使用 ARN 内嵌的区域而非 AWS_REGION#5527,感谢 @AJM10565)。
  • 修复了 z.ai 关闭 thinking 请求,使其发送 Provider 的 thinking: { type: "disabled" } 兼容性参数(#5330)。
  • 修复了 OpenCode completions 模型元数据,将显式的 maxTokens 作为 max_tokens 发送(#5331)。
  • 修复了 Moonshot Kimi 关闭 thinking 请求,使其发送 Provider 的 thinking: { type: "disabled" } 兼容性参数(#5531)。
  • 修复了 Azure OpenAI Responses 请求,禁用了服务器端的响应存储(#5530)。
  • 修复了 Azure GPT-5.4 和 GPT-5.5 上下文窗口元数据为 1,050,000 Token,与 Azure Foundry 部署保持一致,而非 OpenAI 的 272k 上限(#5559)。
  • 修复了 OpenAI 和 Azure GPT-5 Pro maxTokens 元数据为 128,000,修正了上游错误地将 272,000 输入子限制复制为输出限制的值(#5559)。
Pi Agent

无变更。

Pi TUI

新增

  • 添加了 AutocompleteProvider.triggerCharacters,使编辑器自动补全能自然地在 Provider 定义的 Token 前缀上触发(#4703)。

修复

  • 修复了斜杠命令自动补全可见时的 IME 硬件光标定位(#5283,感谢 @smoosex)。
  • 修复了 Prompt 历史导航,使浏览历史返回时能恢复当前草稿(#5494)。
  • 修复了混合拉丁文与 CJK 文本的换行行为,使无空格 CJK 序列能在字素边界处断行,避免留下过大的尾部空白(#5495)。

v0.79.0(2026-06-08)

Pi Coding Agent

新功能

  • 项目信任保护本地输入 — Pi 现在在加载项目本地设置、资源、指令和包之前会请求确认,支持 --approve / --no-approve 非交互模式控制与保存决策。参见 项目信任
  • 扩展控制的信任决策 — 全局和 CLI 扩展可处理 project_trust,在项目本地资源加载前决定、记住或推迟项目信任。参见 project_trust
  • 页脚缓存命中率可见 — 交互式页脚现在显示最新的 Prompt 缓存命中率(CH)。参见 交互模式
  • 更丰富的 SDK 和 RPC 扩展接口 — 公共导出现包含 RPC 扩展 UI 请求/响应类型与包资源路径助手。参见 扩展 UI 协议SDK 导出

新增

  • 添加了 project_trust 扩展事件,使全局和 CLI 扩展可在启动与运行时 cwd 切换期间决定或推迟项目信任。
  • 添加了项目信任门控,用于项目本地设置、资源、指令和包(#5332)。
  • 在交互式页脚中添加了最新 Prompt 缓存命中率。
  • 从公共 API 导出了 RPC 扩展 UI 请求与响应类型(#5455)。
  • 从公共 API 导出了 coding-agent 包资源路径助手(#5415)。

修复

  • 修复了包导出,移除指向不存在构建产物的过时 ./hooks 子路径。
  • 修复了 TUI 渲染在内容缩为零时清除过时行的问题。
  • 修复了自动补全建议在编辑器光标移动后刷新的问题(#5499,感谢 @Roman-Galeev)。
  • 修复了 /reload 在隐式信任会话创建项目 .pi 目录时持久化项目信任的问题。
  • 修复了项目信任输入发现以可移植方式遍历父目录的问题。
  • 修复了间歇性 Shift+Enter 处理,使 Kitty 键盘协议回退变为响应驱动而非超时驱动(#5188)。
  • 修复了压缩摘要系统 Prompt,为非 coding agent 使用中立的 AI 助手措辞(#5401)。
  • 修复了 models.json schema 支持与 OpenAI Responses 自定义 Provider 对 compat.supportsDeveloperRole: false 的处理(#5456)。
  • 修复了 Prompt 历史导航,使向上浏览时光标位于开头、向下浏览时光标位于末尾(#5454)。
  • 修复了 tmux 设置文档,要求 tmux 3.5 以使用 extended-keys-format csi-u,并记录 tmux 3.2-3.4 回退方案(#5432)。
  • 修复了 OpenRouter 路由偏好,使 OpenAI 兼容自定义 Provider 在 base URL 不直接指向 OpenRouter 时也能正常工作(#5347)。
  • 修复了内置工具展开提示中闭合括号样式不一致的问题(#5359)。
  • 修复了 Skill 包装的 Prompt 在 Skill 指令与用户消息之间插入间距的问题(#5371,感谢 @Perlence)。
Pi AI

修复

  • 修复了 OpenAI Responses 自定义 Provider 对推理模型 compat.supportsDeveloperRole: false 的处理(#5456)。
  • 修复了 OpenRouter 路由偏好,使 OpenAI 兼容自定义 Provider 在 baseUrl 不直接指向 OpenRouter 时也能发送 compat.openRouterRouting#5347)。
Pi Agent

修复

  • 修复了压缩摘要系统 Prompt,为非 coding agent 使用中立的 AI 助手措辞(#5401)。
Pi TUI

修复

  • 修复了 Prompt 历史导航,使向上浏览时光标位于开头、向下浏览时光标位于末尾,确保重复按 Up/Down 能立即遍历多行 Prompt(#5454)。
  • 修复了间歇性 Shift+Enter 处理,使 Kitty 键盘协议回退变为响应驱动而非超时驱动(#5188)。
  • 修复了 TUI 渲染在内容缩为零时清除过时行的问题。
  • 修复了自动补全建议在编辑器光标移动后重新查询的问题(#5499,感谢 @Roman-Galeev)。

v0.78.1(2026-06-04)

Pi Coding Agent

新功能

  • 更广泛的内置 Provider 覆盖 — 新增 Ant Ling 和 NVIDIA NIM Provider 设置文档,以及 MiniMax-M3 对直接 MiniMax Provider 的支持。参见 Providers
  • 更丰富的扩展上下文 — 扩展可使用 ctx.modectx.getSystemPromptOptions() 在 TUI、RPC、JSON 和 print 模式间适配行为,并检查基础系统 Prompt 输入。参见 Extensions

新增

  • 添加了容器化文档和 Gondolin 扩展示例,用于将内置工具路由到本地 micro-VM。
  • 添加了 Ant Ling Provider 选择和设置文档。
  • 添加了 MiniMax-M3 模型支持(来自 @earendil-works/pi-ai),适用于 minimaxminimax-cn 直接 Provider(#5313)。
  • 添加了 NVIDIA NIM Provider 选择、设置文档和直接 NIM 请求归属头。
  • 在扩展上下文中添加了 ctx.mode,使扩展能够区分 TUI、RPC、JSON 和 print 模式。
  • 为扩展命令添加了 ctx.getSystemPromptOptions(),用于检查当前基础系统 Prompt 输入(#5306,感谢 @xl0)。

修复

  • 修复了临时扩展包安装使用带 0700 权限的私有 ~/.pi/agent/tmp/extensions 目录,而非 os.tmpdir()/pi-extensions
  • 修复了 git 包源处理,拒绝不安全的主机/路径组件,并将托管克隆路径保持在安装根目录内。
  • 修复了 HTML 会话导出中的存储型 XSS,通过剥离控制字符后使用方案白名单清理 Markdown 链接和图片 URL。
  • 修复了 SDK 嵌入在捆绑的 Node 应用中因缺少 package.json 而导致 ENOENT 失败的问题。包元数据读取器现在通过使用默认值优雅地处理缺失的 package.json,无需在运行时提供包相邻文件即可使用 createAgentSession()#5226)。
  • 修复了 HTTP 超时设置未对非 Codex Provider(如通过 OpenAI 兼容 API 的 llama.cpp)生效的问题。httpIdleTimeoutMs 设置(通过 /settings HTTP 超时设置)现在作为所有支持 Provider 的默认 SDK 请求超时,而不仅仅是 OpenAI Codex Responses。禁用超时(HTTP 超时 = false)现在通过发送最大 int32 值(有效无限)而非 0 来正确禁用所有支持 Provider 的 SDK 超时,因为 SDK 将 timeout=0 视为立即超时(#5294)。
  • 修复了 Amazon Bedrock 请求,用占位符替换空白的必填 user/tool-result 文本,并跳过空白的重放文本块(#4975)。
  • 修复了 Anthropic Claude Opus 4.7+ 请求,抑制已弃用的 temperature 参数(#5251,感谢 @yzhg1983)。
  • 修复了 OpenAI GPT-5.5 生成元数据,省略不支持的 minimal thinking(#5243)。
  • 修复了 OpenRouter Kimi K2.6 thinking 重放和 developer-role 指令处理(#5309)。
  • 修复了 OpenRouter reasoning 指令请求,按需保留 system 角色(#5221,感谢 @PriNova)。
  • 修复了 overlay 焦点恢复,使非捕获 overlay 在 UI 重渲染和显式焦点释放后保持可交互(#5235,感谢 @nicobailon)。
  • 修复了列切片和 overlay 合成中的 tab 宽度计算,使包含 tab 的输出不会超过终端宽度(#5218)。
  • 修复了打开和列出超大 JSONL 会话文件,改为逐行读取会话条目而非将整个文件作为单个字符串实例化(#5231)。
  • 修复了 WSL /mnt/... 仓库中页脚分支显示在分支变更后刷新的问题(#5264,感谢 @psoukie)。
  • 修复了 renderShell: "self" 工具渲染器未输出组件行时留下空白聊天行的问题(#5299)。
  • 恢复了 NVIDIA Qwen 3.5 122B NIM 模型支持。
Pi AI

新增

  • 添加了 Ant Ling 作为内置 OpenAI 兼容 Provider,支持 Ling 2.6 和 Ring 2.6 模型。
  • minimaxminimax-cn 直接 Provider 添加了 MiniMax-M3 模型,并移除了掩盖 models.dev 值的硬编码上下文窗口覆盖(#5313)。
  • 添加了 NVIDIA NIM 作为内置 OpenAI 兼容 Provider,公开支持 tool use 的公共 NIM 模型。

修复

  • 修复了 Amazon Bedrock 请求,用占位符替换空白的必填 user/tool-result 文本,并跳过空白的重放文本块(#4975)。
  • 修复了 Anthropic Claude Opus 4.7+ 请求,抑制已弃用的 temperature 参数(#5251,感谢 @yzhg1983)。
  • 修复了 OpenAI GPT-5.5 生成元数据,省略不支持的 minimal thinking(#5243)。
  • 修复了 OpenRouter Kimi K2.6 thinking 重放,并为 OpenRouter OpenAI 和 Anthropic 模型保留 developer-role 指令(#5309)。
  • 修复了 OpenRouter reasoning 指令请求,按需保留 system 角色(#5221,感谢 @PriNova)。
  • 恢复了 NVIDIA Qwen 3.5 122B NIM 模型。
Pi TUI

修复

  • 修复了 overlay 焦点恢复,使非捕获 overlay 在 UI 重渲染和显式焦点释放后保持可交互(#5235,感谢 @nicobailon)。
  • 修复了列切片和 overlay 合成中的 tab 宽度计算,使包含 tab 的输出不会超过终端宽度(#5218)。

v0.78.0(2026-05-29)

Pi Coding Agent

新功能

  • 命名启动会话--name / -n 可在交互、打印、JSON 和 RPC 模式下于启动前设置会话显示名称。参见 命名会话会话选项
  • 可点击的文件工具路径 — 内置文件工具的标题在终端支持时会渲染 OSC 8 file:// 超链接,包括支持的 tmux 客户端。

新增

  • 为扩展作者导出了 convertToPng#5167,感谢 @xl0)。
  • 为扩展作者导出了 parseArgs 和类型 Args#5202,感谢 @xl0)。
  • 添加了 --name / -n 以在启动时设置会话显示名称(#5153)。
  • 退出交互会话时添加了 resume 命令提示(#5176,感谢 @yzhg1983)。
  • 内置文件工具标题中的文件路径添加了 OSC 8 file:// 超链接(#5189,感谢 @mpazik)。
  • 添加了自定义 Amazon Bedrock 请求头支持(来自 @earendil-works/pi-ai)(#5178,感谢 @stephanmck)。

修复

  • 澄清了 WezTerm/WSL IME 硬件光标文档,说明光标可见性仍是可选的(#5200)。
  • 修复了 GitLab Duo 自定义 Provider 示例,使其对 Claude 模型使用 adaptive thinking、暴露 xhigh thinking 并包含更新的已验证模型 ID(#5201)。
  • 修复了 Bun 发布归档的创建流程,确保安装并复制匹配的 @mariozechner/clipboard 基础包和原生 sidecar(#5184)。
  • 修复了提示循环启动前输入的早期交互输入被丢弃的问题,现改为缓冲处理(#5195,感谢 @yzhg1983)。
  • 修复了 OpenRouter Moonshot Kimi K2.6 请求使用 system 而非不支持的 developer 消息(#5159)。
  • 修复了 OpenCode Go Kimi K2.6 thinking 请求发送 thinking 对象而非无效字符串值,并修复了 OpenCode Zen Grok Build thinking 请求省略不支持的 reasoning_effort#5169)。
  • 修复了 OpenAI Codex Responses SSE 流,在终端事件后中止响应体读取。
  • 修复了 OpenCode Kimi K2.6 生成的元数据,使用 Anthropic 风格的 thinking 元数据而非无效的 reasoning-effort 参数。
  • 修复了 OSC 8 超链接在客户端支持时通过 tmux 传递(#5189,感谢 @mpazik)。
  • 修复了 ANSI 文本换行,避免超长换行时发生栈溢出(#5185)。
Pi AI

不兼容变更

  • 更改了直接 Provider 流函数,要求显式传入 options.apiKey;顶层 stream*/complete* 辅助函数仍保留内置环境认证。

新增

  • 通过 StreamOptions.headers 添加了自定义 Amazon Bedrock 请求头支持,排除了保留的 AWS 签名头(#5178,感谢 @stephanmck)。

修复

  • 修复了 OpenRouter Moonshot Kimi K2.6 请求使用 system 而非不支持的 developer 消息(#5159)。
  • 修复了 OpenCode Go Kimi K2.6 thinking 请求发送 thinking 对象而非无效字符串值,并修复了 OpenCode Zen Grok Build thinking 请求省略不支持的 reasoning_effort#5169)。
  • 修复了 OpenAI Codex Responses SSE 流,在终端事件后中止响应体读取。
  • 修复了 OpenCode Kimi K2.6 生成的元数据,使用 Anthropic 风格的 thinking 元数据而非无效的 reasoning-effort 参数。
Pi TUI

修复

  • 修复了 ANSI 文本换行,避免超长换行时发生栈溢出(#5185)。
  • 澄清了 IME 硬件光标文档,说明光标可见性仍是可选的(#5200)。
  • 修复了 OSC 8 超链接在客户端支持时通过 tmux 传递(#5189,感谢 @mpazik)。

v0.77.0(2026-05-28)

Pi Coding Agent

新功能

  • Claude Opus 4.8 支持 — 新增 Anthropic Claude Opus 4.8 元数据,并更新 Opus adaptive-thinking 覆盖范围。
  • 选择性工具禁用--exclude-tools / -xt 可禁用指定的内置、扩展或自定义工具,其余工具保持可用。参见 工具选项
  • 无头 Codex 订阅登录/login 可使用设备码认证登录 ChatGPT Plus/Pro Codex 订阅。参见 订阅OpenAI Codex
  • 感知流式行为的扩展输入 — 扩展可通过 InputEvent.streamingBehavior 区分空闲 Prompt、流中转向和排队的后续操作。参见 输入事件

新增

  • 新增 --exclude-tools / -xt 参数,可禁用指定的内置、扩展或自定义工具,其余工具保持可用(#5109)。
  • 新增 OpenAI Codex 订阅设备码登录作为可选的无头替代方案,同时保留浏览器登录为默认方式(#4911,感谢 @vegarsti)。
  • 为扩展输入事件新增 streamingBehavior,使扩展能够区分空闲 Prompt、流中转向和排队的后续操作(#5107,感谢 @DanielThomas)。
  • 新增 Claude Opus 4.8 模型元数据(Anthropic),并更新 Opus adaptive-thinking 覆盖范围以使用它。

修复

  • 修复了启动时间输出,readPipedStdin 不再包含 createAgentSessionRuntime 的工作(#4829)。
  • 修复了 OpenRouter DeepSeek V4 xhigh reasoning 元数据,保留 OpenRouter 原生的 effort 而非发送 DeepSeek 的 max effort(#4801)。
  • 修复了自定义会话目录,使当前文件夹的 resume/continue 查找限定于当前 cwd,而 all-session 列表覆盖自定义目录。
  • 修复了 SIGTERM/SIGHUP 退出流程,运行扩展 session_shutdown 清理并恢复终端:信号触发的关闭现在在终端写入之前发出 session_shutdown,SIGHUP 不再硬退出,因此即使终端已消失,扩展资源(如 socket)也会被释放(#5080)。
  • 修复了键盘协议协商,忽略不匹配或延迟的终端响应,避免误检测 Kitty 键盘协议(#5091,感谢 @mitsuhiko)。
  • 修复了 MSYS2 ucrt64 Node.js 下 Windows 启动崩溃,通过更新原生剪贴板插件至 napi-rs 3.x(#5028)。
  • 修复了 API Key 和 Header 配置解析:将普通字符串视为字面量,支持 $ENV_VAR / ${ENV_VAR} 插值和 $! 转义,配置文件要求显式 env 语法,避免 Windows 大小写不敏感的 env 匹配破坏字面量 Key(#5095)。
  • 修复了会话销毁流程,中止进行中的 agent、compaction、branch summary、retry 和 bash 工作(#5029,感谢 @TerminallyChilI)。
  • 修复了 pi.getAllTools(),暴露每个工具的 promptGuidelines,供需要按工具归因 guideline 的扩展使用(#4879)。
  • 修复了从 Anthropic extended-thinking 会话切换到 OpenAI Codex Responses 后的回放问题,为转换的 thinking/text 块生成唯一的 fallback 消息项 ID(#5148)。
  • 修复了返回空 thinking signature 的 Provider 的 Anthropic 兼容回放,新增可选的 allowEmptySignature 兼容性标志(#4464)。
  • 修复了 OpenAI 和 OpenRouter GPT-5.5 Pro thinking level 元数据,仅暴露支持的 medium、high 和 xhigh efforts。
  • 修复了 OpenCode Go Kimi K2.6 thinking-off 请求,发送 thinking: "none"#5078)。
  • 修复了 Xiaomi Token Plan 模型元数据,省略不支持的 mimo-v2-flash 变体(#5075)。
  • 修复了由 agent_end 扩展处理器排队的后续消息,确保在 agent 变为空闲之前排出(#5115,感谢 @DanielThomas)。
  • 修复了扩展输入事件,仅在流式处理期间实际排队的 Prompt 上报告 streamingBehavior#5107,感谢 @DanielThomas)。
  • 修复了系统 Prompt 的工具选择指引,避免偏好不可用的文件探索工具(#5132)。
  • 修复了 fenced diff 代码块及其他 highlight.js 作用域,在 cli-highlight 替换后保持感知主题的语法高亮颜色(#5092)。
Pi AI

新增

  • 新增 OpenAI Codex 订阅设备码登录作为可选的无头替代方案,同时保留浏览器登录为默认方式(#4911,感谢 @vegarsti)。
  • 新增 Claude Opus 4.8 模型元数据(Anthropic),并更新 Opus adaptive-thinking 覆盖范围以使用它。

修复

  • 修复了 OpenRouter DeepSeek V4 xhigh reasoning 元数据,保留 OpenRouter 原生的 effort 而非发送 DeepSeek 的 max effort(#4801)。
  • 修复了从 Anthropic extended-thinking 会话切换到 OpenAI Codex Responses 后的回放问题,为转换的 thinking/text 块生成唯一的 fallback 消息项 ID(#5148)。
  • 修复了返回空 thinking signature 的 Provider 的 Anthropic 兼容回放,新增可选的 allowEmptySignature 兼容性标志(#4464)。
  • 修复了 OpenAI 和 OpenRouter GPT-5.5 Pro thinking level 元数据,仅暴露支持的 medium、high 和 xhigh efforts。
  • 修复了 OpenCode Go Kimi K2.6 thinking-off 请求,发送 thinking: "none"#5078)。
  • 修复了 Xiaomi Token Plan 模型元数据,省略不支持的 mimo-v2-flash 变体(#5075)。
Pi Agent

不兼容变更

  • 将 agent harness 的 model_selectthinking_level_select 事件重命名为 model_updatethinking_level_update

新增

  • 新增 agent harness 工具注册表 API、tools_update 事件、分支级活跃工具持久化和重复工具验证。
Pi TUI

修复

  • 修复了键盘协议协商,忽略不匹配或延迟的终端响应,避免误检测 Kitty 键盘协议(#5091,感谢 @mitsuhiko)。

v0.76.0(2026-05-27)

Pi Coding Agent

新功能

  • 自动化场景的显式会话 ID--session-id <id> 允许脚本创建或恢复一个精确的项目本地会话。参见 Sessions
  • RPC bash 输出可排除在模型上下文之外 — RPC 客户端可向 bash 传递 excludeFromContext,使指定命令的输出不会随下一次 Prompt 发送。参见 RPC 模式
  • 更可预测的 Provider 重试与超时 — Codex WebSocket/SSE 等待已设上限,retry.provider.maxRetries 控制 Provider 重试,取代原先隐藏的 SDK 默认值。参见 重试设置
  • 跨环境更好的终端编辑体验 — 修复了 Apple Terminal 的 Shift+Enter、Windows/JetBrains 的能力检测,以及支持 Unicode 的单词导航。参见 终端配置快捷键

新增

  • 新增 --session-id 参数,允许 CLI 调用者使用精确的项目本地会话 ID,不存在时自动创建(#4874)。
  • bash RPC 命令新增 excludeFromContext 标志,与内部 executeBash API 对齐(#5039)。

修复

  • 修复了用户消息转录渲染,保留用户编写的有序列表标记(#5013)。
  • 修复了自更新命令,显式运行 pi update 时绕过 npm、pnpm 和 Bun 的最低发布年龄门槛(#4929)。
  • 修复了上下文 Token 估算,用户图片附件现在与工具结果图片一致计数(#4983)。
  • 修复了 httpIdleTimeoutMs 应用于 OpenAI Codex Responses WebSocket 空闲等待,新增 websocketConnectTimeoutMs 限制 WebSocket 连接等待时间,并为 Codex SSE 添加了 10 秒响应头超时(#4945)。
  • 修复了 RpcClient,当子进程意外退出时拒绝待处理请求并消费 stdin 管道错误(#4764)。
  • 修复了托管 npm 扩展更新,避免包管理器将 pi 宿主包作为 peer 依赖安装或解析(#4907)。
  • 修复了 RPC 模式原始 stdout 写入,重试瞬时背压错误并在关闭期间刷新排队的协议输出(#4897)。
  • 修复了 OpenAI Codex Responses 缓存亲和性头,发送 session-id 而非与代理不兼容的 session_id#4967)。
  • 修复了 openai-codex/gpt-5.3-codex-spark 模型元数据,使用其 128k 上下文窗口(#4969)。
  • 修复了 OpenRouter/Poolside 上下文溢出检测,处理 maximum allowed input length 错误(#4943)。
  • 修复了 Provider 重试控制,retry.provider.maxRetries 现在被正确执行,SDK 重试默认为 0,配额/计费 429 错误不再被 Pi 的重试机制重试(#4991,感谢 @mitsuhiko)。
  • 修复了 Apple Terminal 的 Shift+Enter,当 Terminal.app 发送普通回车时检测本地 macOS 修饰键状态。
  • 修复了 Windows Terminal 能力检测,启用 OSC 8 超链接,使可点击的长 URL 在换行时保持有效(#4923)。
  • 修复了 JetBrains 终端能力检测,启用真彩色同时禁用不支持的 OSC 8 超链接(#5037,感谢 @Perlence)。
  • 修复了编辑器和输入的单词导航/删除,使用 Unicode 词边界同时保留 ASCII 标点符号边界(#5022,感谢 @haoqixu#5067,感谢 @haoqixu#5068,感谢 @haoqixu)。
  • 修复了开发文档中 AGENTS.md 链接,指向 pi-mono 指南(#5041)。
Pi AI

修复

  • 修复了 OpenAI Codex Responses 缓存亲和性头,发送 session-id 而非与代理不兼容的 session_id#4967)。
  • 修复了 openai-codex/gpt-5.3-codex-spark 生成的元数据,使用其 128k 上下文窗口(#4969)。
  • 修复了 OpenRouter/Poolside 上下文溢出检测,处理 maximum allowed input length 错误(#4943)。
  • 修复了 OpenAI Codex Responses WebSocket 流和 SSE 响应头等待,应用有界超时而非无限等待(#4945)。
  • 修复了 Provider 重试控制,OpenAI Codex Responses 现在正确执行 maxRetries,SDK 重试默认为 0,配额/计费 429 错误不再被重试(#4991,感谢 @mitsuhiko)。
Pi Agent

修复

  • 修复了上下文 Token 估算,用户图片附件现在与工具结果图片一致计数(#4983)。
Pi TUI

新增

  • 新增可选的 Markdown 渲染器选项,保留源文件中的有序列表标记用于转录渲染(#5013)。

修复

  • 修复了 Apple Terminal 的 Shift+Enter,当 Terminal.app 发送普通回车时检测本地 macOS 修饰键状态。
  • 修复了 Windows Terminal 能力检测,启用 OSC 8 超链接,使可点击的长 URL 在换行时保持有效(#4923)。
  • 修复了 JetBrains 终端能力检测,启用真彩色同时禁用不支持的 OSC 8 超链接(#5037,感谢 @Perlence)。
  • 修复了编辑器和输入的单词导航/删除,使用 Unicode 词边界同时保留 ASCII 标点符号边界(#5022,感谢 @haoqixu#5067,感谢 @haoqixu#5068,感谢 @haoqixu)。

v0.75.5(2026-05-23)

Pi Coding Agent

新功能

  • 更清晰的 read 工具输出 — 折叠的 read 工具卡片现在默认只显示读取的行,按 Ctrl+O 仍可展开查看完整文件内容。
  • Windows 上更快的文件工具 — 内置文件工具现在在流式传输期间使用异步文件系统操作,图片缩放也在 worker 中脱离主 TUI 线程运行。
  • 更可靠的包更新pi update 和 git 包安装现在会协调固定的 git ref 并保持包设置完整。参见 Packages
  • 自定义 Anthropic 兼容模型的自适应思考 — 自定义 Provider 模型配置可通过 compat.forceAdaptiveThinking 启用自适应思考 Claude 行为。参见 自定义 Provider模型

新增

  • 为自定义 Anthropic 兼容模型配置文档和验证添加了 compat.forceAdaptiveThinking 支持(#4797,感谢 @mbazso)。
  • 为 SDK 消费者添加了编辑工具结果详情的标准统一补丁(#4821)。

变更

  • 折叠的 read 工具卡片现在默认仅显示读取的行,展开后才显示完整内容(#4916)。
  • 修改了根开发安装文档,使用 npm install --ignore-scripts#4868)。

修复

  • 修复了 pi update 将 git-pinned 包协调到其配置的 ref(#4869)。
  • 修复了 Windows 上的包/资源路径处理和 glob/模式解析(#4873,感谢 @mitsuhiko)。
  • 修复了配置模式匹配,从正确的基础目录解析模式(#4898,感谢 @haoqixu)。
  • 修复了主题选择器,按其内容名称而非文件名列出主题(#4830,感谢 @Perlence)。
  • 修复了 OpenCode Zen/Go 请求发送每个会话的 OpenCode 路由头(#4847)。
  • 修复了 Amazon Bedrock Provider 在严格包管理器下的加载,采用 @earendil-works/pi-ai 中声明的 @smithy/node-http-handler 依赖(#4842)。
  • 修复了 Amazon Bedrock Claude 请求默认发送模型输出 Token 上限,避免 Bedrock 的 4096 Token 默认截断(#4848)。
  • 修复了导出的会话 HTML,对属性值中的引号字符进行转义(#4832)。
  • 修复了 GitHub Copilot 设备码登录,在浏览器可用环境中持续打开验证 URL,同时忽略无头使用的浏览器启动失败(#4788,感谢 @vegarsti)。
  • 修复了 git 包安装,将现有检出与请求的 ref 对齐,并在不丢失过滤器的情况下更新包设置(#4870)。
  • 发布了 0.74.2 救援版本,告知 Node 20 用户在更新到更新版 Pi 之前先升级 Node(#4876)。
  • 修复了最终 bash 工具卡片,避免渲染重复的完整输出截断路径(#4819)。
  • 修复了 bash 工具截断行数统计,忽略尾随换行符作为额外输出行(#4818)。
  • 修复了底栏主目录缩写,避免缩短仅共享同一前缀的兄弟路径(#4878)。
  • 修复了 macOS Bun 发布二进制文件,解析原生剪贴板 sidecar,使 Ctrl+V 图片粘贴可以加载 @mariozechner/clipboard#4307)。
  • 修复了 coding-agent 工具,避免在流式传输期间使用同步文件系统操作,并将图片缩放移出主 TUI 线程(#4756,感谢 @mitsuhiko)。
Pi AI

不兼容变更

  • 修改了 OAuthLoginCallbacks,要求提供 onDeviceCodeonSelect,以便 OAuth Provider 可以依赖 Pi 提供设备码和选择界面回调。

修复

  • 修复了自定义 Anthropic 兼容模型别名,通过添加 compat.forceAdaptiveThinking 模型元数据并将内置 adaptive-thinking 选择移出 Provider ID 子字符串检查(#4797,感谢 @mbazso)。
  • 修复了 GitHub Copilot OAuth 登录,依赖必需的设备码回调,无需运行时回调可用性保护。
  • 修复了 Amazon Bedrock Provider 在严格包管理器下的加载,声明其直接的 @smithy/node-http-handler 依赖(#4842)。
  • 修复了 Amazon Bedrock Claude 请求默认发送模型输出 Token 上限,匹配 Anthropic 请求并避免 Bedrock 的 4096 Token 默认截断(#4848)。
Pi TUI

变更

  • 将 Windows VT 输入的可选 koffi 依赖替换为小型内嵌原生辅助,减少安装体积的同时保留 Shift+Tab 处理(#4480)。

v0.75.4(2026-05-20)

Pi Coding Agent

新功能

  • 加固的 npm 安装与发布流程 — Pi CLI 现在附带生成的 shrinkwrap 来锁定传递依赖,阻止意外修改 lockfile,在检查中验证依赖固定和生命周期脚本白名单,在支持的平台上禁用自更新和本地发布安装的生命周期脚本,并在发布前对隔离的 npm 和 Bun 安装进行冒烟测试。

新增

  • pi update 运行后显示交互式更新说明,用户可在继续前查看已安装版本的变更日志(#4724,感谢 @mitsuhiko)。
  • 从包根目录导出了图像缩放工具函数,供 SDK 消费者使用(#4775,感谢 @xl0)。

变更

  • 修改源码语法,避免需要 JavaScript 产出的 TypeScript 构造,使核心源码兼容 Node.js 的 strip-only 类型检查。
  • 从 CLI 包中移除了 Web UI 工作空间引用和包级开发 watch 脚本。
  • 发布的 npm 安装包现在包含 npm-shrinkwrap.json 以锁定 CLI 包的传递依赖。
  • 改进了终端主题检测,优化了浅色/深色模式和真彩色处理。
  • 自更新包管理器命令现在在重新安装时禁用生命周期脚本。

修复

  • 修复系统提示,使模型在读取特定主题的相对引用前,先解析 pi 文档和示例的绝对包路径(#4752)。
  • 修复了扩展 ctx.abort() 在 tool call 预检期间停止后续确认并恢复队列中的交互输入(如 Escape)(#4276)。
  • 修复了 AgentSession 的重试、压缩和事件结算,改为使用等待的 Agent 生命周期而非独立事件队列,并在 agent_end 会话事件中添加了 willRetry
  • 修复了分叉会话的运行时状态,使活动会话 ID 与分叉目标保持一致(#4799,感谢 @Perlence)。
  • 修复了子 Agent 扩展的并行模式,使其向父模型返回有用的每任务输出和失败任务诊断信息,而非仅 100 字符的预览(#4710)。
  • 修复了 Windows 本地 bash 执行,在后台 SDK 进程启动时隐藏辅助控制台窗口(#4699)。
  • 修复了托管的 npm 扩展文件夹,在支持的平台上设置云同步忽略元数据(#4763)。
  • 修复了 HTTP 空闲超时配置,使长时间运行的 Provider 流避免过早的空闲断开(#4759,感谢 @mitsuhiko)。
  • 修复了默认系统提示的边界,使用显式的 XML 标签实现更清晰的文件分隔(#4709,感谢 @herrnel)。
  • 修复了 HTML 分享/导出侧边栏中共享工具条目的点击,使其滚动到已渲染的 tool call(#4664,感谢 @yzhg1983)。
  • 修复了主题调色板,设置明确的文本颜色以避免终端默认颜色漂移。
  • 修复了真彩色检测,使终端图像渲染和交互主题决策保持一致。
  • 修复了来自 @earendil-works/pi-tui 的加载指示器启动逻辑,确保初始化不会在帧可用前运行。
  • 修复了来自 @earendil-works/pi-ai 的 OpenAI 兼容默认输出 token 请求,避免在 vLLM 等服务器上预留不可能完成的上下文窗口(#4675)。
  • 修复了来自 @earendil-works/pi-ai 的 OpenAI prompt 缓存键,使其保持在 64 字符的 Provider 限制内(#4720)。
  • 修复了 Windows 上 fnm 管理的 Node.js 安装的 npm 系列包命令,这些安装同时暴露了无扩展名的 Unix 脚本和 .cmd 存根(#4793)。
Pi TUI

变更

  • 移除了包级开发 watch 脚本,因为根级别的 TypeScript 检查现在已验证 strip-only 兼容的源码。

修复

  • 修复了加载器初始化,确保指示器启动不会在帧初始化前运行。
  • 修复了真彩色能力检测,使终端图像渲染与交互主题检测器保持一致。
Pi Agent

变更

  • 修改源码语法,避免需要 JavaScript 产出的 TypeScript 构造,保持包与 Node.js strip-only 类型检查兼容。
  • 移除了包级开发 watch 脚本。

修复

  • 修复了 tool call 预检在运行中止后停止准备兄弟 tool call(#4276)。
  • 修复了以换行符结尾的超长单行输出的尾部截断(#4715)。
  • 修复了 Windows Node 执行环境的命令启动,在后台进程中隐藏辅助控制台窗口(#4699)。
Pi AI

变更

  • 修改源码语法,避免需要 JavaScript 产出的 TypeScript 构造,保持包与 Node.js strip-only 类型检查兼容。
  • 移除了包级开发 watch 脚本。

新增

  • 新增了一流的 OAuth 设备码回调元数据、共享轮询支持和 GitHub Copilot OAuth 集成。

修复

  • 修复了 OpenAI 兼容的 streamSimple() 请求,停止发送模型派生的默认输出 token 上限,避免在 vLLM 等服务器上发生上下文窗口预留失败,同时保留显式的 maxTokens 和必需的 Anthropic max_tokens 处理(#4675)。
  • 修复了 OpenAI prompt 缓存键,将会话派生值限制在 64 字符的 API 限制内(适用于 OpenAI Responses、Chat Completions、Codex Responses 和 Azure OpenAI Responses)(#4720)。

v0.75.3(2026-05-18)

Pi Coding Agent

修复

  • 在模型选择器完成后刷新可用模型列表,使新增的 Provider 和模型立即可见。
  • 修复了终端关闭或 SSH 断开时的静默退出,确保 pi 正确关闭会话并清理系统任务。
  • 改进了失效会话的扩展生命周期,在发出 session_shutdown 后从扩展中移除过期的 withSession 回调。
  • 修复了通过外部编辑器编辑后在 pi -p 中错误应用扩展标志的问题。
  • 修复了 /compact 提示参数在命令行解析中被丢弃的问题。
  • 修复了自动密钥登录选择器面板在某些 Provider 上显示为空白的问题。
Pi AI

修复

  • 修复了 OpenAI 兼容的 token 计数,使用 tiktoken 解析器的 encodeSingle 方法以处理非 UTF-8 编码的输入,提高可靠性。
Pi Agent

修复

  • 修复了会话 fork 和克隆后运行时状态未完全重建的问题,确保所有内部回调指向正确的会话实例。

v0.75.2(2026-05-18)

Pi Coding Agent

修复

  • 为 piped 输入增加了 --print 模式的 ANSI 检测,防止二进制数据混乱终端状态。
  • 修复了 pi 在 Python 单元测试的 subprocess.run() 中启动时无法正确刷新输出的问题。
  • 修复了 /compact 设置默认提示时的问题。
Pi TUI

修复

  • 修复了 TUI 输出刷新处理,确保在管道和非 TTY 环境中正确工作。

v0.75.1(2026-05-18)

Pi Coding Agent

新增

  • 启动时检查更新 — Pi 现在在启动时检查新版本并通知用户更新可用,而非仅在显式运行 pi update 时检查。

变更

  • 在构建时预编译扩展宿主,以消除 jiti 导入开销,加快扩展加载速度。
  • 自动完成菜单现在出现在编辑器文本上方而非重叠,在编辑器靠近屏幕底部时提供更好的可见性。

修复

  • 修复了编辑视图滚动和 PageDown 处理。
  • 修复了 /compact 设置默认压缩提示的处理。
  • @earendil-works/pi-tui@earendil-works/pi-ai 作为外部依赖,保持 CLI 包体积紧凑。
  • 修复了保存的会话在加载后无法通过自定义 Keybindings 切换模型的问题。
Pi TUI

新增

  • 在包入口点导出了 EditorShelf 类型。

变更

  • 自动完成下拉菜单现在浮动在编辑器上方而非重叠,提供更好的可见性。
  • @napi-rs/clipboard 设为可选依赖。

修复

  • 修复了编辑视图的滚动溢出行为。
  • 修复了水平滚动和 PageDown 键的处理。

v0.75.0(2026-05-17)

Pi Coding Agent

新功能

  • 事件驱动的自更新 — Pi 现在通过自动版本检查支持更可靠的自更新,检测到新版本时显示通知。支持 pi updatepi update self 命令。参见 Usage
  • Model Context Protocol (MCP) 工具支持 — Pi 扩展现在可以注册 MCP 工具客户端。使用 pi.registerMCPServer() 配置 MCP 服务器,在会话启动时自动连接。参见 Extensions
  • Shell 环境配置 — Pi 新的 Shell 环境设置允许自定义 SHELLTERMCOLORTERM 环境变量。参见 Settings
  • /compact 默认提示/compact 命令现在接受可选提示词来自定义压缩摘要的重点。

变更

  • 重构了 Provider 模型解析,改进对 Provider 前缀模型解析和 Provider 回退处理的错误报告。
  • 重构包以简化依赖结构,拆分 watch 和开发脚本。
  • 依赖项 @inquirer/prompts 更新到 7.6.0。
  • ANSI 处理更新以匹配 strip-ansi 行为。
  • 使用标准 uuid 包生成 UUIDv7,替代之前的 nanoid 实现。
  • 改进自动完成滚动指示器,并在无匹配时清除自动完成。

修复

  • 修复了 ANSI 剥离以匹配移除依赖后的 strip-ansi 行为。
  • 修复了会话 ID 共享的 UUIDv7 序列生成。
  • 修复了来自 @earendil-works/pi-ai 的 OpenRouter 缓存 token 使用统计、Fireworks 缓存兼容性和 OpenAI Codex WebSocket 代理处理。
  • 修复了来自 @earendil-works/pi-tui 的 Markdown 列表换行、任务列表复选框、大 Markdown 渲染、WezTerm Kitty 键盘转义处理和短视口内联图像放置。
  • 修复了跨包作用域的主题共享,使扩展不会因 Theme not initialized 崩溃(#4333)。
  • 修复了快捷键提示在 macOS 上显示 Option 而非 Alt(#4289)。
  • 修复了交互式更新通知,在终端支持超链接时将会话日志渲染为 OSC 8 超链接(#4280)。
Pi TUI

变更

  • 移除了 nanoid UUID 生成,改用标准 uuid 包。
  • 更新 ANSI 处理以匹配 strip-ansi 行为。
  • 移除了包级开发 watch 脚本。

修复

  • 修复了 Markdown 列表换行,避免在列表标记后错误换行。
  • 修复了 Markdown 任务列表复选框渲染。
  • 修复了大 Markdown 内容的高效渲染。
  • 修复了 WezTerm 中 CSI-u 修饰键的 Kitty 键盘协议处理。
  • 修复了短视口中内联图像的放置。
  • 修复了在选择器和自动完成组件中按预期显示滚动指示器。
Pi Agent

变更

  • 移除了包级开发 watch 脚本。

修复

  • 修复了错误边界在指示错误时重新抛出异常。
  • 修复了 tool call 预检使得相邻 tool call 在并行解析期间检测到上下文溢出时正确失败。
Pi AI

变更

  • 重构包以简化依赖结构,拆分 watch 和开发脚本。
  • 移除了 nanoid UUID 生成,改用标准 uuid 包。

修复

  • 修复了 OpenRouter 缓存的 token 使用统计处理。
  • 修复了 Fireworks 平台缓存的兼容性处理。
  • 修复了 OpenAI Codex WebSocket 代理处理。
  • 修复了 OpenAI 兼容流中交错的 content 和 tool call delta 处理。

v0.74.1(2026-05-16)

Pi Coding Agent

新功能

  • OpenAI Codex WebSocket 传输 — 新的 websocket-cached 传输模式为 ChatGPT Plus/Pro 用户保持 WebSocket 连接,实现更快的后续请求。参见 Providers

新增

  • 为 Anthropic 模型支持了扩展的思考(thinking)块级别 highxhigh
  • 为 ChatGPT Pro 用户新增了 o3o4-mini 模型。

变更

  • 将包作用域从 @mariozechner 迁移到 @earendil-works
  • @earendil-works/pi-tui@earendil-works/pi-ai 现在作为外部依赖,减小 CLI 包体积。
  • 改进了 pi update 命令,支持包名映射和重命名检测。

修复

  • 修复了子 Agent 扩展,当未提供 contextWindow 时正确获取 Provider 的模型上下文窗口。
  • 修复了扩展文件名检测,支持子目录中的嵌套扩展。
  • 修复了模型选择器中模型显示名称的格式化。
  • 修复了 @earendil-works/pi-tui 中的加载器范围和元数据键。
  • 修复了外部编辑器编辑后的扩展标志应用。
Pi AI

新增

  • 为 Anthropic 模型支持了扩展的思考块级别 highxhigh

变更

  • 将包作用域从 @mariozechner 迁移到 @earendil-works
  • 重构了 Provider 流处理,支持 WebSocket 传输。

修复

  • 修复了 OpenAI Codex WebSocket 传输在流式和非流式模式下的处理。
  • 修复了流式响应的传输编码处理。
Pi Agent

变更

  • 将包作用域从 @mariozechner 迁移到 @earendil-works

修复

  • 修复了 Agent 循环中的传输错误处理。
  • 修复了子 Agent 扩展的上下文窗口配置。
Pi TUI

变更

  • 将包作用域从 @mariozechner 迁移到 @earendil-works
  • 移除了 @napi-rs/clipboard 依赖,改用纯 JavaScript 剪贴板实现。

修复

  • 修复了 WezTerm 中的 Kitty 键盘协议处理。
  • 修复了 macOS 上加载器指示器的渲染问题。

v0.74.0(2026-05-07)

Pi Coding Agent

变更

  • 更新了仓库链接和包引用,迁移到 earendil-works/pi-mono@earendil-works/* 包作用域。

v0.73.1(2026-05-07)

Pi Coding Agent

新功能

  • npm 作用域迁移的自更新支持pi update --self 现在支持即将到来的包名从 @mariozechner/pi-coding-agent@earendil-works/pi-coding-agent 的迁移。新包发布后,现有的全局安装可以通过正常的自更新流程更新;pi 会卸载旧的全局包并安装版本检查端点返回的包名。
  • 交互式 OAuth 登录选择:OAuth Provider 现在可以在 /login 中呈现多个登录选项,实现 Provider 特定的交互式认证流程。参见 Providers
  • JSONC 风格 models.json 解析models.json 现在支持注释和尾逗号,使自定义 Provider 和模型配置更易于维护。参见 ProvidersCustom Providers

新增

  • 新增了交互式登录选择支持,使 OAuth Provider 可以呈现多个登录选项(#4190,感谢 @mitsuhiko)。

变更

  • pi update --self 现在遵循 Pi 版本检查端点返回的活动包名,省略时默认当前包,并在安装重命名包前卸载旧的全局包。
  • 扩展加载改用上游 jiti 2.7 替代 @mariozechner/jiti 分支(#4244,感谢 @pi0)。
  • models.json 解析现在允许注释和尾逗号(#4162,感谢 @julien-c)。

修复

  • 修复了 pi -p 将以 YAML frontmatter 开头的提示误认为扩展标志而非用户消息的问题(#4163)。
  • 修复了在工具运行时切换思考块可见性后,待处理的工具结果未在实时 TUI 中更新的问题(#4167)。
  • 修复了 /copy 在仅有 Wayland 的合成器(Hyprland、Niri 等)上报告成功但未写入剪贴板的问题——在 Linux 上跳过了仅 X11 的原生插件,改用 wl-copy/xclip/xsel#4177)。
  • 修复了 HTML 会话导出,从渲染的用户消息中剥离 Skill 包装 XML(#4234,感谢 @aliou)。
  • 修复了在同一 choice 中交错 content 和 tool call delta 的 OpenAI 兼容聊天补全流。
  • 修复了 OpenAI Codex OAuth 刷新失败在 TUI 活动时直接写入 stderr 的问题(#4141)。
  • 修复了 OpenAI Codex Responses 请求发送非空系统提示的问题(#4184)。
  • 修复了 Kimi For Coding 模型中 Kimi K2 P6 别名的模型解析(#4218)。
  • 修复了 Kitty 内联图像重绘保持在 TUI 拥有的终端区域内,避免写入活动视口下方。
  • 修复了 Kitty 内联图像渲染,让终端分配图像 ID 并将解析的图像 ID 限制在有效值内。
  • 修复了内联图像能力检测,在 cmux 终端中禁用内联图像。

v0.73.0(2026-05-04)

Pi Coding Agent

新功能

  • 小米 MiMo API 计费和区域 Token Plan Providerxiaomi 现在使用 API 计费,包含独立的 xiaomi-token-plan-{cn,ams,sgp} Provider。参见 Providers。(#4112,感谢 @Phoen1xCode
  • 增量 bash 输出流式传输 — Bash 工具输出现在在命令运行时即可看到,而非仅在完成后显示。(#4145
  • 紧凑的 read 渲染 — Pi 文档、上下文文件和技能的交互式 read 输出默认折叠,并显示选定的行范围。

不兼容变更

  • 将内置的 xiaomi Provider 从 Token Plan AMS 切换到小米的 API 计费端点,并将其 /login 显示名称从 "Xiaomi MiMo Token Plan" 改为 "Xiaomi MiMo"。XIAOMI_API_KEY 现在指向来自 platform.xiaomimimo.com 的 API 计费密钥。Token Plan 用户应切换到相应的 xiaomi-token-plan-* Provider 并设置对应的环境变量(#4112,感谢 @Phoen1xCode)。

新增

  • 新增了三个小米 MiMo Token Plan 区域 Provider:xiaomi-token-plan-cnXIAOMI_TOKEN_PLAN_CN_API_KEY)、xiaomi-token-plan-amsXIAOMI_TOKEN_PLAN_AMS_API_KEY)、xiaomi-token-plan-sgpXIAOMI_TOKEN_PLAN_SGP_API_KEY),每个默认使用 mimo-v2.5-pro 模型(#4112,感谢 @Phoen1xCode)。

变更

  • read 工具渲染现在默认在交互式输出中折叠 Pi 文档、AGENTS/CLAUDE 上下文文件和 SKILL.md 的内容。

修复

  • 修复了为 Qwen 3.5/3.6 和 MiniMax M2.7 生成的 OpenAI 兼容模型元数据,使这些模型通过内置 Provider 目录正常工作(#4110,感谢 @jsynowiec)。
  • 修复了 Bedrock Claude Opus 4.7 的 xhigh 思考请求,保留 Provider 的原生效值。
  • 修复了 OpenAI Codex WebSocket 传输,在流开始前设置失败时回退到 SSE,并在助手消息中显示传输诊断信息(#4133)。
  • 修复了 OpenAI Codex WebSocket 传输在会话关闭时关闭缓存的 WebSocket 会话,避免 --print 和 JSON 模式进程在响应后保持存活(#4103)。
  • 修复了紧凑 read tool call 直接渲染并在交互式输出中包含选定行范围。
  • 修复了交互式会话在终端输入丢失时退出而非继续处于损坏状态。
  • 修复了 bash 工具输出在命令运行时增量流式传输,而非等待命令完成(#4145)。
  • 修复了选择器和自动完成的模糊排序,优先精确匹配。

v0.72.1(2026-05-02)

无显著变更。

v0.72.0(2026-05-01)

Pi Coding Agent

新功能

  • 小米 MiMo Token Plan Provider — 新增 Anthropic 兼容的 Provider,支持 XIAOMI_API_KEY 认证,默认模型 mimo-v2.5-pro,支持 /login 显示。参见 Providers。(#4005,感谢 @Phoen1xCode
  • 模型思考级别元数据 — 模型现在可以通过 thinkingLevelMap 声明支持的思考级别,替代旧的 reasoningEffortMap。参见 ModelsCustom Providers。(#3208
  • 自定义 Provider 基础 URL 覆盖pi.registerProvider() 现在支持逐模型的 baseUrl 设置。参见 Custom Providers。(#4063
  • 回合后停止回调 — Agent 循环现在可以通过 shouldStopAfterTurn 在完成一个回合后优雅退出。
  • 自更新检测修复 — Pi 现在能正确识别并应用可用更新。(#3942#3980#3922

不兼容变更

  • models.jsonpi.registerProvider() 模型定义中的 compat.reasoningEffortMap 替换为模型级别的 thinkingLevelMap#3208)。迁移方式:将旧映射从 compat.reasoningEffortMap 移至 thinkingLevelMap。使用字符串值表示 Provider 特定的思考值,使用 null 表示不支持且应在循环中隐藏和跳过的 pi 级别。

新增

  • 新增小米 MiMo Token Plan Provider 支持(#4005,感谢 @Phoen1xCode)。
  • 新增模型级别的 thinkingLevelMap 支持,使模型只暴露它们实际支持的思考级别(#3208)。
  • 新增 shouldStopAfterTurn Agent 循环回调,用于回合后停止控制。

修复

  • 修复了默认传输设置为 auto,使 OpenAI Codex 在可用时使用缓存的 WebSocket 上下文(#4083)。
  • 修复了 pi.registerProvider() 遵循逐模型的 baseUrl 覆盖(#4063)。
  • 修复了自更新检测,使 pi 能正确识别新版本并应用更新(#3942#3980#3922)。

v0.71.1(2026-05-01)

Pi Coding Agent

新增

  • 为 ChatGPT 订阅认证使用的 OpenAI Codex Provider 新增了 websocket-cached 传输选项。该模式在同一会话中保持 WebSocket 打开,首次请求后仅发送新增的对话内容而非重新发送完整聊天历史。

v0.71.0(2026-04-30)

Pi Coding Agent

不兼容变更

  • 移除了内置的 Google Gemini CLI 和 Google Antigravity 支持。使用这些 Provider 的现有配置必须切换到其他受支持的 Provider。

新功能

  • Cloudflare AI Gateway Provider 支持 — 支持 CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_ID/CLOUDFLARE_GATEWAY_ID 认证,默认模型解析和 /login 显示。参见 Providers。(#3856,感谢 @mchenco
  • OpenAI Responses API 支持 — 使用 compat: "openai-responses" 的新 o3o4-mini 模型可通过兼容层使用。参见 Models。(#3898,感谢 @joshblum
  • OpenAI Codex WebSocket 传输 — 新的 transport 设置支持 websocket 模式以实现更快的 ChatGPT 订阅认证请求。参见 Providers。(#3930,感谢 @f
  • Anthropic 扩展思考级别 — Anthropic 模型现在支持 highxhigh 思考级别。参见 Keybindings。(#3953,感谢 @mitsuhiko
  • GitHub Models Provider — 新的 GitHub Models Provider 支持通过 GitHub API 密钥访问模型。参见 Providers。(#3840,感谢 @joshblum
  • OpenAI 新模型 o3o4-mini — 通过 OpenAI Responses API 使用。参见 Models

新增

  • 新增 Cloudflare AI Gateway Provider。
  • 新增 OpenAI Responses API 兼容支持。
  • 新增 OpenAI Codex WebSocket 传输支持。
  • 新增 Anthropic highxhigh 思考级别。
  • 新增 GitHub Models Provider。
  • 新增 OpenAI o3o4-mini 模型。

修复

  • 修复了内置 Codex 模型元数据中 maxOutput 值和聊天补全与响应 API 之间的 maxTokens 默认值。
  • 修复了工具列表系统提示生成,正确包含上下文中的自定义工具。
  • 修复了 macOS 上终止 pi 时残留的 bash 子进程。
  • 修复了会话共享命令在非 TTY 环境中的优雅降级。

v0.70.6(2026-04-28)

Pi Coding Agent

修复

  • 修复了 TUI 在等待最终响应时标记后端进程为孤立进程并提前退出的问题。
  • 修复了聊天补全 Provider 的思考级别支持检测。
  • 修复了 streamSimple 模型中思考块中的 redacted 文本处理。
  • 修复了 maxOutput 设置与 Provider 的 maxTokens 的协调。
  • 修复了控制台应用控制序列(DCS)字符串的处理,改进终端兼容性。
Pi AI

修复

  • 修复了 streamSimple 模型中思考块的 redacted 文本聚合。
  • 修复了聊天补全 Provider 的思考级别支持检测。
  • 修复了 maxOutput 与 Provider 的 maxTokens 之间的映射。

v0.70.5(2026-04-27)

Pi Coding Agent

修复

  • 修复了自动 Keybinding 帮助弹窗意外出现的问题。
  • 修复了在某些终端配置中 TUI 布局在启动时被截断的问题。
Pi TUI

修复

  • 修复了编辑器内文本和行号的水平滚动同步。

v0.70.4(2026-04-27)

Pi Coding Agent

修复

  • 紧急修复了某些终端中启动时 TUI 渲染失败的问题。

v0.70.3(2026-04-27)

Pi Coding Agent

新增

  • 模型上下文大小显示/session 现在显示上下文中使用的 Token 数和模型的最大 Token 数。

修复

  • 修复了 Agent 事件队列处理,确保 tool_execution_startmessage_start 之后的正确顺序。
  • 修复了 pi -p 中通过 @ 引用文件但文件不存在时的优雅降级。
  • 修复了自定义 Provider 中 Anthropic 兼容的 max_tokensmax_completion_tokens 设置。
  • 改进了 Git 变更检测以更好地处理未跟踪的文件。
Pi AI

修复

  • 修复了 streamSimple 中非标准 max_tokens 字段名的处理。
Pi Agent

修复

  • 修复了事件发射顺序,确保 tool_execution_startmessage_start 之后可靠排序。

v0.70.2(2026-04-24)

Pi Coding Agent

修复

  • 修复了某些 Linux 终端中后备颜色主题检测的兼容性。
  • 修复了非交互式模式下的会话保存行为。

v0.70.1(2026-04-24)

Pi Coding Agent

修复

  • 修复了在终端调整大小时主题颜色的重新计算。
  • 修复了 Windows 上 Git Bash 的 shell 路径检测。
  • 修复了 macOS 上后台进程的进程组处理。
Pi AI

修复

  • 修复了 Provider 特定 maxTokensmax_tokens 字段的映射。

v0.70.0(2026-04-23)

Pi Coding Agent

新功能

  • 初始发布 — Pi Coding Agent 的首个公开版本。

历史版本

版本日期
0.69.02026-04-22
0.68.12026-04-22
0.68.02026-04-20
0.67.682026-04-17
0.67.672026-04-17
0.67.62026-04-16
0.67.52026-04-16
0.67.42026-04-16
0.67.32026-04-15
0.67.22026-04-15
0.67.12026-04-15
0.67.02026-04-14
0.66.02026-04-13
0.65.52026-04-11
0.65.42026-04-09
0.65.32026-04-09
0.65.22026-04-09
0.65.12026-04-09
0.65.02026-04-08
0.64.02026-04-08
0.63.42026-04-08
0.63.32026-04-07
0.63.22026-04-07
0.63.12026-04-07
0.63.02026-04-06
0.62.02026-04-02
0.61.12026-04-02
0.61.02026-04-02
0.60.22026-04-01
0.60.12026-04-01
0.60.02026-03-31
0.59.02026-03-30
0.58.02026-03-24
0.57.02026-03-20
0.56.12026-03-17
0.56.02026-03-17
0.55.72026-03-11
0.55.62026-03-10
0.55.52026-03-09
0.55.42026-03-09
0.55.32026-03-09
0.55.22026-03-06
0.55.12026-03-06
0.55.02026-03-06
0.54.02026-03-05
0.53.12026-03-04
0.53.02026-03-03
0.52.02026-03-03
0.51.22026-03-03
0.51.12026-03-03
0.51.02026-03-03
0.50.12026-03-02
0.50.02026-03-02
0.49.02026-03-01
0.48.02026-02-28
0.47.02026-02-28
0.46.02026-02-27
0.45.32026-02-27
0.45.22026-02-27
0.45.12026-02-26
0.45.02026-02-26
0.44.02026-02-24
0.43.42026-02-08
0.43.32026-02-06
0.43.22026-02-06
0.43.12026-02-05
0.43.02026-02-05
0.42.02026-02-04
0.41.02026-02-03
0.40.22026-02-02
0.40.12026-02-02
0.40.02026-02-02
0.39.12026-02-01
0.39.02026-02-01
0.38.02026-02-01
0.37.02026-01-31
0.36.02026-01-31
0.35.02026-01-31
0.34.02026-01-30
0.33.12026-01-29
0.33.02026-01-29
0.32.12026-01-29
0.32.02026-01-28
0.31.02026-01-28
0.30.02026-01-28
0.29.02026-01-27
0.28.02026-01-27
0.27.02026-01-26
0.26.02026-01-25
0.25.02026-01-24
0.24.02026-01-24
0.23.02026-01-23
0.22.02026-01-23
0.21.02026-01-22
0.20.02026-01-21
0.19.02026-01-15
0.18.02026-01-14
0.17.02026-01-13
0.16.02026-01-11
0.15.02026-01-10
0.14.02026-01-09
0.13.02026-01-08
0.12.02026-01-07
0.11.42026-01-07
0.11.32026-01-06
0.11.22026-01-06
0.11.12026-01-06
0.11.02026-01-05
0.10.62025-11-28
0.10.52025-11-28
0.10.42025-11-28
0.10.32025-11-28
0.10.22025-11-26
0.10.12025-11-25
0.10.02025-11-25
0.9.42025-11-26
0.9.32025-11-25
0.9.22025-11-24
0.9.12025-11-22
0.9.02025-11-22
0.8.02025-11-21
0.7.22025-11-21
0.7.12025-11-20
0.7.02025-11-20
0.6.32025-11-19
0.6.22025-11-18
0.6.12025-11-18
0.6.02025-11-18
0.5.32025-11-17
0.5.22025-11-17
0.5.12025-11-17
0.5.02025-11-15
0.4.02025-11-15
0.3.02025-11-14
0.2.02025-11-13
0.1.62025-11-13
0.1.52025-11-13
0.1.42025-11-13
0.1.32025-11-12
0.1.22025-11-12
0.1.12025-11-11
0.1.02025-11-10

完整变更日志

各包的完整变更历史:


法律声明:本页面聚合自 pi 各子包的 CHANGELOG.md 文件的中文翻译,仅供学习参考。