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

pi 十月二十二日合入十一个 PR:OpenRouter 实报费用、二次确认的设备码登录,扛得住深层会话的 HTML 导出

2026 年 10 月 22 日,pi 合入十一笔 PR:三项特性、七项修复,外加一笔搭建预览包构建的管道改动。

vegarsti 的两笔 PR 重做了费用统计。#10286 让 OpenRouter 请求的 cost.total 携带 OpenRouter 实报的账单金额——它与 pi 目录估价常有出入,因为 OpenRouter 会把请求路由到定价不同的服务商——而输入、输出与缓存三个分项仍是目录估价,实报缺失或无效时总额回退为分项之和。#11178 新增 usage.totalFromProvider 标志,总额来自 provider 自身上报时为 true,如今处处是 false。

petrroll 的 #9301 给设备码登录加上可选的浏览器打开与代码复制,前置一道额外确认(通常是回车);退出选项握在 provider 作者手里,不是用户设置(修复 #9282)。vipentti 的 #7952 把 messageId 与 timestamp 加进 markdown transformer 上下文,实时消息上未定义,渲染已持久化的会话条目时可用(关闭 #7828)。

HTML 导出拿到两笔修复。#11293 把查看器的递归树遍历改成扁平与栈式循环:约六千条目挤在一条深层父链上就撑爆调用栈、页面空白,回归测试导出两万条目的链(关闭 #11225)。#11290 把开头的系统消息渲染为系统提示与工具列表,其后的渲染为具名章节与工具更新;CLI 的 --export 也会显示这两样(#3464)(关闭 #11261)。

其余几笔:#11296(petrroll)让连续的模糊匹配排在分散命中之前,并把 /model 与 /resume 的搜索字段拆开——/resume 此前用一条查询横扫整段消息文本(关闭 #11220,同时处理 #10552、#10065、#11024)。#11289(petrroll)在 macOS 上先停掉 shell 进程组再杀进程,收窄“杀前台子进程反而先惊醒其 shell”的竞态;Linux 与 Windows 的终止路径不变(关闭 #11252)。#11257(muyiyr)让 pi.exec() 的结果保住 spawn 错误——子进程没有 stderr 时以错误信息充当 stderr,普通的静默非零退出不受影响(修复 #11085)。#11270(davidbrai)从托管 npm ci 中移除 min-release-age 覆盖——它的 release lockfile 安装从不解析版本,该参数在此毫无作用,反而有拦截该参数的安全扫描器会卡住更新;全局 npm、pnpm 与 bun 的自更新保留各自的年龄门槛覆盖(关闭 #11262)。

#11260(christianklotz)以一套工作流加脚本的预览包构建收尾。十一笔都晚于 v1.4.0 的 tag,最早也要等下一个 release;每一笔的 diff 与回归测试都在各自的 PR 页面上。

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