黄奕彬

外部精选

omp · v18.14.0

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

阅读原文(github.com)
来源
oh-my-pi (omp) releases ↗
作者 / 署名
github-actions[bot]
来源更新时间
本站收录时间
原文域名
github.com

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

结构化摘要 AI 生成

背景与问题

这是 oh-my-pi (omp) v18.14.0 的版本发布说明(changelog),面向使用该工具集及其各子包的升级用户,回答"从这个版本升级会遇到什么破坏性变更、获得哪些新功能与修复"。上一版本为 v18.13.3。

全文按包组织,每个包内分为 Breaking Changes / Added / Changed / Fixed,核心是破坏性变更与新增能力。

方法或内容

按 9 个包分节发布变更:

  • @oh-my-pi/pi-agent-core:移除 Bun event-loop workaround,新增审批路径与日志上下文
  • @oh-my-pi/pi-ai:模块迁移、mTLS、按需加载、多项修复
  • @oh-my-pi/pi-catalog:移除 models.json,新增定价变更检测与 Vertex 选择器轴
  • @oh-my-pi/pi-coding-agent:out:// 中间响应、computer-tool 审批模式、WebMCP 改用 Chrome 原生支持
  • @oh-my-pi/pi-natives:内置 rsync 与 ast-grep
  • @oh-my-pi/omp-stats、pi-tui、pi-utils、pi-wire:性能与修复
  • 附 PR 清单、10 位新贡献者及完整链路 v18.13.3...v18.14.0

关键发现 / 结果

关键变更点:

  • 移除 utils/yield 中 Bun event-loop workaround,agent 循环不再插入协作式 sleep
  • 移除 @oh-my-pi/pi-catalog/models.json 原始导出,改用内置注册表 API
  • 移除 invalidateFsScanCache API 及 FS_SCAN_CACHE_TTL_MS 等 4 个环境变量
  • WebMCP 改用 Chrome 原生支持(WebMcpController 接受 Puppeteer Page),Tern 标签页不再支持
  • 新增 out:// 中间响应(流式上限 64 KiB,TUI 默认启用,print/RPC/ACP 默认禁用)
  • 新增 Anthropic mTLS(CLAUDE_CODE_CLIENT_CERT、CLAUDE_CODE_CLIENT_KEY)
  • 内置 rsync(兼容 rsync 3.5.1、协议版本 29–33,不支持 daemon serving)与 ast-grep(sg)
  • omp stats 大型历史同步性能提升约 2–5×,升级后首次同步最长可能需一分钟
  • Provider 实现改为按需加载,模型刷新 CPU 占用大幅降低
  • 修复数十项问题,包括 Mistral thinking 重放 422、OAuth 取消刷新导致会话中止等

结论与意义

原文未给出独立结论段。从 Breaking Changes 可得的适用边界:

  • 需更新 pi-ai 中 Anthropic/Codex/OpenAI helpers 的导入位置;自定义工具加载器构造函数首个参数改为 cwd;StatusLineHost.resetExpiryNotice 需改用新签名
  • 内置 rsync 不支持 daemon serving,PI_DISABLE_UUTILS_DESTRUCTIVE 时继续使用系统 rsync
  • tools.approval["computer.control"] 审批模式本身不授予访问权
  • 打包的 HTML 查看器使用完整性固定的共享资源,需要网络访问;源码检出仍内嵌查看器
  • provider 限定的模型选择器必须精确匹配,模糊匹配仅限裸选择器(如 opus)

AI 解读 AI 生成

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

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

来源日期为 2026年10月30日 02:25(北京时间),即北京时间 2026-10-30 02:25:10 发布。内容描述 v18.13.3...v18.14.0 这一区间的变更快照。发布之后这些条目是否仍适用于更新版本,原文未说明。

空间:谁的环境 / 场景

适用对象是 oh-my-pi (omp) 工具集的用户与扩展开发者,涉及 9 个包:pi-agent-core、pi-ai、pi-catalog、pi-coding-agent、pi-natives、omp-stats、pi-tui、pi-utils、pi-wire。

适用环境:版本 v18.14.0;操作系统覆盖 Linux、macOS、Windows(如终端标题恢复修复提及 Windows consoles、macOS computer-use 行为改进)。

使用形态包括交互式 TUI、print/RPC/ACP 会话、SSH/tmux 远程会话、浏览器/手机 WebRTC 客户端、live voice 会话、Chrome 原生 WebMCP。

变量:实际改变了什么

相对 v18.13.3 的实际改变:

  • 结构:移除 models.json、theme/defaults、invalidateFsScanCache、ToolExecutionHandle.setToolActivityVisible、page-hook 安装辅助与桥接常量
  • 行为:agent 循环不再插入 sleep;provider 按需加载;scoped client ID 不再回退扫描全部模型;. 与 c 快捷方式改为仅回答未答复的最后消息;OpenAI live steering 对 GPT 模型默认禁用;tui.autoGraph 默认 auto
  • 新能力:out://、任务文件输入(task.file=true,记录路径与 SHA-256)、会话置顶(Alt+K / Alt+Shift+K)、PI_LINK_SCHEME、ctx.startLive({ sdpOffer })、prewalk.from / prewalk.into、内置 rsync / ast-grep
  • 性能:stats 同步约 2–5×、文件系统搜索更快、目录列表可安全复用
  • 价格等商业数据变化原文未说明

区分:包含 ≠ 相关 ≠ 因果

有明确因果表述的(按原文陈述):

  • provider 按需加载 → 原文称减少启动与内存开销
  • 会话设置期预取凭据用量 → 不选择、不固定、不推进 OAuth 账户轮换
  • usage 信息暂不可用时账户策略优先 → 原文称使新会话保持在首选账户
  • 移除请求中的过期截图 → 修复 Factory Droid GPT/Grok 的 HTTP 413

属于包含/相关而非因果的:

  • PR 编号、贡献者与变更条目是 GitHub 的对应记录关系
  • "兼容 rsync 3.5.1 与协议 29–33" 是兼容性声明,非因果
  • 破坏性变更与后续修复在时间上相继出现,但原文未声称二者因果

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

署名(仅依结构化作者字段):github-actions[bot],即由自动化机器人账号发布的 release;正文列出的贡献者为 GitHub 用户名(如 @iliaal、@will-bogusz、@H4vC、@materemias 等),属于变更记录关联信息而非署名字段。关键技术按原文描述:

  • AgentTool.approvalRestrictionPaths:工具报告其读取的路径,使受限文件夹审批可覆盖这些路径
  • Agent.logContext / logger.withContext(fields, fn):向日志记录附加上下文字段
  • mTLS:通过 CLAUDE_CODE_CLIENT_CERT、CLAUDE_CODE_CLIENT_KEY 环境变量为 Anthropic 连接启用
  • WebMcpController:接受 Puppeteer Page,使用 Chrome 原生 WebMCP 支持
  • nextBuildPriceChange(cost, now):识别模型带日期定价卡可能变更的时间点
  • out://:向其写入 Markdown 发送中间响应而不结束任务,流式上限 64 KiB
  • ctx.startLive({ sdpOffer }):以调用方自有 WebRTC peer 启动 live voice 会话

