← 返回更新日志

Pi v0.50.0

2026-01-26 · GitHub 原文
### 新功能 - 用于打包和安装扩展、技能、提示词和主题的 Pi 包。详见 [docs/packages.md](docs/packages.md)。 - 资源热重载(`/reload`),包括 AGENTS.md、SYSTEM.md、APPEND_SYSTEM.md、提示词模板、技能、主题和扩展。详见 [README.md#commands](README.md#commands) 和 [README.md#context-files](README.md#context-files)。 - 通过 `pi.registerProvider()` 支持自定义提供商,用于代理、自定义端点、OAuth 或 SSO 流程以及非标准流式 API。详见 [docs/custom-provider.md](docs/custom-provider.md)。 - Azure OpenAI Responses 提供商支持,具备基于部署的模型映射。详见 [docs/providers.md#azure-openai](docs/providers.md#azure-openai)。 - 通过 `openRouterRouting` 支持 OpenRouter 自定义模型路由。详见 [docs/providers.md#api-keys](docs/providers.md#api-keys) 和 [docs/models.md](docs/models.md)。 - 技能调用消息现在支持折叠,技能可通过 `disable-model-invocation` 选择不触发模型调用。详见 [docs/skills.md#frontmatter](docs/skills.md#frontmatter)。 - 会话选择器支持重命名及可配置的快捷键。详见 [README.md#commands](README.md#commands) 和 [docs/keybindings.md](docs/keybindings.md)。 - `models.json` 的 Header 值现在支持解析环境变量和 Shell 命令。详见 [docs/models.md#value-resolution](docs/models.md#value-resolution)。 - 新增 `--verbose` CLI 参数以覆盖静默启动设置。详见 [README.md#cli-reference](README.md#cli-reference)。 请查阅 `README.md` 中全面重构的文档,或让你的 AI 助手为你朗读。 ### SDK 迁移指南 自 v0.49.3 版本以来,SDK 存在多项破坏性更新。为快速完成迁移,请将你的智能体指向 `packages/coding-agent/docs/sdk.md`、`packages/coding-agent/examples/sdk` 中的 SDK 示例,以及 `packages/coding-agent/src/core/sdk.ts` 和相关模块的 SDK 源码。 ### 破坏性更新 - `models.json` 的 Header 值现在会解析环境变量(如果 Header 值与某环境变量名匹配,则使用该环境变量的值)。若字面量 Header 值意外匹配了环境变量名,可能会导致行为变更。([#909](https://github.com/badlogic/pi-mono/issues/909)) - 外部包(npm/git)现在通过 `settings.json` 中的 `packages` 数组进行配置,而非 `extensions`。`extensions` 中现有的 `npm:/` 和 `git:` 条目将自动迁移。([#645](https://github.com/badlogic/pi-mono/issues/645)) - 资源加载现仅使用 `ResourceLoader`,且 `settings.json` 中扩展、技能、提示词和主题均使用数组格式。([#645](https://github.com/badlogic/pi-mono/issues/645)) - 从 SDK 中移除了 `discoverAuthStorage` 和 `discoverModels`。除非传入 `agentDir`,否则 `AuthStorage` 和 `ModelRegistry` 现默认使用 `~/.pi/agent` 路径。([#645](https://github.com/badlogic/pi-mono/issues/645)) ### 新增 - 在 `/resume` 选择器中支持通过 `Ctrl+R` 重命名会话,而无需打开会话 ([#863](https://github.com/badlogic/pi-mono/pull/863) by [@svkozak](https://github.com/svkozak)) - 会话选择器快捷键现支持自定义配置 ([#948](https://github.com/badlogic/pi-mono/pull/948) by [@aos](https://github.com/aos)) - 为技能新增 `disable-model-invocation` frontmatter 字段,可阻止智能体自动调用,但仍允许显式执行 `/skill:name` 命令 ([#927](https://github.com/badlogic/pi-mono/issues/927)) - 向扩展暴露 `copyToClipboard` 工具函数 ([#926](https://github.com/badlogic/pi-mono/issues/926) by [@mitsuhiko](https://github.com/mitsuhiko)) - 聊天输出中的技能调用消息现支持折叠,默认以折叠状态显示,包含技能名称及展开提示 ([#894](https://github.com/badlogic/pi-mono/issues/894)) - `models.json` 的 Header 值现在支持环境变量和 Shell 命令,与 `apiKey` 解析逻辑保持一致 ([#909](https://github.com/badlogic/pi-mono/issues/909)) - 新增 API 请求的 HTTP 代理环境变量支持 ([#942](https://github.com/badlogic/pi-mono/pull/942) by [@haoqixu](https://github.com/haoqixu)) - 通过 `openRouterRouting` 兼容字段新增 OpenRouter 提供商的自定义模型路由支持 ([#859](https://github.com/badlogic/pi-mono/pull/859) by [@v01dpr1mr0s3](https://github.com/v01dpr1mr0s3)) - 新增 `azure-openai-responses` 提供商以支持 Azure OpenAI Responses API。([#890](https://github.com/badlogic/pi-mono/pull/890) by [@markusylisiurunen](https://github.com/markusylisiurunen)) - 更新通知中新增变更日志链接 ([#925](https://github.com/badlogic/pi-mono/pull/925) by [@dannote](https://github.com/dannote)) - 新增 `--verbose` CLI 参数以覆盖 `quietStartup` 设置 ([#906](https://github.com/badlogic/pi-mono/pull/906) by [@Perlence](https://github.com/Perlence)) - 新增 `markdown.codeBlockIndent` 设置项,用于自定义渲染输出中的代码块缩进 - 新增扩展包管理命令:`pi install`、`pi remove`、`pi update` 和 `pi list` ([#645](https://github.com/badlogic/pi-mono/issues/645)) - 包过滤功能:通过 `packages` 数组的对象形式选择性加载包内的资源 ([#645](https://github.com/badlogic/pi-mono/issues/645)) - 在包过滤器、顶层设置数组及 pi manifest 中支持使用 minimatch 进行 Glob 模式匹配(例如 `"!funky.json"`、`"*.ts"`) ([#645](https://github.com/badlogic/pi-mono/issues/645)) - 新增 `/reload` 命令以重载扩展、技能、提示词和主题 ([#645](https://github.com/badlogic/pi-mono/issues/645)) - 新增带 TUI(终端用户界面)的 `pi config` 命令,支持通过模式匹配启用/禁用包及顶层资源 ([#938](https://github.com/badlogic/pi-mono/issues/938)) - 新增 CLI 参数:`--skill`、`--prompt-template`、`--theme`、`--no-prompt-templates` 和 `--no-themes` ([#645](https://github.com/badlogic/pi-mono/issues/645)) - 包去重机制:若同一包同时出现在全局和项目设置中,以项目设置为准 ([#645](https://github.com/badlogic/pi-mono/issues/645)) - 为所有资源类型统一使用 `ResourceDiagnostic` 类型进行冲突报告 ([#645](https://github.com/badlogic/pi-mono/issues/645)) - 如果可用多个提供商,在页脚中模型旁显示提供商信息 - 支持通过 `pi.registerProvider()` 配合 `streamSimple` 实现自定义 API 的自定义提供商 - 新增 `custom-provider.ts` 示例扩展,演示使用 OAuth 的自定义 Anthropic 提供商 ### 更改 - `/resume` 选择器的排序切换键移至 `Ctrl+S`,以释放 `Ctrl+R` 用于重命名 ([#863](https://github.com/badlogic/pi-mono/pull/863) by [@svkozak](https://github.com/svkozak)) - HTML 导出:点击侧边栏消息现在会导航至其最新节点并滚动至该处,而非截断分支 ([#853](https://github.com/badlogic/pi-mono/pull/853) by [@mitsuhiko](https://github.com/mitsuhiko)) - HTML 导出:活动路径现在会高亮显示,非活动路径节点则变暗 ([#929](https://github.com/badlogic/pi-mono/pull/929) by [@hewliyang](https://github.com/hewliyang)) - Azure OpenAI Responses 提供商现在使用基础 URL 配置,支持感知部署的模型映射,且不再包含服务层级处理 - `/reload` 现在会重新渲染整个滚动缓冲区,以便立即显示已更新的扩展组件 ([#928](https://github.com/badlogic/pi-mono/pull/928) by [@ferologics](https://github.com/ferologics)) - 技能、提示词模板和主题的发现机制现在使用设置和 CLI 路径数组,替代了旧版过滤器 ([#645](https://github.com/badlogic/pi-mono/issues/645)) ### 修复 - 扩展 `agent_start` 处理程序中的 `setWorkingMessage()` 调用现在可正常工作;此前由于加载动画尚未创建,消息被静默忽略 ([#935](https://github.com/badlogic/pi-mono/issues/935)) - 修复了包自动发现功能,使其尊重加载器规则、配置覆盖和强制排除模式 - 修复了 `/reload` 在重载后恢复正确编辑器的问题 ([#949](https://github.com/badlogic/pi-mono/pull/949) by [@Perlence](https://github.com/Perlence)) - 修复了分布式主题导致 `/export` 失效的问题 ([#946](https://github.com/badlogic/pi-mono/pull/946) by [@mitsuhiko](https://github.com/mitsuhiko)) - 修复了启动提示,以明确思考级别选择并扩展思考指导 - 修复了 SDK 初始模型解析,使其使用 `findInitialModel`,并为 Anthropic 模型默认设为 Claude Opus 4.5 - 修复了无模型警告,使其包含 `/model` 指令 - 修复了身份验证错误消息,使其指向身份验证文档 - 修复了 bash 输出提示行,使其按终端宽度截断 - 修复了自定义编辑器,使其遵循 `paddingX` 设置 ([#936](https://github.com/badlogic/pi-mono/pull/936) by [@Perlence](https://github.com/Perlence)) - 修复了系统提示词工具列表,使其仅显示内置工具 - 修复了包管理器,使其在使用缓存副本前检查 npm 包版本 - 修复了包管理器,使其在克隆包含 `package.json` 的 Git 仓库后运行 `npm install` - 修复了扩展提供商注册,使其在模型解析前生效 - 修复了编辑器多行插入处理及 `lastAction` 跟踪 ([#945](https://github.com/badlogic/pi-mono/pull/945) by [@Perlence](https://github.com/Perlence)) - 修复了编辑器自动换行,以预留光标列 ([#934](https://github.com/badlogic/pi-mono/pull/934) by [@Perlence](https://github.com/Perlence)) - 修复了编辑器自动换行,使其使用单次回溯处理空白字符 ([#924](https://github.com/badlogic/pi-mono/pull/924) by [@Perlence](https://github.com/Perlence)) - 修复了 Kitty 图像 ID 的分配与清理,以防止图像 ID 冲突 - 修复了终端调整大小后覆盖层保持居中显示的问题 ([#950](https://github.com/badlogic/pi-mono/pull/950) by [@nicobailon](https://github.com/nicobailon)) - 修复了流式分发,使其使用模型 API 类型而非硬编码的 API 默认值 - 修复了 Google 提供商,使其在省略工具调用参数时默认使用空对象 - 修复了 OpenAI Responses 流式处理,使其在 OpenAI 兼容端点上处理 `arguments.done` 事件 ([#917](https://github.com/badlogic/pi-mono/pull/917) by [@williballenthin](https://github.com/williballenthin)) - 修复了共享 Responses 重构后 OpenAI Codex Responses 的工具严格性处理 - 修复了 Azure OpenAI Responses 流式处理,使其在内容部分前保护增量,并修正元数据和交接门控 - 修复了连续工具结果后 OpenAI 补全工具结果图像批处理的问题 ([#902](https://github.com/badlogic/pi-mono/pull/902) by [@terrorobe](https://github.com/terrorobe)) - 修复了 bash 输出“更早行数”计数中的差一错误,该错误由将间距换行符计为隐藏内容引起 ([#921](https://github.com/badlogic/pi-mono/issues/921)) - 用户包过滤器现在叠加在清单过滤器之上,而非替换它们 ([#645](https://github.com/badlogic/pi-mono/issues/645)) - 自动重试现在可处理 Codex API 流中断时产生的“已终止”错误 - 后续队列(Alt+Enter)现在发送完整的粘贴内容,而非 `[paste #N ...]` 标记 ([#912](https://github.com/badlogic/pi-mono/pull/912) by [@aliou](https://github.com/aliou)) - 修复了 Alt-Up 无法恢复压缩期间排队消息的问题 ([#923](https://github.com/badlogic/pi-mono/pull/923) by [@aliou](https://github.com/aliou)) - 修复了通过 `--session` 标志加载空会话文件或无效会话文件时导致的会话损坏问题 ([#932](https://github.com/badlogic/pi-mono/issues/932) by [@armanddp](https://github.com/armanddp)) - 修复了扩展在使用 `setEditorComponent()` 时快捷键无法触发的问题 ([#947](https://github.com/badlogic/pi-mono/pull/947) by [@Perlence](https://github.com/Perlence)) - 会话“修改”时间现在使用最后一条消息的时间戳而非文件修改时间,因此重命名不会打乱最近列表的顺序 ([#863](https://github.com/badlogic/pi-mono/pull/863) by [@svkozak](https://github.com/svkozak))