piagent_
← /资讯
2026年10月23日community

10 月 23 日 pi 合并 17 个 PR:消息携带物理模型 ID、选择器显示模型名,外加 11 个修复

2026 年 10 月 23 日,pi 合并了 17 个 pull request:两个功能、十一个修复、四个文档变更。

两个功能改动模型层记录与展示的内容。#11265 在每条 PiMessage 上保存 responseModel——实际使用的物理模型——让 Radius 这类消费方能知道虚拟模型(比如 cheap)最终落在了哪个物理模型上;PR 正文特别指出,在 #11000 合入后这一点尤其重要:模型名不匹配时 pi 会丢弃 thinking 轨迹,现在可以改查物理模型。#11347(关闭 #5916)让 /model 与 /scoped-models 在名字能提供 ID 之外的信息时以括号显示模型名——此前每行只列 id 与 provider,models.json 里改过名的覆盖项完全不可见。

启动与会话管道拿到两个韧性修复。#11304 让配置了但安装失败的扩展包不再中断启动:失败按来源记录、该包按离线模式的方式跳过、其余照常加载,并通过扩展警告通道提示用 pi remove 移除。#11288 重写 SessionManager.forkFrom,把分叉会话改为用一个已打开的文件句柄写完,而不是每个条目重新开关文件——分叉一个 3000 条目的会话此前要开闭文件约 3000 次;在终端安全监控软件拦截文件操作的环境里,一个 73 MB 会话的分叉要花 30 秒以上。

输出正确性占四个修复。#11326 给 pi.exec() 的 stdout 与 stderr 各配一个 UTF-8 StringDecoder,跨管道分块的多字节字符不再被拆成两半各变成 U+FFFD(此前 "你好" 会在退出码为 0 的同时返回乱码)。#11325 让 Google 系适配器把工具 schema 里 TypeBox 生成的 const 改写成 Gemini 认的 enum——const 会被忽略,模型于是可能发回任意值、再被参数校验拒绝。#11318 修正 faux provider 的缓存记账,让每个 prompt token 只落进一个桶,不再同时计入 input 与 cacheWrite。#8057(examples 目录)修复 schema 校验失败的 todo 结果击穿 TUI:renderResult 走过一个没有 default 分支的 switch 返回了 undefined。

三个修复关于 TUI 渲染与选区。#11321 阻止嵌套引用块指数级渲染——80 列下宽度在约 39 层 > 处被钳到 1,之后每层都会把每行重新折行。#11340 为全屏双击选区采用 iTerm2 的默认词字符(+ \ ~ _ .),~/.pi/... 与 foo+bar 现在能整段选中(修复 #10980)。#11320 修复带内边距或底色的 Box 里的多行 Kitty 图片:首行滚出全屏视口后图片整个消失,现在按未加 Box 图片同样的方式裁剪显示可见部分。

剩下两个修复是打包与平台工作。#11319 用 Bun 1.4.4 重建独立二进制,本地实测 darwin-arm64、darwin-x64、linux-arm64、linux-x64、windows-arm64、windows-x64 六个平台。#11343(修复 #11209)不再把 arm64 之外的架构一律映射到 x86_64 的 fd/rg 资产选择——ARM32 与 ia32 机器此前会下载到报 Exec format error 的二进制——现在对未映射目标跳过下载并给出警告。

四个文档合并收尾:#11338 修正 provider 清单漂移与失效的 MCP 锚点,补文档 /mcp、pi mcp add|remove、PI_CLEAR_ON_SHRINK 与 "disabled" 超时(关闭 #11243);#11329 移除一段关于 Kitty 图片的过时注释;#11351 与 #11352 补齐缺失的 changelog 条目,并要求任何以 main 为目标的分支工作都必须带 changelog 条目。这 17 个 PR 全部晚于 v1.4.0 标签,最早也要到下一个版本才会发布;每个修复的 diff 与测试都在各自 PR 页面。

source: https://github.com/earendil-works/pi/pull/11265