元反空综合结论

元:这份内容本质在解决"版本升级的沟通问题"——让 omp 用户在升级 v18.14.0 前知道哪些 API 与行为会破坏现有用法、哪些能力新增、哪些缺陷已修复,是面向存量用户的迁移与更新说明。

反:最可能有边界或失效的主张:性能数字是有条件估算("约 2–5×"仅限大型历史的 stats 同步;"首次同步最长一分钟"是一次性代价);依赖外部行为一致的修复(如遵守 provider 的 Retry-After、LiteLLM 对 Mistral 重放的行为、Factory Droid 图像预算逐出截图)其效果取决于上游服务行为;"升级后首次同步需优化数据库"暗示旧数据迁移路径,未来版本可能改变。

空:去掉叙事后剩下的必要事实是——v18.14.0 相对 v18.13.3 移除了多个导出/工具/环境变量(models.json、invalidateFsScanCache、FS_SCAN_CACHE_* 等),调整了若干默认行为,新增 out://、mTLS、内置 rsync/ast-grep、会话置顶等能力,并修复数十项缺陷,由 github-actions[bot] 自动发布。

综合结论:这是一份信息密度高、以升级迁移为核心诉求的 changelog,最可靠的用法是作为从 v18.13.3 升级时的逐项对照清单,尤其需先核对各包 Breaking Changes;性能与上游行为相关表述应视为发布时的条件性结论而非长期保证。

中文译文 AI 生成

@oh-my-pi/pi-agent-core

破坏性变更

  • 从 @oh-my-pi/pi-agent-core/utils/yield 中移除了 Bun 事件循环的变通工具;agent 循环不再在流式传输期间或工具调用之间插入协作式休眠。

新增

  • 新增 AgentTool.approvalRestrictionPaths,使工具能够报告其读取的路径,从而让受限文件夹的授权覆盖这些路径,无需为每个路径单独记住授权。
  • 新增 Agent.logContext,可为 agent 运行期间写入的每条日志记录添加自定义上下文字段。

@oh-my-pi/pi-ai

破坏性变更

  • 将 Anthropic header 与 endpoint 辅助函数,连同 Codex 会话/传输检查以及 OpenAI Responses 重放/存储辅助函数,迁移到了专门的 provider 模块。请更新原先位置的导入。
  • 更新了 auth-gateway 模型解析器,使其接收 ModelResolveOptions,包括该路由的原生 API wire 协议以及作用域客户端接受的授权。作用域客户端 ID 不再回退到扫描所有模型;解析器现在会选择最佳的许可候选。

新增

  • 通过 CLAUDE_CODE_CLIENT_CERT 和 CLAUDE_CODE_CLIENT_KEY 环境变量,为 Anthropic 连接新增了 mTLS 支持。

变更

  • Provider 实现现在按需加载,在保留现有的流超时、取消和 host 覆盖机制的同时,降低了启动和内存开销。
  • 当使用量信息暂时不可用时,账户策略优先级现在优先生效,使新会话保持在首选账户上。
  • 改进了针对特定 provider 的凭据使用量查询,使其不再等待无关的 provider,同时保留缓存新鲜度、取消隔离和完整的聚合报告。相应的服务端延迟改进需要更新后的 auth broker。
  • 凭据使用量现在在会话设置期间预取,且不会选择、固定或推进 OAuth 账户轮换。

修复

  • 修复了 Mistral thinking 消息重放请求可能被 LiteLLM 以 422 extra_forbidden 错误拒绝的问题。
  • 修复了原生 Judge API 请求缺少 omp/<version> User-Agent 的问题,使上游统计能够正确识别 omp 的使用情况。
  • 修复了 Codex 在 WebSocket 和 SSE 上的容量错误重试忽略 provider 提供的 Retry-After 延迟而过早重试的问题。
  • 修复了被取消的 OAuth 刷新请求导致整个会话中止的问题,并确保加入现有刷新的请求在原始请求被取消时仍能使用刷新后的凭据。
  • 修复了 Cursor 模型在后续轮次或较早消息位于当前活动轮次之前时,丢失 omp 系统提示上下文(包括上下文文件、skills 和 rules)的问题。
  • 修复了刷新 OAuth 凭据的短生命周期命令(如 omp token --force-refresh)在完成后仍保持打开数秒的问题。
  • 修复了配置 TYPESAFE_BASE_URL 时的 TypeSafe 认证问题,改为针对正确的 /v1/models endpoint 验证密钥。
  • 修复了在非推理模型上进行强制工具调用导致未处理的 reasoning-effort 错误的问题。
  • 修复了被中断的轮次报告传输错误而非调用方提供的取消原因的问题。
  • 通过支持 keepalive 和已配置的首事件超时,修复了长时间运行的 pi-native 轮次在首个事件之前因 fetch 或代理超时被终止的问题。
  • 修复了 auth gateway 在流式传输期间报告上游故障时 pi-native 客户端崩溃的问题。
  • 修复了 Cursor 轮次在轮次中途流式中断后因自动重试收到零 token 的 provider 错误而失败的问题;重试现在会在轮换后的对话上继续。
  • 修正了 auth-gateway 调试日志,使其不再在返回使用量限制错误且未重试时声称已发生重试。

@oh-my-pi/pi-catalog

破坏性变更

  • 移除了原始的 @oh-my-pi/pi-catalog/models.json 导出;请改用内置的模型注册表 API。

新增

  • 新增 nextBuildPriceChange(cost, now),用于识别模型的带日期定价卡何时可能变更,使调用方在此之前可以安全复用较早的构建。
  • 为 Google Vertex 新增了 selector-revision-suffix 目录轴,使 google-vertex/claude-opus-4-8 精确解析为 claude-opus-4-8@default。

变更

  • 缩减了内置模型目录的大小和加载开销。
  • 更新了角色默认值,使 Factory Droid 图像模型成为 image 角色的首选,让 generate_image 仅凭 Factory 登录即可工作。
  • 更新了 smol 和 slow 角色默认值,改用当前内置的 Cerebras 和 OpenAI Codex 模型标识符。

修复

  • 修复了 Mistral 推理模型的问题,使流式输出的 thinking 出现在转录中,并在后续轮次中得以保留。
  • 修复了 Mistral 托管的 DeepSeek 对话在包含助手推理历史时,后续轮次出现 HTTP 422 错误的问题。
  • 修复了 DeepSeek V4.1 Flash 图像附件在发布者命名空间模型 ID(如 ds/deepseek-flash)下被丢弃的问题。

@oh-my-pi/pi-coding-agent

