黄奕彬

外部精选

Pi 1.0.4

本文来自外部来源,不是黄奕彬的原创文章。本站提供原文入口,并在采集端生成 AI 结构化摘要、解读与中文翻译(如有),一切以原文为准。

阅读原文(pi.dev)
来源
Pi Changelog ↗
作者 / 署名
未标注
发布日期
本站收录时间
原文域名
pi.dev

以上时间均为北京时间;来源更新时间由来源提供,不代表首次发布时间。

结构化摘要 AI 生成

背景与问题

本文是 Pi 1.0.4 的官方发布说明(Changelog/Release notes),面向 Pi 的现有用户,回答『升级到 1.0.4 能得到什么、修复了什么』。

针对的背景是此前版本存在多类缺陷与能力缺口:工具过滤会误删 MCP 工具、codemode 脚本收不到图像、部分 MCP 服务器 OAuth 登录失败、脚本改写内建对象导致崩溃,以及缺少按模式批量选择工具和单次禁用 MCP 的开关。

方法或内容

发布 Pi 1.0.4,正文分三部分:

  1. New Features:--tools/--exclude-tools 支持 * 模式,示例 --tools read,codemode,'mcp__radius__*' 可只保留一个 MCP 服务器的工具;--tools 改为保留 MCP 工具(除非条目以 mcp__ 开头);新增 --no-mcp 单次禁用 MCP;codemode 的 tools.read() 读图像文件返回可由 image() 展示的图像块。
  2. Added:上述两条 CLI 能力。
  3. Fixed:8 项修复,覆盖语法高亮、codemode 图像、MCP OAuth、--tools 行为、MCP 会话关闭、隐藏工具提示、Bedrock 重试与内建对象冻结。发布渠道为 GitHub release 与 npm。

