外部精选
omp · v18.8.8
本文来自外部来源,不是黄奕彬的原创文章。本站提供原文入口,并在采集端生成 AI 结构化摘要、解读与中文翻译(如有),一切以原文为准。
阅读原文(github.com)结构化摘要 AI 生成
背景与问题
oh-my-pi(omp)是包含多个 @oh-my-pi/* 包的项目,正文可见编码代理 CLI、TUI(含 Tern)、浏览器工具、模型目录等组件。本篇为 v18.8.8 版本发布说明,面向 omp 用户与依赖其包的下游开发者,说明自 v18.8.7 以来的新增、变更、修复与破坏性改动,供判断是否升级及如何迁移。
方法或内容
按包分节列出 Added / Changed / Fixed / Breaking Changes,并附 What's Changed 的 PR 清单、New Contributors 与 Full Changelog(v18.8.7...v18.8.8)。
涉及十个包:pi-agent-core、pi-ai、browser-relay、pi-catalog、pi-coding-agent、pi-mnemopi、pi-natives、pi-tui、pi-utils、pi-wire。
关键发现 / 结果
- 压缩策略重构:新增
CompactionSettings.baseWindowTokens;/models的 token 压缩限制改作基准而非精确点,18.8.5 起保存的纯数字将提前压缩,写f<tokens>(如f400k)可保持精确触发。 - 修复固定阈值达到或超过被压低的窗口(如 Factory 的 196K Kimi K3)时压缩滞后、每周期溢出上下文窗口的问题;超标准窗口的限制改跑扩展窗口。
- 新增
omp anonymize会话匿名化、/dump anon、/jobs kill <id>|all、contextFiles.extra、/annotate外部编辑器(Ctrl+G)及 Vim 编辑键(f/F/t/T、r/R、% 等)。 - 修复 OpenAI Responses 空参数工具调用、恢复会话丢失加密推理、Factory Droid Gemini 截断重试等。
- Breaking:
onCompactionPointChange改收confirmed并返回CompactionPointChangeResult;ModelCompactionPoint.percent被basis取代。 - 新贡献者:
@qingshungLI、@KanwarGill、@Shadorain。
结论与意义
原文未说明整体结论(本篇为发布清单)。条目层面体现的意义:升级到 v18.8.8 可获得压缩阈值语义修正、会话匿名化、多 provider 与浏览器/macOS 稳定性修复;下游需注意 pi-tui 的破坏性变更及 18.8.5 起保存的纯数字压缩限制的行为变化。适用边界以各条目描述为准。
AI 解读 AI 生成
方法:按「时空变量」分析(时间 / 空间 / 变量,严格区分包含、相关与因果),对象包括原文作者、署名人员与关键技术及其实际原理;结论用「元反空」(元思考、反思考、空思考、综合)整理。
时间:何时发生,现在是否仍成立
发布时间为来源日期 2026-10-10 23:06:54(北京时间)。变更对应 v18.8.7...v18.8.8 区间合入的 PR(编号约 #14956–#15214)。
修复多针对当时的 provider 行为与已知 bug,随上游(OpenAI、Factory、Devin、Cursor 等)变化可能失配;兼容性提示(如 18.8.5 起保存的纯数字限制提前压缩)在升级时仍需核对。
空间:谁的环境 / 场景
适用于 omp v18.8.8 用户及依赖 @oh-my-pi/* 各包的下游开发者。
场景包括:终端/Tern 中的编码代理(/models、/jobs、/dump、/annotate、/omfg)、浏览器 relay 扩展、macOS accessibility、多 provider 接入(OpenAI Responses/Codex、xAI、Factory Droid、GitHub Copilot、Devin、Cursor)。后台标签页打开修复需重装 relay 扩展后生效。
变量:实际改变了什么
- 行为:
/models压缩限制由精确点改为基准(默认策略 85% 或compaction.thresholdPercent);超标准窗口的限制改跑扩展窗口而非静默钳制。 - 新增:
Agent.setModelResolver()、baseWindowTokens、/jobs kill、omp anonymize、/dump anon、contextFiles.extra、TUI.releaseHeldInput()、TUI.replaceHeldFocus()、Vim 键、/dump转录时间与运行中子代理状态。 - 修复:约 20 余项,覆盖 provider 会话恢复、浏览器打开/超时/标签崩溃、Tern 启动输入等。
- 性能:macOS
ax()每元素 children 只读一次、不再读 bounds。 - 破坏性:
onCompactionPointChange签名与返回值、percent→basis。
区分:包含 ≠ 相关 ≠ 因果
- 包含:各
@oh-my-pi/*包是 omp 的组成部分;pi-tui含 Tern 与模型 hub 相关组件。 - 相关:Tern 将 bash/eval 绘制为盒子的展示变更、Vim 键等仅是同版本并列条目,原文未表述因果。
- 因果:修复条目给出明确因果,如固定触发点达到或超过 provider 压低的窗口上限导致自动压缩每周期溢出上下文窗口;
pi-mnemopi长保留转录未限制输入导致本地提取模型内存耗尽,限制为 8192 字符后修复。
对象:作者/署名与关键技术原理
结构化署名作者为 github-actions[bot](GitHub Actions 自动化账号),原文未说明其他署名;正文各变更条目按 PR 标注贡献者(如 @H4vC、@will-bogusz、@Shadorain、@KanwarGill、@PaleRoses、@qingshungLI、@jinpyo-jeon),属条目归属而非本篇作者。关键技术按原文:
- 压缩(compaction):按 token 阈值(百分比、保留量或固定值)压缩上下文,阈值可基于
baseWindowTokens缩放,固定值对照真实窗口。 - 匿名化:仅保留白名单元数据(ids、时间戳、模型、用量、内置工具名与选项),正文/思考/工具输出替换为尺寸标注的
[redacted …],同一原文恒映射同一 token。 - OpenAI Responses 会话:恢复会话首请求保留既有加密推理;GitHub Copilot 仍重建历史。
- macOS accessibility:
ax()读树,元素被移除报StaleRef,动作未应答报AxUnconfirmed。
元反空综合结论
- 元:本篇本质在回答“
v18.8.8相对v18.8.7改了什么、对谁有影响、如何迁移”,是一次维护型发布说明。 - 反:最可能失效或有边界的点:依赖外部 provider 行为的修复(OpenAI、Factory、Devin、Cursor 等,上游一变即可能失配);18.8.5 起保存的纯数字压缩限制会静默提前压缩,需手动改写为
f<tokens>;pi-tui两处破坏性 API 变更要求下游适配;部分浏览器修复需重装 relay 扩展。 - 空:去掉叙述后剩余必要事实——版本
v18.8.8、changelog 范围v18.8.7...v18.8.8、十个包的具体 Added/Changed/Fixed 清单、对应 PR 编号与贡献者、三位新贡献者、发布时间。 - 综合:这是一次以压缩阈值体系重构(含破坏性变更与兼容提示)、会话匿名化、Vim 编辑增强和多 provider/浏览器/macOS 稳定性修复为核心的版本发布;omp 用户与下游开发者宜按条目评估升级成本。原文未说明整体性能数据或全局性结论。
中文译文 AI 生成
@oh-my-pi/pi-agent-core
新增
- 新增
Agent.setModelResolver(),用于在代理所采用的每个模型(通过setModel设置,从当前模型开始)被使用之前对其进行适配(#15048,由 @H4vC 贡献) - 新增
CompactionSettings.baseWindowTokens:设置后,resolveThresholdTokens()会以该基准而非完整上下文窗口来缩放其百分比或基于保留量的阈值(#15065,由 @H4vC 贡献)
修复
- 修复 OpenAI V1 远程压缩在成功压缩后重新附加先前的 Anthropic 原生负载的问题(#15041,由 @PaleRoses 贡献)
- 修复
resolveThresholdTokens()将正的thresholdTokens钳制到baseWindowTokens的问题;固定阈值会对照真实窗口检查,基准仅重新缩放百分比和保留策略(#15074,由 @H4vC 贡献) - 修复
resolveThresholdTokens()将位于或超出上下文窗口的固定thresholdTokens钳制到比窗口少一个 token 的问题,该问题导致压缩仅在下一个请求溢出后才触发;现在会钳制到窗口减去保留量(#15146,由 @will-bogusz 贡献)
@oh-my-pi/pi-ai
修复
- 修复 OpenAI Responses 和 Codex 工具调用在兼容宿主或代理流式传输完真实参数负载后以空参数负载结束调用时、以空
{}参数运行的问题(#15099,由 @will-bogusz 贡献) - 修复被截断的 Factory Droid Gemini 响应以硬错误或只接收了一半的工具调用结束、而非被重试的问题(#15103,由 @will-bogusz 贡献)
- 修复 Factory Droid Gemini 忽略服务器在响应中途报告的错误的问题,该问题会隐藏其状态并重试不可能成功的错误(#15103,由 @will-bogusz 贡献)
- 修复恢复的 OpenAI Responses 会话(xAI、Factory Droid、OpenAI 及其他宿主)在首个请求时丢弃所有先前加密推理的问题;GitHub Copilot 在其首次响应之前仍会重建历史(#15148,由 @will-bogusz 贡献)
@oh-my-pi/browser-relay
修复
- 修复中继客户端请求在后台打开的标签页被创建为选中标签页的问题(#15109,由 @will-bogusz 贡献)
@oh-my-pi/pi-catalog
新增
- 新增
connection-bound-native-history规则轴,用于会拒绝来自较早连接的原生历史条目的 Responses 宿主,已为 GitHub Copilot 设置(#15148,由 @will-bogusz 贡献)
修复
- 修复 Devin 发现的模型未标记账户默认模型的问题,该默认模型即 Devin 自身 CLI 让账户启动时所用的模型(Pro 上为 SWE-2 High,Free 上为 SWE-1.6 Slow);当它是某个系列的一个 effort 档位时,该系列从该 effort 启动。Cursor 发现的模型不再携带该标记,因此 Cursor 保持其现有的启动选择(#15115,由 @will-bogusz 贡献)
@oh-my-pi/pi-coding-agent
新增
- 新增
/jobs kill <id>|all,用于从命令行取消一个正在运行的后台作业(或本会话拥有的全部作业),即使代理正忙也可执行(#14160,由 @KanwarGill 贡献) - 新增
omp anonymize [session] [-o dir],用于写入会话及其子代理转录的可分享副本:仅保留显式白名单内的 omp 元数据(id、时间戳、模型、用量、内置工具名称和选项);消息、思考和工具输出文本变为带大小标注的[redacted …]标记;工具调用路径变为模拟路径(/home/seg3/seg4/src/seg9.ts:10-20),shell 命令保留已知的程序和标志,其他字面量(例如 grep 模式)变为PLACEHOLDER_N,扩展或 MCP 负载整体脱敏,且同一原文在所有文件中始终映射为同一 token(#15077,由 @H4vC 贡献) - 新增
/dump anon,将相同的匿名化会话与子代理 JSONL 写入临时目录中的一个 zip 并复制其路径(#15077,由 @H4vC 贡献) - 为
/dump transcripts新增消息时间(助手轮次还会显示请求时长和首 token 时间),并为仍在运行的子代理的/dump all文件新增实时状态、最后活动、待处理工具调用和部分流式传输的轮次,以便能从归档诊断卡住的子代理(#15121,由 @H4vC 贡献) - 新增
contextFiles.extra,用于在常规上下文文件之外加载额外的指令文件,例如AGENTS.local.md(#15147,由 @Shadorain 贡献)。 /annotate会使用外部编辑器按键(默认为 Ctrl+G)在$VISUAL或$EDITOR中打开你正在撰写的笔记、文件或键入提示来源,或(对于本地 diff 审查)当前工作区文件;文件来源会被写回保存,其笔记跟随编辑后的文本(#15151,由 @Shadorain 贡献)
变更
- 在
/models中设置的超过模型标准上下文窗口的压缩限制,现在会让该模型运行在其扩展窗口上,而不是被静默钳制;hub 会发出警告(注明长上下文定价)并在第二次按 Enter 时保存,在终端和 Tern 中均如此,并拒绝超过模型最大窗口的限制(#15048,由 @H4vC 贡献) - 在
/models(或compaction.modelThresholds)中设置的 token 压缩限制,现在成为 omp 按其常规策略缩放的基准,如同它是模型的窗口(基准高于约 109k 时默认取其 85%,或取其compaction.thresholdPercent比例),而不再是精确的触发点。因此,自 18.8.5 起保存的纯数字会更早触发压缩;将其改写为f<tokens>(或在 hub 中输入f400k)可保持其为精确触发点。/models限制字段会在你输入时显示模型将在何处压缩(在 340K 压缩 · 400K 基准的 85%),预览中的 Compacts at 行会说明原因,保存后的消息也会重复该信息(#15065,由 @H4vC 贡献)
修复
- 修复用量仪表盘已打开时使用
/usage(或点击状态栏成本)会在其上叠加第二个仪表盘的问题;现在会聚焦已打开的那个(#15145,由 @H4vC 贡献) - 修复浏览器工具提示未记录
observe()的viewportOnly和includeAll选项,以及 open/close/run 的超时为以秒为单位并钳制到 1–300、而waitFor*的超时为以毫秒为单位的问题(#15104,由 @will-bogusz 贡献) - 修复在后台打开的浏览器中继页面(
tab.run中的browser.newPage({ background: true }))接管用户选中标签页的问题;重新安装中继扩展后,它们现在会以未选中状态打开(#15109,由 @will-bogusz 贡献) - 修复了通过
app.relay打开浏览器并指定目标时,若匹配的标签页片刻前刚在 omp 之外被打开,会以No page target matched或Selected tab is no longer available失败的问题;现在会短暂等待 relay 列出该标签页(#15112,由 @will-bogusz 完成) - 修复了超时的
browser.open会阻塞同一浏览器下一次打开(用app.path启动的应用除外),直到其被放弃的启动或连接返回的问题;超时错误现在会指明卡住的步骤(#15117,由 @jinpyo-jeon 和 @will-bogusz 完成) - 修复了浏览器标签页在部分带同站 iframe 的页面(其中包括 Google Travel)上加载中途崩溃,随后该标签页上的每次 open、screenshot 和 evaluate 都超时的问题(#15118,由 @will-bogusz 完成)
- 修复了自定义工具示例的完整文档链接打开缺失页面的问题(#15076,由 @
qingshungLI完成) - 修复了
/models的压缩上限预览以及 Compacts at 行对小数百分比四舍五入的问题(12.5% 显示为 13%)(#15074,由 @H4vC 完成) - 修复了 Tern 中
/omfg的保存、覆盖和验证提示以浮层形式覆盖在候选规则上的问题;它们现在像ask一样位于 composer 槽位,因此你在选择时规则仍可读(#15058,由 @H4vC 完成) - 修复了 Tern 中在 omp 仍在启动时按下的快捷键(如用于模型选择器的 Alt+P)被忽略的问题;与其他终端一样,它们现在会在启动完成后生效(#15120,由 @H4vC 完成)
- 修复了 Tern 中的启动扩展对话框(select、confirm、input)在超时前无法接收按键的问题(#15122,由 @H4vC 完成)
- 修复了当
compaction.thresholdTokens或f<tokens>模型限制达到或超过提供商设得更低的窗口上限(例如 Factory 的 196K Kimi K3)时,自动压缩每个周期都会溢出上下文窗口的问题;现在会在窗口减去保留量处压缩,且/models会将触发条件显示为 capped(#15146,由 @will-bogusz 完成) - 修复了恢复的 xAI、Factory Droid 和 OpenAI 会话在首个请求上遗忘先前推理的问题,同时遇到
stale Responses item错误后的重试仍会重建历史(#15148,由 @will-bogusz 完成) - 修复了启动默认值忽略提供商 discovery 指定为账户默认模型的问题:未选择模型时,Devin Pro 现在会以 High 启动到 SWE-2 而非 SWE-1.6(#15115,由 @will-bogusz 完成)
@oh-my-pi/pi-mnemopi
修复
- 修复了长期保留的会话记录耗尽本地记忆提取模型的问题,方法是将每次提取的输入限制为 8192 字符,同时保留开场上下文和最新轮次(#14956)。
@oh-my-pi/pi-natives
变更
- 降低了
ax()的 macOS 辅助功能树延迟且不改变其文本输出:每个元素的子元素只读取一次,而树从不显示的边界信息不再被读取(#15159,由 @will-bogusz 完成)
修复
- 修复了 macOS 计算机操作对元素已被应用移除的 ref 报告 AxFailed 而非 StaleRef 的问题(#15156,由 @will-bogusz 完成)
- 修复了 macOS 上
el.press()和el.perform()在应用未及时响应时(例如会打开模态对话框的按压)报告 AxFailed 的问题;它们现在报告 AxUnconfirmed(#15156,由 @will-bogusz 完成)
@oh-my-pi/pi-tui
破坏性变更
ModelHubCallbacks.onCompactionPointChange现在接收一个 confirmed 标志,并返回CompactionPointChangeResult({ kind: "error" }或{ kind: "confirm" })而非错误字符串;confirm 结果会显示一条警告,提示在同一输入上第二次按 Enter 即接受(#15048,由 @H4vC 完成)ModelCompactionPoint.percent被basis取代,后者是关于模型为何在该处压缩的简短说明(fixed、85% of 400K base、80% of window),model hub 预览会将其显示在触发条件旁(#15065,由 @H4vC 完成)
新增
- 为
HookSelectorComponent新增 inline 选项,使选择器在 Tern 中保留在 composer 槽位,而不是以浮层形式覆盖屏幕(#15058,由 @H4vC 完成) - 新增
ModelHubCallbacks.previewCompactionPoint,压缩上限字段在你输入时显示其对应行而非输入语法(#15065,由 @H4vC 完成) - 在提示词编辑器中新增 Vim 的 find 与 till 移动(f、F、t、T),并可用 ; 和 , 重复(#15100,由 @Shadorain 完成)
- 在提示词编辑器中新增 Vim 替换(r、R)(#15100,由 @Shadorain 完成)
- 在提示词编辑器中新增 Vim 括号与引号匹配(%)、段落移动({、})、行合并(J)以及缩进(>>、<<)(#15100,由 @Shadorain 完成)
- 为批注浮层新增外部编辑器按键(默认 Ctrl+G),用于笔记草稿,且当宿主提供
onExternalEditor时也用于被批注的源;编辑过的文本源会在粘贴结果中以editedText返回(#15151,由 @Shadorain 完成) - 新增
TUI.releaseHeldInput():在预期使用 TSP 的终端上,deferInput开始时现在会暂存按键(TSP 事件和 cell-size 回复仍然生效;Ctrl+C/Ctrl+D 提前释放),直到应用在其会话接通后调用它;此类终端也会跳过 sixel 探测(#15120,由 @H4vC 完成) - 新增
TUI.replaceHeldFocus(previous, next),由Composer.setEditor()调用,使换入的编辑器继承被暂存的启动按键;现在仅暂存属于启动时焦点持有者的按键,而获得焦点的对话框会实时接收其输入(#15122,由 @H4vC 完成) - 为原生 describe 钩子新增
RenderResultOptions.elapsedMs与cancelled、NativeToolHead.command以及NativeToolView.preview: "children"
变更
- Tern 将每次 bash 运行、eval 单元格和
!/$运行绘制为一个框:命令或代码、其输出、状态行以及带有状态、时间和事实的底部栏;图片位于框下方,bash 头部显示意图而非命令
修复
- 修复了 Agents hub 的 Time 列在运行中的子代理两次进度更新之间回退并冻结的问题(#15140,由 @H4vC 完成)
@oh-my-pi/pi-utils
修复
- 修复了
formatDuration对略少于一分钟的时长打印 60.0s 的问题;现在显示为 1m(#15121,由 @H4vC 完成)
@oh-my-pi/pi-wire
新增
- 新增
TspToolProps.command(命令行中 Copy 命令所复制的内容)、TspToolProps.preview: "children"(折叠主体保持完整,而其子内容被截断)以及TspCodeProps.preview
变更内容
fix(tui): keep /omfg prompts in the Tern composer slot,由 @H4vC 在 #15058 中提交- feat(coding-agent):让自定义压缩限制能够覆盖扩展后的上下文窗口,由 @H4vC 在 #15048 中完成
- feat(coding-agent):按模型缩放压缩限制、新增固定模式,并在 hub 中加以说明,由 @H4vC 在 #15065 中完成
- fix(coding-agent):处理针对按模型压缩限制的评审后续意见,由 @H4vC 在 #15074 中完成
- fix(docs):修正自定义工具指南链接,由 @
qingshungLI在 #15076 中完成 - fix(agent):在 V1 远程压缩后保留已清理的 preserve 数据,由 @PaleRoses 在 #15041 中完成
- fix(mnemopi):为被保留 transcript 的提取输入设置上限,由 @roboomp 在 #14959 中完成
- feat(coding-agent):新增
/jobs kill |all,由 @KanwarGill 在 #14160 中完成 - feat(coding-agent):新增会话匿名化功能(
omp anonymize、/dump anon),由 @H4vC 在 #15077 中完成 - fix(tui):在 Tern 启动期间将输入排入队列,由 @H4vC 在 #15120 中完成
- feat(tui):补充缺失的 Vim 编辑按键,由 @Shadorain 在 #15100 中完成
- fix(tui):在 vim 替换覆盖时退出历史记录,并让带计数的 r 保持线性,由 @H4vC 在 #15127 中完成
- fix(coding-agent):在
/dump中显示 subagent 的实时状态与消息时间,由 @H4vC 在 #15121 中完成 - fix(tui):实时投递 Tern 启动对话框的输入,并在恢复草稿前重放暂存的按键,由 @H4vC 在 #15122 中完成
- fix(tui):让 agent hub 的 Time 在 subagent 进度帧之间持续向前走,由 @H4vC 在 #15140 中完成
- fix(coding-agent):聚焦已打开的
/usage仪表盘,而不是再叠开一个,由 @H4vC 在 #15145 中完成 - feat(coding-agent):通过
/annotate打开默认编辑器,由 @Shadorain 在 #15151 中完成 - feat(coding-agent):新增
contextFiles.extra,用于自定义上下文文件名,由 @Shadorain 在 #15147 中完成 - fix(natives):将已移除的 macOS AX 元素报告为
StaleRef,将未应答的操作报告为AxUnconfirmed,由 @will-bogusz 在 #15156 中完成 - perf(natives):对每个 macOS AX 元素的子元素只读取一次,并在
ax()中跳过未使用的 bounds,由 @will-bogusz 在 #15159 中完成 - fix(ai):当 Responses 以空 payload 结束时保留已流式传输的工具参数,由 @will-bogusz 在 #15099 中完成
- fix(ai):对在响应中途被截断的 Factory Droid Gemini 流进行重试,由 @will-bogusz 在 #15103 中完成
- docs(browser):为
observe的viewportOnly/includeAll及超时单位补充文档,由 @will-bogusz 在 #15104 中完成 - fix(browser-relay):打开
Target.createTarget后台标签页而不选中它们,由 @will-bogusz 在 #15109 中完成 - fix(coding-agent):让 relay target 接管片刻前打开的标签页,由 @will-bogusz 在 #15112 中完成
- fix(catalog,coding-agent):当 discovery 报告账户默认模型时以该模型启动,由 @will-bogusz 在 #15115 中完成
- fix(browser):为超时 open 操作中停滞的步骤命名,并阻止它拖住下一个步骤,由 @will-bogusz 在 #15117 中完成
- fix(browser):阻止 WebMCP 页面钩子导致 Chromium 杀掉标签页的 renderer,由 @will-bogusz 在 #15118 中完成
- fix(agent,coding-agent):在下一次请求溢出前,对超过设限上下文窗口的固定触发点执行压缩,由 @will-bogusz 在 #15146 中完成
- fix(ai):在恢复的 Responses 会话的首次请求中保留先前的 reasoning,由 @will-bogusz 在 #15148 中完成
- test(browser):在 Windows 上运行 spawned-app abandoned-open 测试,由 @H4vC 在 #15214 中完成
新贡献者
- @
qingshungLI在 #15076 中完成了首次贡献 - @KanwarGill 在 #14160 中完成了首次贡献
- @Shadorain 在 #15100 中完成了首次贡献
完整变更日志:v18.8.7...v18.8.8
展开原文提取正文(采集端自动提取,可能有缺失)
@oh-my-pi/pi-agent-core
Added
Added Agent.setModelResolver() to fit every model an agent adopts (via setModel, starting with the current one) before it is used (#15048 by @H4vC) Added CompactionSettings.baseWindowTokens: when set, resolveThresholdTokens() scales its percentage or reserve-based threshold from that base instead of the full context window (#15065 by @H4vC)
Fixed
Fixed OpenAI V1 remote compaction re-attaching a prior Anthropic native payload after a successful compact (#15041 by @PaleRoses) Fixed resolveThresholdTokens() clamping a positive thresholdTokens to baseWindowTokens; a fixed threshold is checked against the real window, and the base only rescales the percentage and reserve policies (#15074 by @H4vC) Fixed resolveThresholdTokens() clamping a fixed thresholdTokens at or past the context window to one token below it, so compaction fired only after the next request overflowed; it now clamps to the window less the reserve (#15146 by @will-bogusz)
@oh-my-pi/pi-ai
Fixed
Fixed OpenAI Responses and Codex tool calls running with empty {} arguments when a compatible host or proxy ends the call with an empty arguments payload after streaming the real ones (#15099 by @will-bogusz) Fixed truncated Factory Droid Gemini responses ending as a hard error or a half-received tool call instead of being retried (#15103 by @will-bogusz) Fixed Factory Droid Gemini ignoring an error the server reports mid-response, which hid its status and retried errors that cannot succeed (#15103 by @will-bogusz) Fixed resumed OpenAI Responses sessions (xAI, Factory Droid, OpenAI and other hosts) dropping all earlier encrypted reasoning on their first request; GitHub Copilot still rebuilds history until its first response (#15148 by @will-bogusz)
@oh-my-pi/browser-relay
Fixed
Fixed tabs a relay client asks to open in the background being created as the selected tab (#15109 by @will-bogusz)
@oh-my-pi/pi-catalog
Added
Added the connection-bound-native-history rule axis for Responses hosts that reject native history items from an earlier connection, set for GitHub Copilot (#15148 by @will-bogusz)
Fixed
Fixed Devin's discovered models not marking the account's default model, the one Devin's own CLI starts the account on (SWE-2 High on Pro, SWE-1.6 Slow on Free); when it is an effort lane of a family, the family starts at that effort. Cursor's discovered models no longer carry that marker, so Cursor keeps its existing startup selection (#15115 by @will-bogusz)
@oh-my-pi/pi-coding-agent
Added
Added /jobs kill <id>|all to cancel a running background job (or every one this session owns) from the command line, even while the agent is busy (#14160 by @KanwarGill) Added omp anonymize [session] [-o dir] to write a shareable copy of a session and its subagent transcripts: only an explicit allowlist of omp metadata (ids, timestamps, models, usage, built-in tool names and options) is kept; message, thinking, and tool-output text become size-annotated [redacted …] markers; tool-call paths become mock paths (/home/seg3/seg4/src/seg9.ts:10-20), shell commands keep known programs and flags, other literals such as a grep pattern become PLACEHOLDER_N, and extension or MCP payloads are redacted whole, with the same original always mapping to the same token across files (#15077 by @H4vC) Added /dump anon, which writes the same anonymized session and subagent JSONL to a zip in the temp directory and copies its path (#15077 by @H4vC) Added message times to /dump transcripts (assistant turns also show request duration and time to first token), and live status, last activity, pending tool calls, and the partially streamed turn to /dump all files for subagents still running, so a stuck subagent can be diagnosed from the archive (#15121 by @H4vC) Added contextFiles.extra to load extra instruction files, such as AGENTS.local.md, beside the usual context file (#15147 by @Shadorain). /annotate opens the note you are writing, a file or typed-prompt source, or (for local diff reviews) the current working-tree file in $VISUAL or $EDITOR with the external-editor key (Ctrl+G by default); a file source is saved back and its notes follow the edited text (#15151 by @Shadorain)
Changed
A /models compaction limit set past a model's standard context window now runs that model on its extended window instead of being silently clamped; the hub warns (noting long-context pricing) and saves on a second Enter, in the terminal and in Tern, and rejects limits past the model's largest window (#15048 by @H4vC) A token compaction limit set in /models (or compaction.modelThresholds) is now the base omp scales with its usual policy, as if it were the model's window (85% of it by default for bases above ~109k, or compaction.thresholdPercent of it), instead of the exact point. Plain numbers saved since 18.8.5 therefore compact earlier; rewrite one as "f<tokens>" (or type f400k in the hub) to keep it an exact trigger. The /models limit field shows where the model would compact as you type (compacts at 340K · 85% of 400K base), the preview's Compacts at row says why, and the saved message repeats it (#15065 by @H4vC)
Fixed
Fixed /usage (or clicking the status-line cost) while the usage dashboard was already open stacking a second dashboard on top; it now focuses the open one (#15145 by @H4vC) Fixed the browser tool prompt not documenting observe()'s viewportOnly and includeAll options, or that open/close/run timeouts are seconds clamped to 1–300 while waitFor* timeouts are milliseconds (#15104 by @will-bogusz) Fixed browser relay pages opened in the background (browser.newPage({ background: true }) in tab.run) taking over the user's selected tab; they now open unselected once the relay extension is reinstalled (#15109 by @will-bogusz) Fixed browser open with app.relay and a target failing with No page target matched or Selected tab is no longer available when the matching tab was opened a moment earlier outside omp; it now waits briefly for the relay to list the tab (#15112 by @will-bogusz) Fixed a timed-out browser.open holding up the next open of the same browser (apps launched with app.path excepted) until its abandoned launch or connect returned; the timeout error now names the step that stalled (#15117 by @jinpyo-jeon and @will-bogusz) Fixed browser tabs crashing mid-load on some pages with a same-site iframe, Google Travel among them, after which every open, screenshot and evaluate on the tab timed out (#15118 by @will-bogusz) Fixed the custom-tool examples' full-documentation link opening a missing page (#15076 by @qingshungLI) Fixed the /models compaction limit preview and Compacts at row rounding fractional percentages (12.5% showed as 13%) (#15074 by @H4vC) Fixed /omfg save, overwrite, and validation prompts in Tern opening as a sheet over the candidate rule; they now sit in the composer slot like ask, so the rule stays readable while you choose (#15058 by @H4vC) Fixed hotkeys pressed in Tern while omp is still starting (such as Alt+P for the model selector) being ignored; like in other terminals, they now take effect once startup finishes (#15120 by @H4vC) Fixed a startup extension dialog (select, confirm, input) in Tern not receiving keys until it timed out (#15122 by @H4vC) Fixed auto-compaction overflowing the context window every cycle when compaction.thresholdTokens or an f<tokens> model limit is at or past a window the provider caps lower (such as Factory's 196K Kimi K3); it now compacts at the window less the reserve, and /models shows the trigger as capped (#15146 by @will-bogusz) Fixed resumed xAI, Factory Droid and OpenAI sessions forgetting earlier reasoning on their first request, while a retry after a stale Responses item error still rebuilds history (#15148 by @will-bogusz) Fixed the startup default ignoring the model a provider's discovery names as the account's default: with no model chosen, Devin Pro now starts on SWE-2 at High instead of SWE-1.6 (#15115 by @will-bogusz)
@oh-my-pi/pi-mnemopi
Fixed
Fixed long retained transcripts exhausting local memory extraction models by limiting each extraction input to 8192 characters while keeping the opening context and newest turns (#14956).
@oh-my-pi/pi-natives
Changed
Reduced macOS accessibility-tree latency for ax() without changing its text output: each element's children are read once, and its bounds, which the tree never shows, are no longer read (#15159 by @will-bogusz)
Fixed
Fixed macOS computer use reporting AxFailed instead of StaleRef for a ref whose element the app had removed (#15156 by @will-bogusz) Fixed macOS el.press() and el.perform() reporting AxFailed when the app did not answer in time, such as a press that opens a modal dialog; they now report AxUnconfirmed (#15156 by @will-bogusz)
@oh-my-pi/pi-tui Breaking Changes
ModelHubCallbacks.onCompactionPointChange now receives a confirmed flag and returns a CompactionPointChangeResult ({ kind: "error" } or { kind: "confirm" }) instead of an error string; a confirm result shows a warning that a second Enter on the same input accepts (#15048 by @H4vC) ModelCompactionPoint.percent is replaced by basis, a short explanation of why the model compacts there (fixed, 85% of 400K base, 80% of window) that the model hub preview shows next to the trigger (#15065 by @H4vC)
Added
Added an inline option to HookSelectorComponent that keeps a selector in the composer slot in Tern instead of opening it as a sheet over the screen (#15058 by @H4vC) Added ModelHubCallbacks.previewCompactionPoint, whose line the compaction limit field shows while you type instead of the input syntax (#15065 by @H4vC) Added Vim find and till motions (f, F, t, T) in the prompt editor, with ; and , to repeat them (#15100 by @Shadorain) Added Vim replace (r, R) in the prompt editor (#15100 by @Shadorain) Added Vim bracket and quote matching (%), paragraph motions ({, }), line join (J), and indent (>>, <<) in the prompt editor (#15100 by @Shadorain) Added an external-editor key (Ctrl+G by default) to the annotation overlay for the note draft and, when the host provides onExternalEditor, the source being annotated; an edited text source is returned as editedText on the paste result (#15151 by @Shadorain) Added TUI.releaseHeldInput(): on a terminal expected to speak TSP, a deferInput start now holds keystrokes (TSP events and the cell-size reply still apply; Ctrl+C/Ctrl+D release early) until the app calls it once its session is wired; such terminals also skip the sixel probe (#15120 by @H4vC) Added TUI.replaceHeldFocus(previous, next), which Composer.setEditor() calls so a swapped-in editor inherits held startup keys; only keys for the start-time focus owner are now held, and a dialog that takes focus gets its input live (#15122 by @H4vC) Added RenderResultOptions.elapsedMs and cancelled, NativeToolHead.command and NativeToolView.preview: "children" for native describe hooks
Changed
Tern draws each bash run, eval cell and !/$ run as one box: the command or code, its output, status lines and a foot with state, time and facts; images sit below the box and the bash head shows the intent instead of the command
Fixed
Fixed the Agents hub Time column rewinding and freezing for running subagents between progress updates (#15140 by @H4vC)
@oh-my-pi/pi-utils
Fixed
Fixed formatDuration printing 60.0s for durations just under a minute; they now read 1m (#15121 by @H4vC)
@oh-my-pi/pi-wire
Added
Added TspToolProps.command (the command line Copy command copies), TspToolProps.preview: "children" (the collapsed body stays whole while its children clamp) and TspCodeProps.preview
What's Changed
fix(tui):keep/omfgprompts in the Tern composer slot by @H4vC in #15058feat(coding-agent):let custom compaction limits reach the extended context window by @H4vC in #15048feat(coding-agent):scale per-model compaction limits, add a fixed mode, and explain them in the hub by @H4vC in #15065fix(coding-agent):address review follow-ups on per-model compaction limits by @H4vC in #15074fix(docs):correct custom tool guide link by @qingshungLIin #15076fix(agent):keep cleaned preserve data after V1 remote compaction by @PaleRoses in #15041fix(mnemopi):bound retained transcript extraction input by @roboomp in #14959feat(coding-agent):add/jobskill |all by @KanwarGill in #14160feat(coding-agent):add session anonymizer (omp anonymize,/dumpanon) by @H4vC in #15077fix(tui):queue input during startup in Tern by @H4vC in #15120feat(tui):add the missing Vim editing keys by @Shadorain in #15100fix(tui):exit history on vim replace overwrite and keep counted r linear by @H4vC in #15127fix(coding-agent):show live subagent state and message times in/dumpby @H4vC in #15121fix(tui):deliver Tern startup dialog input live and replay held keys before draft restore by @H4vC in #15122fix(tui):keep agent hub Time ticking forward between subagent progress frames by @H4vC in #15140fix(coding-agent):focus the open/usagedashboard instead of stacking another by @H4vC in #15145feat(coding-agent):open the default editor from/annotateby @Shadorain in #15151feat(coding-agent):addcontextFiles.extrafor custom context filenames by @Shadorain in #15147fix(natives):report removed macOS AX elements as StaleRef and unanswered actions as AxUnconfirmed by @will-bogusz in #15156perf(natives):read each macOS AX element's children once and skip unused bounds inax()by @will-bogusz in #15159fix(ai):keep streamed tool arguments when Responses ends with an empty payload by @will-bogusz in #15099fix(ai):retry Factory Droid Gemini streams that are cut off mid-response by @will-bogusz in #15103docs(browser):document observeviewportOnly/includeAlland timeout units by @will-bogusz in #15104fix(browser-relay):openTarget.createTargetbackground tabs without selecting them by @will-bogusz in #15109fix(coding-agent):let a relay target adopt a tab opened a moment earlier by @will-bogusz in #15112fix(catalog,coding-agent):start on the account's default model when discovery reports one by @will-bogusz in #15115fix(browser):name the stalled step of a timed-out open and stop it holding up the next one by @will-bogusz in #15117fix(browser):stop the WebMCP page hook getting Chromium to kill the tab's renderer by @will-bogusz in #15118fix(agent,coding-agent):compact a fixed trigger past a capped context window before the next request overflows by @will-bogusz in #15146fix(ai):keep earlier reasoning on the first request of a resumed Responses session by @will-bogusz in #15148test(browser):run the spawned-app abandoned-open test on Windows by @H4vC in #15214
New Contributors
@qingshungLI made their first contribution in #15076 @KanwarGill made their first contribution in #14160 @Shadorain made their first contribution in #15100
Full Changelog: v18.8.7...v18.8.8
原文入口
阅读原文(github.com)原文将在新窗口打开。收录时间不是内容更新时间;正文、译文与解读的版权归原作者/来源所有,本站仅作个人阅读辅助并保留原文入口;页面时间均为北京时间。
了解来源批准与收录规则