破坏性变更

  • 自定义工具加载器现在自行解析注入的 host SDK;构造函数的第一个参数改为 cwd,不再是 pi 命名空间。
  • WebMCP 现在通过 WebMcpController 使用 Chrome 原生的 WebMCP 支持,该控制器接受一个 Puppeteer Page。原先的 page-hook 安装辅助函数、bridge 常量和 page-hook 类型已被移除;Tern 标签页不再支持 WebMCP。
  • --model、设置、角色和任务 agent 中的带 provider 限定的模型选择器必须指明精确的模型 ID 或别名。近似匹配现在会失败并给出有用的错误与建议,而不是静默选择同系列模型。裸选择器(如 opus)保留模糊匹配,Google Vertex Claude 别名仍受支持。较旧的已迁移 web 回退链将已停用的 Codex 条目替换为 openai-codex/gpt-5.6-sol。

新增

  • Agent 可以通过向 out:// 写入 Markdown(或在 bash 中使用 > out://)来发送中间响应而无需结束当前任务,流式输出最多 64 KiB。该功能在交互式 TUI 中默认启用,可通过 out.enabled 配置;在 print、RPC 和 ACP 会话中默认禁用。

新增 computer-tool 审批模式:tools.approval["computer.control"] 可允许在专用机器上进行无人值守的前台控制,或在不提示的情况下拒绝请求。审批模式本身并不授予访问权限。

新增可选的任务文件输入(task.file=true),允许从绝对 UTF-8 文件路径或 local:// URL 加载 subagent 指令,并记录所提交的路径与 SHA-256(#17133 由 @iliaal 完成)。

