pi v1.2.0:OpenRouter 按密钥列模型、配置 schema 公开、扩展触发的回合改走 before_agent_start
pi v1.2.0 发布于 2026 年 10 月 12 日,是当前最新版本。主打按密钥的模型列表:配置了 OpenRouter 密钥后,Pi 只列出该密钥可用的聊天模型,并附上密钥级的上下文窗口、最大输出与价格——models.json 里以 base URL 设置的 guardrails 与区域端点同样生效——列表保存后离线可用(#10353、#10672)。
配置文件获得编辑器级校验:settings.json、models.json、键位与主题中的 $schema 条目接上校验与补全,生成的 schema 公开在 pi.dev/schemas/*.schema.json。破坏性的一面:主题 schema 迁至 pi.dev/schemas/theme.schema.json,启动时加载的主题现在与后续重载接受同样的 schema 校验,主题作者需要更新 $schema 引用、把可复用颜色定义进 vars 并移除不支持的元数据(#9880、#10751)。
扩展触发的回合现在与普通提示词走同一套启动流程:pi.sendMessage(..., { triggerTurn: true }) 在空闲时会触发 before_agent_start,BeforeAgentStartEvent 改为按 messageType 的联合类型——"user" 事件携带 prompt 与 images,"custom" 事件携带起始 message——只应作用于用户提示词的处理器须检查 event.messageType === "user"(#10739)。回合启动期间会话计入忙态:ctx.isIdle() 为假,排队的 pi.sendMessage() 加入启动中的回合而非报错,启动中途的取消会在回合开始后生效。
codemode 声明现在以属性注释上的 @ 标签展示输入约束,如整数、最小/最大、长度、模式、默认值等;codemode 行也与 bash 行一样显示耗时与总时长。工具定义新增 reachesTools,让会触达其他工具的工具声明一次调用可能触及哪些工具;工具命名空间新增 aliases。
修复面很宽:当 Pi 探测不到远端会话时,PI_CLIPBOARD_OSC52=1 经 OSC 52 把复制内容送到远端客户端剪贴板;Mistral 流不再在生成中途被超时打断——超时只作用于等待响应头;print 模式在输出被 token 上限截断时打印部分文本、写警告并以退出码 1 结束;extensions、skills、prompts、themes 四项设置的 !pattern、+path、-path 条目里的 ~ 正常展开;MCP 工具调用接受非对象的结构化内容(MCP 2026-07-28 所允许);OpenRouter 路由模型不再显示每百万 token −$1,000,000 的成本;Anthropic 请求在 provider 拒绝严格工具集时,以首选工具非严格模式重试一次。
完整的破坏性变更清单见 release 页面,各条目凡有跟踪 issue 者均附链接。
source: https://github.com/earendil-works/pi/releases/tag/v1.2.0