pi 在 v1.2.0 之后合入五个 PR:会话恢复工具装载、GPT-6 换思考档保住提示缓存、统一的提供方选择策略,以及两个修复
2026 年 10 月 13 日到 14 日,pi 合入了五个 PR——13 日一个、14 日四个——目前都不在任何 release 里:最新 tag 仍是 10 月 12 日的 v1.2.0。其中一个是新功能,四个是修复,而两个修复改变了脚本可能依赖的行为。
#10887 让会话恢复时还原活动工具。此前 SDK 总是传入初始工具,构造器从不恢复 transcript 里记录的工具装载——恢复的会话会丢掉会话期间激活的工具。现在,使用默认工具的会话会还原已记录的装载,并把 --tools 的 +name/-name 条目应用其上。
#10930 让 OpenAI GPT-6 上修改思考级别时保住提示缓存。持有 API key 时,openai provider 上的 GPT-6 模型现在固定 reasoning.effort,把思考级别改用 configuration_update 输入项发送;每条回复都会记录自己的级别,因此每次请求中较早的条目都原样重建。该行为由 compat.supportsMidConvoEffort 控制,Sign in with ChatGPT 与关闭思考时跳过。
#10913 把模型引用统一到单一提供方选择策略。此前当指定 provider 缺少某模型而多个网关都以裸 id 暴露 provider/id 时,--model provider/id 会按目录顺序取第一个网关、无视凭据;结果还随输入形态漂移——shared 选有凭据的 provider,shared:high 却按目录顺序选。core/model-resolver.ts 里新的 resolveModelReference 管线统一处理所有模型引用(--model、--models/enabledModels、/model、pi auth print-*),规则只有一条:指定 provider 的匹配可用则取之,否则取唯一可用的裸匹配,再否则取指定 provider 的匹配,最后判歧义。随之而来的行为变化:精确匹配中没有唯一已认证 provider 时现在是报错而非按目录顺序;模糊匹配优先已认证 provider;带 --api-key 时存储的凭据不再决定 provider。
剩下两个是较小的修缮。#10938 归一化读取行范围标签——处理数字字符串与 null 参数、在 tui、会话树与示例之间共享格式化,并在 html 导出中用本地格式化器而不附加会话元数据。#10944 阻止流式解析器带着截断的参数运行工具:此前当已完成的工具调用参数文本不是合法 JSON 时,解析器只保留出错前的字段、工具就带着它们运行。现在已完成的调用走严格解析,失败时参数置为空对象,argumentsError 携带原因与原始文本回报给模型。
截至写作时点,这五个合并都停在 main 上,v1.2.0 之后尚未切 release;源链接的合并检索页可逐一跳转。
source: https://github.com/earendil-works/pi/pulls?q=is%3Apr+is%3Aclosed+merged%3A2026-10-13..2026-10-14