可在 resume 选择器中使用 Alt+K 和 Alt+Shift+K 固定或取消固定会话,也可使用可重映射的 app.session.pin 和 app.session.unpin 操作。被固定的会话会移至顶部,并在搜索结果中优先显示(#9837 由 @zhang17-24 完成)。

新增 PI_LINK_SCHEME 和可选的 PI_LINK_HOST,允许来自 SSH 或 tmux 会话的文件链接通过桌面协议处理器打开(#15855 由 @KunoLu 完成)。

扩展和 RPC 客户端可通过 ctx.startLive({ sdpOffer }) 或 live_connect,使用自己的 WebRTC peer 启动实时语音会话,包括手机浏览器客户端(#17013 由 @materemias 完成)。

扩展可通过需主动启用的 extensionRenderers.assistantText 设置自定义助手文本渲染并重新渲染单条回复(#16238 由 @materemias 完成),还可注册带扩展回调和渲染器回退的交互式链接 scheme(#16239 由 @materemias 完成)。

/debug 报告现在包含 session-logs.txt,其中含有报告会话及其 subagent 在当天写入的所有日志记录。

新增 prewalk.from 和 prewalk.into 设置,用于选择规划模型和移交目标(默认 @default → @smol);/prewalk [into] 和 /prewalk restart [from] [into] 可为单条命令覆盖这些设置(#17373 由 @H4vC 完成)。

变更

通过将非必需的 UI、无障碍、浏览器、provider、slash 命令和交互式 composer 的加载推迟到需要时进行,并让相互独立的会话准备工作重叠执行,提升了启动响应速度。

对 GPT 模型,OpenAI live steering 现在默认禁用。输入的消息会等待下一个工具边界,除非启用了 providers.openaiLiveSteering,从而避免不支持的 in-flight 消息错误。

HTML 导出现在与 /stats 的视觉设计保持一致,提供对比度更高的浅色主题、时间线和完整 trace 视图,以及针对嵌套 subagent 和 advisor 的导航。打包的查看器使用完整性固定的共享资源并需要网络访问;源码检出版本则继续内嵌查看器。

tui.autoGraph 现在默认为 auto:对受支持的原生 TypeSafe judge 模型,图表由 judge 精化;否则使用内置估算。

文件系统变更会被自动检测,因此编辑后不再需要手动使扫描缓存失效。

模型刷新通过复用未变更的模型并避免重复打开模型缓存数据库,显著降低了 CPU 使用。

重叠的 sloppy-edit 操作现在按顺序应用,每个操作都会与前一操作的结果进行匹配。

PI_INTENT_PROMPT 和 PI_INTENT_DESC 现在可自定义 i intent 字段的系统指引和工具 schema 描述。

eval 中打印的 JSON 值(包括大型 Python 字典和列表)现在以可折叠的 JSON 树形式显示。

Codex 和 Claude 的速率限制重置警告现在在所有会话和窗口中每次重置只出现一次,且仅在最后六小时内显示;状态栏继续显示倒计时。

. 和 c 继续快捷键现在只是回答上一条未回答的消息,而不是添加隐藏的 continue 指令。

启用 bash.gitGuard 后,checkout、switch、restore、reset 和 stash 操作可在 linked worktree 中安全运行,同时被丢弃的未提交变更会被保留以便恢复。

启用了 computer use 的会话会在第一次 computer 调用之前收到桌面指南。

Tern 界面现在以与聊天消息一致的方式呈现警告、错误、更新通知、文件读取和已完成的后台工作。

静音的实时语音会话在语音模型开始工作期间保持可见的静音状态。

修复

修复了当符号链接切换到同一目录下的另一个文件后,实时配置重载会遗漏紧随其后编辑的问题。

修复了目录刷新后的 auth-gateway 模型路由,使裸模型 ID 选择优先级最高的已持有凭据的 provider,并以 wire-format 兼容性作为平局判定依据。

修复了图表推荐从行名或列名错误推断数值越高或越低更好的问题;智能图表功能现在使用 judge,并避免为不适合的数字文本(如页码或步骤号)绘制图表。

修复了流经后台 Bash 管道的二进制数据被显示为损坏文本或被计为巨量行输出的问题。

修复了 worker 退出后重新挂载时浏览器标签页关闭延迟的问题。

修复了启动警告被 Tern 界面遮挡的问题;这些警告现在以普通的应用内警告形式显示。

修复了列表为空时 todo init 清除现有平铺条目的问题。

修复了使用 detached 事件处理器的旧扩展无法加载的问题。

修复了在 vibe 模式期间连接的 MCP 工具被过早激活并超出 provider 工具限制的问题。

修复了在同时提供日志就绪条件时 Bash 服务拒绝端口 0 的问题。

修复了上下文使用量与自动压缩对内联工具描述符的 token 用量高估的问题。

修复了在不支持 title-stack 的终端(包括 Windows 控制台)上退出后终端标题未被恢复的问题。

修复了缓存的审批目录授权未覆盖请求中所有目标的问题。

修复了启动期间输入的文本(包括恢复的草稿)被延迟到启动完成后才处理的问题。

修复了 git push 成功后 pull-request 元数据和 diff 仍停留在旧状态的问题。

修复了音频在词语中途停顿时实时语音播放出现咔哒声的问题。

修复了在缓存审批或受限文件夹下 read 从截断提示中拒绝 artifact URL 的问题。

修复了对等任务的确认被误认为最终答案的问题,wait 现在会继续等待直到对端回复。

失败的 Hindsight 记忆召回与保留操作现在会产生可见的警告,而不再在没有记忆的情况下静默继续。

修复了在合并中止或外部文件更改之后,长冲突路径的处理、冲突内容选择器以及过期冲突 ID 的问题。

修复了被取消的 MCP OAuth 流程与身份验证查找导致会话崩溃的问题。

修复了不再使用的空闲本地模型 worker 的进度 HUD 条目问题。

提升了 LSP 诊断在冷启动、push-diagnostics 服务器、仅在保存时诊断的服务器、重试、多服务器与多文件编辑以及重新打开文件等场景下的可靠性;不完整的结果不再被报告为无问题,重复的 clangd 检查也更快了。

修复了实时作业小部件显示来自文件、网页或搜索结果的无关文本而非实际作业状态的问题。

修复了反复失败的 advisor 批次被无限重试的问题;这些批次现在会在三次失败后被丢弃。

修复了前缀绑定的 Claude 模型上的 thinking overrides 在压缩与重试期间丢失其 provider 前缀行为的问题。

修复了失败的大值 JSON 查询显示被拒绝的值而非有用错误的问题。

修复了当后台结果在取消或中断之后到达时,F5 重试报告没有重试的问题。

修复了 WebMCP 调用错误为空以及超时的页面调用继续运行的问题。

通过从请求中移除过期的截图,修复了 Factory Droid GPT 和 Grok 在 computer-use 会话之后出现的 HTTP 413 错误。

修复了配置的默认模型或听写模型不可用时被静默替换的问题;omp 现在会发出警告并指明回退模型。

通过将这些检出添加到活动工作区,改进了同级 Git worktree 中文件的 LSP 引用。

通过在一个操作中打开应用并检查其返回的窗口,改进了 macOS 上针对无窗口应用的 computer-use 行为。

@oh-my-pi/pi-natives

破坏性变更

移除了 invalidateFsScanCache API 以及相关的文件系统扫描缓存环境变量(FS_SCAN_CACHE_TTL_MS、FS_SCAN_EMPTY_RECHECK_MS、FS_SCAN_CACHE_MAX_ENTRIES 和 FS_SCAN_CACHE_MAX_BYTES);文件系统列表缓存现在会自动管理。

新增

为 bash 工具添加了内置的 rsync 实现,在 Linux、macOS 和 Windows 上兼容 rsync 3.5.1 和协议版本 29–33。

它支持本地复制、通过 -e 使用 SSH 远程 shell 以及 rsync:// 守护进程,无需安装二进制文件;不支持守护进程服务端功能,PI_DISABLE_UUTILS_DESTRUCTIVE 仍会继续使用系统 rsync。

为 bash 工具添加了内置 ast-grep(也可通过 sg 使用)支持,用于结构化代码搜索与重写,包括模式匹配、重写、上下文、标题和 JSON 输出。

变更

提升了原生文件系统搜索性能,包括更快的 globbing 以及更高效的 grep、模糊查找、工作区列表和结构化搜索/编辑操作,同时保留了确定性的结果排序与流式行为。

原生搜索以及 bash 工具内置的 rg、grep、fd、find 和 ast-grep 现在在被取消或超时时会立即停止文件系统工作,包括在 JavaScript 提供的文件系统上进行的搜索,以及在读取大文件时被中断的搜索。

bash 工具内置的 rg 和递归 grep 现在会并行搜索文件,同时保留按路径排序的输出;grep 在达到 maxCount 后也能立即停止。

启用了在 cache: true 时对未变更目录列表的安全复用,并通过时间戳校验防止过期结果。

修复

修复了被取消的原生目录搜索在启动期间仍使 filesystem-provider 请求继续运行的问题。

修复了 macOS 上 cat、grep、head、wc、read 和 mapfile 等内置 bash 命令在 FIFO 输入结束时挂起的问题;read -t 现在会在 EOF 时返回。

修复了针对带样式下划线、背景色和冒号形式 RGB 颜色的 ANSI 文本换行问题。

通过将输出平滑地淡出至静音再恢复,修复了当队列在波形中途耗尽时原生音频播放中的咔哒声问题。

@oh-my-pi/omp-stats

变更

在大体积历史记录上,将 omp stats 会话同步性能提升了约 2–5 倍。升级后的首次同步在 stats 数据库优化期间可能需要长达一分钟。

修复

修复了当另一个 dashboard 正在同步会话或配置端口已被占用时 /stats 和 omp stats 失败的问题;现在会复用繁忙的 dashboard,并在必要时选择空闲端口。

@oh-my-pi/pi-tui

破坏性变更

将 PINNED_HUD_TOGGLE_ID 移至 coding agent 的任务输出管理器,因此预留 subagent ID 不再加载交互式编辑器。

更新了 StatusLineHost.resetExpiryNotice,使其接收会话并管理警告去重;自定义 status-line 组件必须使用新的函数签名。

移除了 ToolExecutionHandle.setToolActivityVisible;tool-activity 可见性现在由 transcript 组件控制,而 reply blocks 默认保持可见。

移除了 @oh-my-pi/pi-tui/theme/defaults 导出。捆绑的调色板现在可通过来自 theme/defaults.json 的 getBuiltinThemes() 获取。

修复

修复了 table-chart 的方向检测,使度量不再基于标题词汇被错误地标记为“更好”;单度量表现在会被送去判定本地绘图是否合适。

修复了 LSP 诊断在语言服务器尚未报告之前错误地显示 “No issues” 的问题;此类文件现在会显示为未验证。(#17293 by @JustasMasiulis)

修复了 Tern 中的 Esc-Esc 回退会选择没有可见输出的被中断轮次而非最后显示轮次的问题。

修复了流式代码块在闭合围栏到达之前丢失滚出屏幕的行的问题;已完成的行现在仍可在 scrollback 中查看。(#17333 by @gzkGit777)

@oh-my-pi/pi-utils

新增

添加了 logger.withContext(fields, fn),可将上下文字段附加到某个函数及其异步工作期间产生的所有记录,另添加了 logger.withoutContext(fn),用于不应继承调用者上下文的工作。

修复

修复了 untilAborted,使传递给已中止信号的 promise 仍会被观察,避免后续的 rejection 被报告为 unhandled。

@oh-my-pi/pi-wire

新增

  • 新增 TSP json 类型,用于在终端中将原始 JSON 值显示为可交互、可展开的树。
  • 新增 TspEditorProps.typeahead 支持,使尚不能读取输入的程序可以保留已键入的文本、在光标处显示,并在输入可用时提交。

更新内容

  • fix(coding-agent):允许 artifact 读取通过审批检查,由 @iliaal 在 #17282 中提交
  • fix(catalog):为带命名空间的 id 保留 DeepSeek V4.1 Flash 图像,由 @ZanDev32 在 #16470 中提交
  • fix(coding-agent):当 Hindsight 记忆召回失败时发出警告,由 @enieuwy 在 #17278 中提交
  • fix(ai):使已取消的 OAuth 刷新 rejection 保持被观察,由 @H4vC 在 #17290 中提交
  • feat(session-picker):新增固定与取消固定操作,由 @zhang17-24 在 #9837 中提交
  • feat(tui):在远程会话中支持带主机限定的文件链接,由 @KunoLu 在 #15855 中提交
  • feat(coding-agent):为扩展新增可选择启用的助手文本渲染器,由 @materemias 在 #16238 中提交
  • feat(coding-agent):在调用方持有的 WebRTC peer 上运行实时语音会话,由 @materemias 在 #17013 中提交
  • fix(coding-agent):将空闲 tiny-worker 的卸载排除在进度 HUD 之外,由 @H4vC 在 #17305 中提交
  • fix(lsp):修复诊断停滞、超时或将未应答的文件报告为 clean 的问题,由 @JustasMasiulis 在 #17293 中提交
  • fix(approval):只提供能覆盖所有目标的目录授权,由 @iliaal 在 #17309 中提交
  • feat(task):从 UTF-8 文件分派 subagent 指令,由 @iliaal 在 #17133 中提交
  • fix(conflict):跨列表、范围和注册表跟随实时冲突块,由 @alphastorm 在 #17177 中提交
  • fix(github):在 git push 后刷新 pull request diff,由 @alphastorm 在 #17183 中提交
  • fix(wait):在对等请求的回复到达前使其保持未清状态,由 @alphastorm 在 #17176 中提交
  • feat(coding-agent):将扩展所属链接的点击路由到对应扩展,由 @materemias 在 #16239 中提交
  • fix(coding-agent):为没有标题栈的终端在退出时清除终端标题,由 @asuffield 在 #17321 中提交
  • fix(ai):在带有 cursor 历史的根上保留 omp 系统提示词,由 @robfeldmann 在 #17325 中提交
  • fix(ai):让账户策略优先级排在缺失的用量报告之前,由 @will-bogusz 在 #15124 中提交
  • fix(lsp):在打开语言服务器工作区的文件之前向其添加另一个 checkout,由 @will-bogusz 在 #16271 中提交
  • fix(coding-agent):让未指明确切 id 的带 provider 限定的模型选择器直接失败,而不是运行同级模型,由 @will-bogusz 在 #16297 中提交
  • fix(coding-agent):丢弃被 Factory 图像预算逐出的 computer 截图,由 @will-bogusz 在 #16564 中提交
  • fix(ai):不再记录网关并未发起的用量上限重试,由 @will-bogusz 在 #16579 中提交
  • feat(coding-agent):为每条日志记录标记写入它的会话,由 @will-bogusz 在 #16587 中提交
  • fix(browser):按需使用 Chrome 原生 WebMCP,而不是注入页面钩子,由 @will-bogusz 在 #16756 中提交
  • feat(coding-agent):允许 tools.approval 在无人值守的机器上授予 computer 前台控制权,由 @will-bogusz 在 #16917 中提交
  • feat(coding-agent):无需读取文档即可启动桌面任务,由 @will-bogusz 在 #16918 中提交
  • fix(coding-agent):在启动 macOS 桌面任务时避免失败的窗口查找,由 @will-bogusz 在 #16925 中提交
  • feat(pi-shell):保留 git 守卫对其他会话共享的 checkout 的拒绝,由 @will-bogusz 在 #17349 中提交
  • feat(catalog):在图像角色中回退到 Factory Droid 图像模型,由 @will-bogusz 在 #17351 中提交
  • fix(catalog):防止 mistral deepseek 推理内容的重放,由 @roboomp 在 #17366 中提交
  • fix(ai):报告调用方的中止原因而非传输层的中止文本,由 @MaisonnatM 在 #17216 中提交
  • fix(coding-agent):保留大型 json 查询的错误原因,由 @roboomp 在 #17270 中提交
  • fix(coding-agent):在中断后越过遗留的尾部 async-result 进行重试,由 @roboomp 在 #17272 中提交
  • fix(coding-agent):在 thinking 覆盖下保持 catalog 前缀绑定,由 @roboomp 在 #17279 中提交
  • fix(ai):处理没有受支持 effort 的已禁用推理,由 @wyyufeng 在 #17283 中提交
  • fix(advisor):在上下文维护的 re-prime 过程中保留三次 strike,由 @joshuaswarren 在 #17291 中提交
  • fix(voice):对 underrun 前后的播放边缘做淡出处理,由 @roboomp 在 #17299 中提交
  • fix(ai):将推理 user agent 应用于原生 judge 请求,由 @BizerNotNull 在 #17311 中提交
  • test(ai):移除竞态超时回退,由 @DROOdotFOO 在 #17315 中提交
  • fix(ai):在收到 400 后重试已轮换的 Cursor 会话,由 @morali 在 #17319 中提交
  • fix(context):在描述被内联时统计已修剪的 tool spec,由 @roboomp 在 #17332 中提交
  • fix(tui):将流式 open fence 中已完成的行退场,由 @gzkGit777 在 #17333 中提交
  • fix(coding-agent):为分离的 pi.events 调用绑定 EventBus 原型方法,由 @Zynoo71 在 #17338 中提交
  • fix(coding-agent):使 mcp 刷新不进入 vibe director 工具集,由 @roboomp 在 #17343 中提交
  • fix(coding-agent):在列表为空时保留扁平的 todo 初始化项,由 @roboomp 在 #17348 中提交
  • fix(ai):在 Codex 流错误时保留 Retry-After 请求头,由 @iFwu 在 #17362 中提交
  • fix(ai):使静默的 pi-native 流在超过 bun 的 fetch 超时后仍保持存活,由 @roboomp 在 #17364 中提交
  • fix(ai):捕获并重放 mistral thinking 内容片段,由 @roboomp 在 #17377 中提交
  • feat(prewalk):新增 prewalk.from/prewalk.into 及 /prewalk 选择器参数,由 @H4vC 在 #17373 中提交

新贡献者

  • @ZanDev32 在 #16470 中完成了首次贡献
  • @materemias 在 #16238 中完成了首次贡献
  • @wyyufeng 在 #17283 中完成了首次贡献
  • @joshuaswarren 在 #17291 中完成了首次贡献
  • @BizerNotNull 在 #17311 中完成了首次贡献
  • @DROOdotFOO 在 #17315 中完成了首次贡献
  • @morali 在 #17319 中完成了首次贡献
  • @gzkGit777 在 #17333 中完成了首次贡献
  • @Zynoo71 在 #17338 中完成了首次贡献
  • @iFwu 在 #17362 中完成了首次贡献

完整更新日志:v18.13.3...v18.14.0

展开原文提取正文(采集端自动提取,可能有缺失)

@oh-my-pi/pi-agent-core Breaking Changes

Removed the Bun event-loop workaround utilities from @oh-my-pi/pi-agent-core/utils/yield; agent loops no longer insert cooperative sleeps while streaming or between tool calls.

Added

Added AgentTool.approvalRestrictionPaths so tools can report the paths they read, allowing restricted-folder approvals to cover those paths without remembering approval separately for each path. Added Agent.logContext, which adds custom context fields to every log record written during an agent run.

@oh-my-pi/pi-ai Breaking Changes

Moved Anthropic header and endpoint helpers, along with Codex session/transport inspection and OpenAI Responses replay/storage helpers, to dedicated provider modules. Update imports from the previous locations. Updated auth-gateway model resolvers to receive ModelResolveOptions, including the route's native API wire and the scoped client's accepted grants. Scoped client IDs no longer fall back to scanning all models; resolvers now select the best permitted candidate.

Added

Added mTLS support for Anthropic connections through the CLAUDE_CODE_CLIENT_CERT and CLAUDE_CODE_CLIENT_KEY environment variables.

Changed

Provider implementations are now loaded on demand, reducing startup and memory overhead while preserving existing stream timeouts, cancellation, and host overrides. Account policy priority now takes precedence when usage information is temporarily unavailable, keeping new sessions on the preferred account. Improved provider-specific credential usage lookups so they no longer wait for unrelated providers, while preserving cache freshness, cancellation isolation, and complete aggregate reports. The corresponding server-side latency improvement requires an updated auth broker. Credential usage is now prefetched during session setup without selecting, pinning, or advancing the OAuth account rotation.

Fixed

Fixed Mistral thinking-message replay requests that could be rejected by LiteLLM with a 422 extra_forbidden error. Fixed native Judge API requests missing the omp/<version> User-Agent, so omp usage is correctly identified in upstream statistics. Fixed Codex capacity-error retries over WebSocket and SSE ignoring provider-supplied Retry-After delays and retrying too early. Fixed cancelled OAuth refresh requests aborting the entire session, and ensured requests joining an existing refresh can still use the refreshed credential when the original request is cancelled. Fixed Cursor models losing omp system-prompt context, including context files, skills, and rules, on subsequent turns or when earlier messages precede the active turn. Fixed short-lived commands that refresh OAuth credentials, such as omp token --force-refresh, remaining open for several seconds after completing. Fixed TypeSafe authentication when TYPESAFE_BASE_URL is configured by validating keys against the correct /v1/models endpoint. Fixed forced tool calls on non-reasoning models causing an unhandled reasoning-effort error. Fixed interrupted turns reporting a transport error instead of the caller-provided cancellation reason. Fixed long-running pi-native turns being terminated before their first event by fetch or proxy timeouts by supporting keepalives and the configured first-event timeout. Fixed pi-native clients crashing when the auth gateway reports an upstream failure during streaming. Fixed Cursor turns failing after a mid-turn stream interruption when an automatic retry receives a zero-token provider error; retries now continue on the rotated conversation. Corrected auth-gateway debug logs so they no longer claim a retry occurred when a usage-limit error was returned without retrying.

@oh-my-pi/pi-catalog Breaking Changes

Removed the raw @oh-my-pi/pi-catalog/models.json export; use the bundled model registry APIs instead.

Added

Added nextBuildPriceChange(cost, now) to identify when a model's dated pricing card may change, allowing callers to safely reuse earlier builds until that time. Added the selector-revision-suffix catalog axis for Google Vertex, so google-vertex/claude-opus-4-8 resolves exactly to claude-opus-4-8@default.

Changed

Reduced the bundled model catalog size and loading overhead. Updated role defaults so Factory Droid image models are preferred for the image role, allowing generate_image to work with only a Factory login. Updated smol and slow role defaults to use the currently bundled Cerebras and OpenAI Codex model identifiers.

Fixed

Fixed Mistral reasoning models so streamed thinking appears in the transcript and is preserved for subsequent turns. Fixed later-turn HTTP 422 errors in Mistral-hosted DeepSeek conversations when assistant reasoning history is included. Fixed DeepSeek V4.1 Flash image attachments being dropped for publisher-namespaced model IDs such as ds/deepseek-flash.

@oh-my-pi/pi-coding-agent Breaking Changes

Custom tool loaders now resolve the injected host SDK themselves; constructors take cwd as their first argument instead of a pi namespace. WebMCP now uses Chrome's native WebMCP support through WebMcpController, which accepts a Puppeteer Page. The former page-hook installation helpers, bridge constant, and page-hook types have been removed; Tern tabs no longer support WebMCP. Provider-qualified model selectors in --model, settings, roles, and task agents must identify an exact model ID or alias. Near matches now fail with a helpful error and suggestions instead of silently selecting a sibling model. Bare selectors such as opus retain fuzzy matching, and the Google Vertex Claude alias remains supported. Older migrated web fallback chains replace the retired Codex entry with openai-codex/gpt-5.6-sol.

Added

Agents can send an interim response without ending the current task by writing Markdown to out:// (or using > out:// in bash), with streaming output up to 64 KiB. This is enabled by default in the interactive TUI and can be configured with out.enabled; it is disabled by default in print, RPC, and ACP sessions. Added computer-tool approval modes: tools.approval["computer.control"] can allow unattended foreground control on dedicated machines or deny the request without prompting. The approval mode does not itself grant access. Added optional task-file input (task.file=true), allowing subagent instructions to be loaded from an absolute UTF-8 file path or local:// URL with the submitted path and SHA-256 recorded (#17133 by @iliaal). Sessions can be pinned or unpinned from the resume picker with Alt+K and Alt+Shift+K, or the remappable app.session.pin and app.session.unpin actions. Pinned sessions move to the top and take priority in search results (#9837 by @zhang17-24). Added PI_LINK_SCHEME and optional PI_LINK_HOST, allowing file links from SSH or tmux sessions to open through a desktop protocol handler (#15855 by @KunoLu). Extensions and RPC clients can start live voice sessions using their own WebRTC peer, including phone-browser clients, through ctx.startLive({ sdpOffer }) or live_connect (#17013 by @materemias). Extensions can customize assistant-text rendering and rerender individual replies through the opt-in extensionRenderers.assistantText setting (#16238 by @materemias), and can register interactive link schemes with extension callbacks and renderer fallbacks (#16239 by @materemias). /debug reports now include session-logs.txt containing all log records written by the reporting session and its subagents for the current day. Added prewalk.from and prewalk.into settings to choose the planning model and handoff target (default @default → @smol); /prewalk [into] and /prewalk restart [from] [into] override them for one command (#17373 by @H4vC).

Changed

Improved startup responsiveness by deferring nonessential UI, accessibility, browser, provider, slash-command, and interactive-composer loading until needed, and by overlapping independent session preparation work. OpenAI live steering is now disabled by default for GPT models. Typed messages wait for the next tool boundary unless providers.openaiLiveSteering is enabled, avoiding unsupported in-flight message errors. HTML exports now match the /stats visual design with a higher-contrast light theme, timeline and full-trace views, and navigation for nested subagents and advisors. Packaged viewers use integrity-pinned shared assets and require network access; source checkouts continue to embed the viewer. tui.autoGraph now defaults to auto: charts are refined by the judge for supported native TypeSafe judge models and otherwise use the built-in estimate. Filesystem changes are detected automatically, so manual scan-cache invalidation after edits is no longer needed. Model refreshes use substantially less CPU by reusing unchanged models and avoiding repeated model-cache database opens. Overlapping sloppy-edit operations are now applied sequentially, with each operation matched against the result of the preceding operation. PI_INTENT_PROMPT and PI_INTENT_DESC can now customize the system guidance and tool-schema description for the i intent field. Printed JSON values in eval, including large Python dictionaries and lists, are displayed as collapsible JSON trees. Codex and Claude rate-limit reset warnings now appear once per reset across conversations and windows, only during the final six hours; the status line continues to show the countdown. The . and c continue shortcuts now simply answer an unanswered last message instead of adding a hidden continue directive. With bash.gitGuard enabled, checkout, switch, restore, reset, and stash operations run safely in linked worktrees, while discarded uncommitted changes are preserved for recovery. Sessions with computer use enabled receive the desktop guide before the first computer call. The Tern interface now presents warnings, errors, update notices, file reads, and completed background work consistently with chat messages. Muted live voice sessions remain visibly muted while the voice model starts work.

Fixed

Fixed live configuration reloads missing edits immediately after a symlink switches to another file in the same directory. Fixed auth-gateway model routing after catalog refreshes so bare model IDs select the highest-priority credentialed provider, with wire-format compatibility used as a tie-breaker. Fixed chart recommendations that incorrectly inferred whether higher or lower values were better from row or column names; smart charting now uses the judge and avoids charting unsuitable numeric text such as page or step numbers. Fixed binary data flowing through background Bash pipelines being displayed as corrupted text or counted as huge line output. Fixed browser-tab closing delays when reattaching after a worker exits. Fixed startup warnings being obscured by the Tern interface; they now appear as normal in-app warnings. Fixed todo init clearing existing flat items when list was empty. Fixed legacy extensions using detached event handlers failing to load. Fixed MCP tools connected during vibe mode being activated prematurely and exceeding provider tool limits. Fixed Bash services rejecting port 0 when a log readiness condition was also provided. Fixed context usage and automatic compaction overstating token usage for inline tool descriptors. Fixed terminal titles not being restored after exit on terminals without title-stack support, including Windows consoles. Fixed cached approval directory grants that did not cover every target in a request. Fixed text typed during startup being delayed until startup completed, including resumed drafts. Fixed pull-request metadata and diffs remaining stale after a successful git push. Fixed live voice playback clicks when audio stalls mid-word. Fixed read rejecting artifact URLs from truncation hints under cached approvals or restricted folders. Fixed peer task acknowledgements being mistaken for final answers, so wait continues until the peer replies. Failed Hindsight memory recalls and retention operations now produce visible warnings instead of silently continuing without memory. Fixed long conflict-path handling, conflict-content selectors, and stale conflict IDs after aborted merges or external file changes. Fixed cancelled MCP OAuth flows and authentication lookups from crashing the session. Fixed progress HUD entries for idle local-model workers that were no longer used. Improved LSP diagnostics reliability across cold starts, push-diagnostics servers, save-only servers, retries, multi-server and multi-file edits, and reopened files; incomplete results are no longer reported as clean, and repeated clangd checks are faster. Fixed live job widgets showing incidental text from files, web pages, or search results instead of the actual job status. Fixed repeatedly failing advisor batches being retried indefinitely; they are now dropped after three failures. Fixed thinking overrides on prefix-bound Claude models from losing their provider prefix behavior during compaction and retries. Fixed failed large-value JSON queries from displaying the rejected value instead of a useful error. Fixed F5 retry reporting no retry when a background result arrived after cancellation or interruption. Fixed WebMCP invocation errors being empty and timed-out page invocations continuing to run. Fixed HTTP 413 errors for Factory Droid GPT and Grok after computer-use sessions by removing obsolete screenshots from requests. Fixed unavailable configured default or dictation models being silently replaced; omp now warns and identifies the fallback model. Fixed LSP references for files in sibling Git worktrees by adding those checkouts to the active workspace. Improved macOS computer-use behavior for applications without windows by opening the app and inspecting its returned window in one operation.

@oh-my-pi/pi-natives Breaking Changes

Removed the invalidateFsScanCache API and the associated filesystem scan cache environment variables (FS_SCAN_CACHE_TTL_MS, FS_SCAN_EMPTY_RECHECK_MS, FS_SCAN_CACHE_MAX_ENTRIES, and FS_SCAN_CACHE_MAX_BYTES); filesystem listing caches are now managed automatically.

Added

Added a built-in rsync implementation to the bash tool, compatible with rsync 3.5.1 and protocol versions 29–33 across Linux, macOS, and Windows. It supports local copies, SSH remote shells via -e, and rsync:// daemons without requiring an installed binary; daemon serving is not supported, and PI_DISABLE_UUTILS_DESTRUCTIVE continues to use the system rsync. Added built-in ast-grep (also available as sg) support to the bash tool for structural code search and rewriting, including pattern matching, rewrites, context, headings, and JSON output.

Changed

Improved native filesystem search performance, including faster globbing and more efficient grep, fuzzy finding, workspace listing, and structural search/edit operations, while preserving deterministic result ordering and streaming behavior. Native search and the bash tool's built-in rg, grep, fd, find, and ast-grep now stop filesystem work promptly when cancelled or timed out, including searches over JavaScript-provided filesystems and searches interrupted while reading large files. The bash tool's built-in rg and recursive grep now search files in parallel while retaining path-ordered output; grep can also stop promptly after reaching maxCount. Enabled safe reuse of unchanged directory listings when cache: true, with timestamp validation to prevent stale results.

Fixed

Fixed cancelled native directory searches leaving filesystem-provider requests running during startup. Fixed built-in bash commands such as cat, grep, head, wc, read, and mapfile hanging at the end of FIFO input on macOS; read -t now returns at EOF. Fixed ANSI text wrapping for styled underlines, background colours, and colon-form RGB colours. Fixed clicking in native audio playback when the queue runs dry mid-waveform by smoothly fading output to silence and back.

@oh-my-pi/omp-stats

Changed

Improved omp stats session synchronization performance by approximately 2–5× on large histories. The first sync after upgrading may take up to a minute while the stats database is optimized.

Fixed

Fixed /stats and omp stats failing when another dashboard was syncing sessions or the configured port was already in use; busy dashboards are now reused, and a free port is selected when necessary.

@oh-my-pi/pi-tui Breaking Changes

Moved PINNED_HUD_TOGGLE_ID to the coding agent's task output manager so reserving subagent IDs no longer loads the interactive editor. Updated StatusLineHost.resetExpiryNotice to receive the session and manage warning deduplication; custom status-line components must use the new signature. Removed ToolExecutionHandle.setToolActivityVisible; tool-activity visibility is now controlled by transcript components, while reply blocks remain visible by default. Removed the @oh-my-pi/pi-tui/theme/defaults export. Bundled palettes are now available through getBuiltinThemes() from theme/defaults.json.

Fixed

Fixed table-chart direction detection so measures are not incorrectly marked as better based on header words; single-measure tables are now sent for judging when local charting is appropriate. Fixed LSP diagnostics that incorrectly showed “No issues” before a language server had reported; such files are now shown as unverified. (#17293 by @JustasMasiulis) Fixed Esc-Esc rewind in Tern selecting interrupted turns with no visible output instead of the last displayed turn. Fixed streamed code blocks losing lines that scrolled off screen before the closing fence arrived; completed lines now remain available in scrollback. (#17333 by @gzkGit777)

@oh-my-pi/pi-utils

Added

Added logger.withContext(fields, fn) to attach contextual fields to all records produced during a function and its asynchronous work, plus logger.withoutContext(fn) for work that should not inherit caller context.

Fixed

Fixed untilAborted so promises passed to an already-aborted signal are still observed, preventing later rejections from being reported as unhandled.

@oh-my-pi/pi-wire

Added

Added the TSP json kind for displaying raw JSON values as interactive, expandable trees in the terminal. Added TspEditorProps.typeahead support so programs that cannot yet read input can preserve typed text, display it at the caret, and submit it when input becomes available.

What's Changed

  • fix(coding-agent): allow artifact reads through approval checks by @iliaal in #17282
  • fix(catalog): keep DeepSeek V4.1 Flash images for namespaced ids by @ZanDev32 in #16470
  • fix(coding-agent): warn when a Hindsight memory recall fails by @enieuwy in #17278
  • fix(ai): kept cancelled OAuth refresh rejections observed by @H4vC in #17290
  • feat(session-picker): add pin and unpin actions by @zhang17-24 in #9837
  • feat(tui): support host-qualified file links in remote sessions by @KunoLu in #15855
  • feat(coding-agent): add opt-in assistant text renderers for extensions by @materemias in #16238
  • feat(coding-agent): run live voice sessions on a caller-owned WebRTC peer by @materemias in #17013
  • fix(coding-agent): keep idle tiny-worker unloads out of the progress HUD by @H4vC in #17305
  • fix(lsp): stopped diagnostics stalling, timing out, or reporting unanswered files as clean by @JustasMasiulis in #17293
  • fix(approval): only offer directory grants that cover all targets by @iliaal in #17309
  • feat(task): dispatch subagent instructions from UTF-8 files by @iliaal in #17133
  • fix(conflict): follow live conflict blocks across lists, ranges and the registry by @alphastorm in #17177
  • fix(github): refresh pull request diffs after git push by @alphastorm in #17183
  • fix(wait): keep a peer request owed until its reply arrives by @alphastorm in #17176
  • feat(coding-agent): route clicks on extension-owned links to their extension by @materemias in #16239
  • fix(coding-agent): clear terminal title on exit for terminals without title stack by @asuffield in #17321
  • fix(ai): carried omp system prompt on cursor history-bearing roots by @robfeldmann in #17325
  • fix(ai): rank account policy priority ahead of a missing usage report by @will-bogusz in #15124
  • fix(lsp): add another checkout to the language server workspace before opening its files by @will-bogusz in #16271
  • fix(coding-agent): fail provider-qualified model selectors that name no exact id instead of running a sibling by @will-bogusz in #16297
  • fix(coding-agent): drop computer screenshots the Factory image budget evicts by @will-bogusz in #16564
  • fix(ai): stop logging a usage-limit retry the gateway does not make by @will-bogusz in #16579
  • feat(coding-agent): tag each log record with the session that wrote it by @will-bogusz in #16587
  • fix(browser): use Chrome's native WebMCP on demand instead of injecting a page hook by @will-bogusz in #16756
  • feat(coding-agent): let tools.approval grant computer foreground control on unattended machines by @will-bogusz in #16917
  • feat(coding-agent): start desktop tasks without a documentation read by @will-bogusz in #16918
  • fix(coding-agent): avoid failed window lookups when starting macOS desktop tasks by @will-bogusz in #16925
  • feat(pi-shell): keep the git guard's refusals to checkouts other sessions share by @will-bogusz in #17349
  • feat(catalog): fall back to Factory Droid image models in the image role by @will-bogusz in #17351
  • fix(catalog): prevented mistral deepseek reasoning replay by @roboomp in #17366
  • fix(ai): report the caller's abort reason instead of the transport's abort text by @MaisonnatM in #17216
  • fix(coding-agent): preserved large json query error reasons by @roboomp in #17270
  • fix(coding-agent): retried past trailing async-result after an interrupt by @roboomp in #17272
  • fix(coding-agent): kept catalog prefix binding under thinking overrides by @roboomp in #17279
  • fix(ai): handle disabled reasoning without supported efforts by @wyyufeng in #17283
  • fix(advisor): keep the three strikes across a context-maintenance re-prime by @joshuaswarren in #17291
  • fix(voice): faded playback edges around underruns by @roboomp in #17299
  • fix(ai): Apply inference user agent to native judge requests by @BizerNotNull in #17311
  • test(ai): remove racing timeout fallback by @DROOdotFOO in #17315
  • fix(ai): retry a rotated Cursor conversation after a 400 by @morali in #17319
  • fix(context): counted pruned tool specs when descriptions are inlined by @roboomp in #17332
  • fix(tui): retire a streamed open fence's finished lines by @gzkGit777 in #17333
  • fix(coding-agent): bind EventBus prototype methods for detached pi.events calls by @Zynoo71 in #17338
  • fix(coding-agent): kept mcp refreshes off the vibe director toolset by @roboomp in #17343
  • fix(coding-agent): kept flat todo init items when list is empty by @roboomp in #17348
  • fix(ai): preserve Retry-After headers on Codex stream errors by @iFwu in #17362
  • fix(ai): kept silent pi-native streams alive past bun's fetch timeout by @roboomp in #17364
  • fix(ai): captured and replayed mistral thinking content parts by @roboomp in #17377
  • feat(prewalk): add prewalk.from/prewalk.into and /prewalk selector arguments by @H4vC in #17373

New Contributors

@ZanDev32 made their first contribution in #16470 @materemias made their first contribution in #16238 @wyyufeng made their first contribution in #17283 @joshuaswarren made their first contribution in #17291 @BizerNotNull made their first contribution in #17311 @DROOdotFOO made their first contribution in #17315 @morali made their first contribution in #17319 @gzkGit777 made their first contribution in #17333 @Zynoo71 made their first contribution in #17338 @iFwu made their first contribution in #17362

Full Changelog: v18.13.3...v18.14.0

原文入口

阅读原文(github.com)

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

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

了解来源批准与收录规则