关键发现 / 结果

  • 新增 * 模式:--tools/--exclude-tools 可用 --tools read,codemode,'mcp__radius__*' 之类写法
  • 新增 --no-mcp:单次运行禁用内建 MCP
  • 修复 fenced code block 中多行字符串/注释首行之后语法高亮掉色(#10143)
  • 修复 codemode 收不到图像:tools.read() 对图像文件返回图像块,image() 可展示(#10251)
  • 修复带 OpenID Connect client registration 的 MCP 服务器(如 mcp.modem.dev)OAuth 报 invalid_redirect_uri:改为注册 native client(#10493)
  • 修复 --tools 误删 MCP 工具:现保留 MCP 工具,除非条目以 mcp__ 开头
  • 修复 MCP 会话关闭在服务器仍在连接时提前返回、传输悬挂至应答或超时(#10249)
  • 修复系统提示规则与 skills hint 点名被隐藏工具;隐藏工具不入规则,ToolLoadout 新增 getPromptGuidelines()(#10343)
  • 修复 Bedrock 在 HTTP/2 停滞报 The pending stream has been canceled 时不自动重试(#10379)
  • 修复 codemode 脚本改写内建对象(如 Array.prototype.toJSON)致 pi 崩溃:内建对象于脚本运行前冻结(#10444)

结论与意义

原文未给出显式结论或迁移建议。隐含意义:1.0.4 是以缺陷修复为主、附带工具过滤增强的维护性版本;其中 --tools 语义发生变更(默认保留 MCP 工具),是升级时需注意的行为变化。适用边界限于 Pi 1.0.4 及列出的具体场景,未涉及的其他平台与错误类型原文未说明。

AI 解读 AI 生成

方法:按「时空变量」分析(时间 / 空间 / 变量,严格区分包含、相关与因果),对象包括原文作者、署名人员与关键技术及其实际原理;结论用「元反空」(元思考、反思考、空思考、综合)整理。

时间:何时发生,现在是否仍成立

发布日期为 2026 年 10 月 5 日(正文标注 Oct 5, 2026;结构化来源日期 2026年10月5日 08:00(北京时间),即北京时间 2026-10-05 08:00)。所述变更在 1.0.4 版本内为既成事实;其对后续版本是否仍成立,原文未说明,当前实际状态也无法从原文验证。

空间:谁的环境 / 场景

适用于 Pi 1.0.4 的下列场景:

  1. 命令行工具过滤:--tools、--exclude-tools、--no-mcp。
  2. 启用内建 MCP 支持并连接 MCP 服务器,含采用 OpenID Connect client registration 的服务器(如 mcp.modem.dev)。
  3. codemode 脚本:读取/展示图像、以及可能改写内建对象的脚本。
  4. 经 Bedrock 发请求并可能遭遇 HTTP/2 连接停滞的环境。
  5. 使用 prepareLoadout 隐藏工具、依赖系统提示规则与 skills hint 的配置。

产品形态为经 npm 分发的 CLI 工具。

变量:实际改变了什么

  • 行为:--tools 由移除 MCP 工具改为保留(除非条目以 mcp__ 开头);MCP 会话关闭不再在连接未完成时提前返回;Bedrock 对特定停滞错误自动重试;MCP OAuth 改注册为 native client;内建对象在 codemode 脚本运行前被冻结。
  • 新增能力:* 通配符过滤、--no-mcp、tools.read() 返回图像块、ToolLoadout.getPromptGuidelines()。
  • 提示结构:系统提示规则剔除隐藏工具;文件读取器被隐藏时 skills hint 不点名任何工具;codemode 随声明展示各工具的提示指南。
  • 显示修复:fenced code block 多行内容语法高亮不再掉色。
  • 价格及其他变量:原文未说明。

区分:包含 ≠ 相关 ≠ 因果

有明确因果证据(修复描述即因果链):

  1. codemode 脚本改写内建对象导致 pi 崩溃、工具调用未结算→冻结内建对象后补丁无效(#10444)。
  2. HTTP/2 停滞引发 The pending stream has been canceled 且不重试→修复为自动重试(#10379)。
  3. OAuth 非 native client 注册导致 invalid_redirect_uri→改为 native client(#10493)。

包含关系:mcp__ 前缀条目是 --tools 过滤逻辑的一部分;图像块是 tools.read() 对图像文件返回值的一部分。仅为相关、无因果解释:语法高亮掉色的根因(#10143)、MCP 会话关闭缺陷的深层机制(#10249)均只给出现象与修复结果,根因原文未说明。

对象:作者/署名与关键技术原理

作者/署名:原文未说明(结构化作者字段为空,正文无署名)。关键技术(原理按原文描述):

  1. MCP:pi 内建支持,可被 --no-mcp 单次禁用;MCP 工具以 mcp__ 前缀标识,可用 mcp__radius__* 之类模式匹配;会话关闭需等待服务器连接完成。
  2. codemode:脚本环境,提供 tools.read() 与 image();tools.read() 对图像文件解析为图像块;内建对象在脚本运行前冻结。
  3. ToolLoadout:与 prepareLoadout 隐藏工具相关,新增 getPromptGuidelines() 用于获取工具提示指南。
  4. OAuth/OpenID Connect:MCP 服务器登录机制,pi 以 native client 身份注册。
  5. HTTP/2:Bedrock 请求传输层,停滞会触发 The pending stream has been canceled。

更深层实现原理原文未说明。

元反空综合结论

元:这是版本发布说明,本质在解决『变更透明化与升级决策』问题——告知用户 1.0.4 改了什么、哪些行为变化(尤其 --tools 语义)会影响既有用法。

反:最可能有边界或失效的主张:--tools 保留 MCP 工具依赖 mcp__ 前缀这一约定,属约定型行为,后续版本可再变;OAuth 修复仅覆盖『带 OpenID Connect client registration』的服务器(示例 mcp.modem.dev),其他服务器情形原文未说明;Bedrock 重试仅针对列出的特定错误消息;冻结内建对象意味着依赖运行时打补丁的 codemode 脚本将失效,这是修复附带的行为限制。

空:去掉发布叙事后剩下的必要事实:1.0.4 于 2026-10-05 发布,经 GitHub release 与 npm 分发;新增 * 模式过滤、--no-mcp 与 codemode 图像支持;修复 8 项缺陷(7 项带 issue 编号,1 项无编号)。

综合:这是一份以修复为主、信息粒度到 issue 级的维护版本记录;核心可执行结论是升级后 --tools 默认保留 MCP 工具及 MCP/codemode 稳定性提升,但一切结论仅限 1.0.4 与列出的场景,不应外推到其他版本或未列出的错误类型。

中文译文 AI 生成

更新日志 发布说明 2026年10月5日 Pi 1.0.4 GitHub release npm 新功能

工具模式与 --no-mcp:--tools 与 --exclude-tools 现在接受 * 模式,例如 --tools read,codemode,'mcp__radius__*' 只保留一个 MCP 服务器的工具。--tools 现在会保留 MCP 工具,除非某个条目以 mcp__ 开头;--no-mcp 用于在单次运行中关闭 MCP。参见 Tools and MCP tools。

Codemode 持久化图像:对图像文件调用 tools.read() 现在会返回一个可由 image() 展示的 image block。参见 Call tools。

新增

  • 为 --tools 与 --exclude-tools 添加了 * 模式,例如 --tools read,codemode,'mcp__radius__*'
  • 添加了 --no-mcp,用于在单次运行中禁用内置的 MCP 支持

修复

  • 修复了围栏代码块中多行字符串和注释第一行之后语法高亮丢失颜色的问题 (#10143)
  • 修复了 codemode 脚本无法从 read 接收图像的问题:对图像文件,tools.read() 现在会解析为一个由 image() 展示的 image block (#10251)
  • 修复了在使用 OpenID Connect 客户端注册的服务器(例如 mcp.modem.dev)上 MCP OAuth 登录因 invalid_redirect_uri 失败的问题:pi 现在会注册为 native client (#10493)
  • 修复了 --tools 移除 MCP 工具、导致 pi --tools codemode 没有任何 MCP 服务器的问题。--tools 现在会保留 MCP 工具,除非某个条目以 mcp__ 开头
  • 修复了 MCP 会话关闭在服务器仍在连接时就返回的问题,该问题会使服务器的 transport 保持打开,直到服务器应答或超时 (#10249)
  • 修复了 system prompt 规则与 skills 提示会点名被 prepareLoadout 隐藏的工具的问题。隐藏的工具会被排除在规则之外;当文件读取器被隐藏时,skills 提示不再点名任何工具;codemode 会在每个工具的声明旁展示该工具的 prompt guidelines;ToolLoadout 新增了 getPromptGuidelines() (#10343)
  • 修复了在 HTTP/2 连接停滞之后以 "The pending stream has been canceled" 失败的 Bedrock 请求不会被自动重试的问题 (#10379)
  • 修复了修补内置对象(例如 Array.prototype.toJSON = ...)的 codemode 脚本会导致 pi 崩溃并使工具调用未决的问题。内置对象现在会在脚本运行前被冻结,因此此类修补不会生效 (#10444)
展开原文提取正文(采集端自动提取,可能有缺失)

ChangelogRelease notesOct 5, 2026Pi 1.0.4GitHub releasenpmNew Features

Tool patterns and --no-mcp: --tools and --exclude-tools accept * patterns, for example --tools read,codemode,'mcp__radius__*' keeps only one MCP server's tools. --tools now keeps MCP tools unless an entry starts with mcp__, and --no-mcp turns off MCP for one run. See Tools and MCP tools. Codemode persists images: tools.read() on an image file now gives back an image block that image() can show. See Call tools.

Added

Added * patterns to --tools and --exclude-tools, for example --tools read,codemode,'mcp__radius__*' Added --no-mcp to disable the built-in MCP support for one run

Fixed

Fixed syntax highlighting losing colors after the first line of multiline strings and comments in fenced code blocks (#10143) Fixed codemode scripts not receiving images from read: tools.read() now resolves to an image block for image files, which image() shows (#10251) Fixed MCP OAuth sign-in failing with invalid_redirect_uri on servers with OpenID Connect client registration, such as mcp.modem.dev: pi now registers as a native client (#10493) Fixed --tools removing MCP tools, which left pi --tools codemode without any MCP servers. --tools now keeps MCP tools unless an entry starts with mcp__ Fixed MCP session shutdown returning while a server was still connecting, leaving its transport open until the server answered or timed out (#10249) Fixed system prompt rules and the skills hint naming tools hidden by prepareLoadout. Hidden tools are left out of the rules, the skills hint names no tool when the file reader is hidden, and codemode shows each tool's prompt guidelines with its declaration; ToolLoadout gains getPromptGuidelines() (#10343) Fixed Bedrock requests that fail with The pending stream has been canceled after a stalled HTTP/2 connection not being retried automatically (#10379) Fixed codemode scripts that patch built-ins (for example Array.prototype.toJSON = ...) crashing pi and leaving the tool call unsettled. Built-ins are now frozen before the script runs, so such patches have no effect (#10444)

原文入口

阅读原文(pi.dev)

原文将在新窗口打开。收录时间不是内容更新时间;正文、译文与解读的版权归原作者/来源所有,本站仅作个人阅读辅助并保留原文入口;页面时间均为北京时间。

作者/署名来自原文结构化字段(Atom/RSS/HTML meta/JSON-LD;GitHub release 显示的是发布者账号),未经模型补充。

了解来源批准与收录规则