跳到主要内容

Oh My Pi v16.0.11 发布 —— Shell 管道写错不乱报错了,一句最简单的痛

· 阅读需 4 分钟

不是语法有错,是 Oh My Pi 自己的输出精简器把你的合法管道拆碎了。

这个版本把这种「工具说我写错了,但我写的明明是对的」的憋屈情况,从好几个方向修了一遍。

Oh My Pi v16.0.11 封面

修得最狠的:Shell 管道报假错

根本原因:Oh My Pi 的输出精简器会把 &&/; 串联的命令拆成一段一段,分别执行来节约 token。

问题出在分段逻辑——它只检查了第一段的合法性。后面那段如果是 while/for/if/subshell 这种结构,会被重新序列化后丢失终止符,发送出残缺的 shell。

修复后,每一段都会重新解析,要求完全匹配原始管道的形状。如果有偏差,整条命令直接走未分段路径,不再硬拆。

关联修复也到了 pi-natives(原生 shell 层),同一个 bug 的双端覆盖。

协作者终于有自己可见的声音了

之前 Advisor 模型虽然在后台干活,但它的轨迹你看不到——没有自己的 transcript,omp stats 统计不到它的 token 消耗,Agent Hub 也看不见它的存在。

这个版本做了两件事:

  • Advisor 的每轮对话持久化到 <session>/__advisor.jsonlomp stats 能统计到它
  • Agent Hub 里可以只读查看 Advisor transcript

当然它仍然是「非对等参与者」——irc 列表、history://、peer 询盘都看不见它,也不能被复活或 kill。

/compact 的三个子命令

如果你之前觉得 omp/compact 只有一个策略,太不灵活——现在给了你三个选择:

  • /compact soft:本地摘要,不调远程
  • /compact remote:走远程 provider 的压缩
  • /compact snapcompact:直接把历史归档成位图,不经过 LLM

这三个可以同时带 focus 指令(snapcompact 除外),也可以在 ACP 客户端中以参数形式传递。

Ctrl+T 终于不只是「上面」的

之前 Ctrl+T(切换 thinking 块显隐)只对当前可视区域生效。如果 thinking 块已经滚进 native scrollback,翻上去看还是旧状态。

现在两个触发路径——Ctrl+T 和 /settings 里的开关——都会触发完整重置和重绘,保证每个 thinking 块都正确折叠或展开。

ACP 手机语音不再卡在设置上

移动端 ACP 之前调 speech.models.list 会触发 setup 流程。现在本地 STT/TTS 模型和语音目录直接暴露,不触发 download。

Tab 宽度配置被移除了

这是一个 breaking change:display.tabWidth 设置和 getIndentation/setDefaultTabWidth 等配套工具全部移除,tab 现在使用固定显示宽度。如果你有自定义缩进需求的配置,需要更新。

Snapcompact:不支持的中文符号不乱码了

normalize() 现在会做 NFKD 分解回退。全角字符、上下标、连字、圆圈数字、罗马数字、分数等不可绘制的 Unicode 符号,会折叠为接近的 ASCII 等效字符。

不再是直接输出 ?

其他修复

  • 内联参数预览截断:工具返回的较长值(如 note=)不再硬截断在 24 列,而是根据卡片实际宽度自适应
  • MCP 子进程孤儿:之前的修复在 v16.0.10 只覆盖了一部分,进一步加固
  • 视图缓存清除:transcript viewer 在底层 session 文件被删除后能正确清除缓存内容
  • 全屏 Agent Hub 渲染对齐:transcript 正文不再比标题多一列左边距

升级方式:

curl -fsSL https://omp.sh/install | sh
brew install can1357/tap/omp
bun install -g @oh-my-pi/pi-coding-agent

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#OhMyPi #AI编程 #终端工具 #版本更新 #AI写代码的小任 #LLM更新报告