外部精选
omp · v18.8.9
本文来自外部来源,不是黄奕彬的原创文章。本站提供原文入口,并在采集端生成 AI 结构化摘要、解读与中文翻译(如有),一切以原文为准。
阅读原文(github.com)结构化摘要 AI 生成
背景与问题
这是 oh-my-pi(omp)项目 v18.8.9 版本的发布说明,面向该工具及其子包的使用者与开发者。
它要传达的问题是:相对 v18.8.8,本版本在提示输出一致性、终端复用器(tmux、Zellij、Herdr、CMUX、Orca)下的终端启动与会话分叉、以及 TUI 表格图表渲染方面各有什么增改与修复,其中包含一个需要迁移的破坏性 API 变更。
方法或内容
发布说明按四个子包组织条目:@oh-my-pi/pi-ai、@oh-my-pi/pi-coding-agent、@oh-my-pi/pi-tui、@oh-my-pi/pi-utils,分别列出 Added、Changed、Fixed 与 Breaking Changes。核心功能来自两个 PR:#13620(复用器终端启动与 /fork 摆放)和 #15220(在 Tern 的 composer 栏显示 git 分支)。文末给出 v18.8.8...v18.8.9 的完整变更对比。
关键发现 / 结果
pi-ai:state 字段渲染去除尾部空白、统一空集合格式,保证提示输出一致。pi-coding-agent新增:能力驱动的 tmux/Zellij/Herdr/CMUX 扩展终端启动;/fork pane|window|tab(裸/fork仍原地分叉);Orca CLI 启动,只能后台开 tab 时改为报告警告而非可见 tab。pi-coding-agent变更:CLI--fork将源会话未解决的工具调用配对为 unknown-outcome 结果;tui.autoGraph支持 before/after 多指标表(如 48× less、+27%);Tern 终端底栏显示 git 分支与状态、点击打开/git;154/160类分数按占比绘制;修复3 constructor、2 valueOf calls单元格导致图表失败。pi-tui破坏性变更:移除isInsideTmux()、isInsideZellij()、isInsideHerdr()导出,改用hasTerminalMultiplexerSession()(传tmux/zellij/herdr与env)。pi-tui新增:classifyTerminalMultiplexer()、terminalMultiplexerSessions()等 API,由单一复用器注册表统一通知路由与能力覆盖;图表新增ChartSpec.baseline与TableColumn.scores。pi-utils新增:hueDistance,两个 OKLCH 色相间的角距离。
结论与意义
本版本的意义在于把复用器终端启动与 /fork 分叉收敛到统一的能力检测与单一注册表,并增强表格图表的表达力。适用边界:pi-tui 的导出移除是破坏性变更,调用方必须迁移;多数新行为依赖特定终端环境(tmux、Zellij、Herdr、CMUX、Orca、Tern)。其余结论原文未说明。
AI 解读 AI 生成
方法:按「时空变量」分析(时间 / 空间 / 变量,严格区分包含、相关与因果),对象包括原文作者、署名人员与关键技术及其实际原理;结论用「元反空」(元思考、反思考、空思考、综合)整理。
时间:何时发生,现在是否仍成立
来源日期为 2026年10月11日 01:15(北京时间),即北京时间 2026-10-11 01:15:16,内容描述 v18.8.8...v18.8.9 之间的差异。这些变更条目仅在 v18.8.9 发布时点被陈述;后续版本是否仍保留这些 API 与行为,原文未说明。
空间:谁的环境 / 场景
适用于 oh-my-pi v18.8.9 及四个子包 @oh-my-pi/pi-ai、@oh-my-pi/pi-coding-agent、@oh-my-pi/pi-tui、@oh-my-pi/pi-utils 的使用者。具体场景:处于 tmux、Zellij、Herdr、CMUX 或 Orca 等终端复用器会话;支持 Tern Surface Protocol 的终端;依赖 TERMINAL_MULTIPLEXER_ENV_KEYS 所列环境变量做检测的部署形态。
变量:实际改变了什么
- API 结构:
pi-tui移除三个isInside*()导出(破坏性),并新增多个复用器相关导出。 - 行为:
--fork对未解决工具调用配 unknown-outcome;/tan克隆改报 unknown-outcome 而非 aborted;CMUX shell 输入保留非 ASCII 参数与 pane 工作目录。 - 渲染:图表采用 Apple/Tern 风格(细网格线、圆角柱与单元格);相差 8× 以上的线图序列改分轴堆叠;
12/12、154/160记为占总分的百分比;SVG 系列--c1…--c6改为等权重色板。 - 修复:
parseCell不再对3 constructor类单元格抛错。
区分:包含 ≠ 相关 ≠ 因果
包含:各条目明确归属对应子包与 PR;pi-tui 新 API 由同一复用器注册表驱动,是明确的包含关系。相关:composer 底栏显示 git 分支的前提是状态行配置了 git 段,原文只描述条件同时成立,未证明因果。因果证据较明确的仅修复项:3 constructor、2 valueOf calls 单元格导致的图表失败被修复。
图表行为规则(如 8× 阈值触发分轴)是设计约定,不是实验结论。
对象:作者/署名与关键技术原理
原文作者/署名(仅结构化字段):github-actions[bot],即发布说明由自动化流程生成;正文未提供其他人名署名信息,变更归属仅以 PR 编号 #13620、#15220 标注。关键技术及原文描述:
- 复用器检测:
classifyTerminalMultiplexer()在 Orca 终端内返回orca而isInsideTerminalMultiplexer()保持 false,使 Orca 走直接终端渲染路径;检测读取TERMINAL_MULTIPLEXER_ENV_KEYS所列环境变量。 - 能力驱动启动:按 provider/shell 能力反馈,shell 输入启动需确认 POSIX shell。
- 表格图表:
ChartSpec.baseline以 before 列为基线,把每行变化画成倍数或百分比;TableColumn.scores将12/12、154/160读作占总分的百分比。 hueDistance:两个 OKLCH 色相之间的角距离。其余实现原理原文未说明。
元反空综合结论
元:这是自动生成的增量发布说明,本质在回答『v18.8.8 到 v18.8.9 改了什么、升级者需要注意什么』,服务于升级与迁移决策。
反:最可能失效或有边界的部分——pi-tui 移除 isInside*() 导出会使旧调用直接失败,必须迁移到 hasTerminalMultiplexerSession();Tern 协议与各复用器相关行为只在对应终端环境生效;新增图表 API 属刚引入的接口,其后续稳定性原文未说明。
空:去掉叙述后剩下的必要事实是:版本号 v18.8.9、四个子包的增/改/修清单、一个破坏性 API 变更、两个 PR(#13620、#15220)及 v18.8.8...v18.8.9 的对比范围。
综合:这是一份描述性的升级指引,不含性能或收益类主张;使用者应优先核对破坏性变更与自身终端环境是否匹配,其余行为以实际运行版本为准。
中文译文 AI 生成
@oh-my-pi/pi-ai
变更
- 更新了 state 字段的渲染,去除尾部空白并统一空集合的格式化,以保证 prompt 输出的一致性。
@oh-my-pi/pi-coding-agent
新增
- 新增面向 tmux、Zellij、Herdr 和 CMUX 的能力驱动的扩展终端启动,整合了多路复用器检测、provider/shell 能力反馈,并在 shell 输入启动时要求进行 POSIX shell 确认;CMUX 的 shell 输入会保留非 ASCII 参数和面板工作目录(#13620 by @anatoli-tsinovoy)。
- 新增
/fork pane|window|tab,可在新的多路复用器面板或窗口中打开该会话的 fork,同时当前会话继续运行;不带参数的/fork仍在原处 fork(#13620 by @anatoli-tsinovoy)。 - 新增基于 Orca CLI 的
/fork pane|window|tab与ctx.ui.openTerminal()启动方式,并带 POSIX shell 确认;当 Orca 只能将一个 tab 作为后台终端启动时,启动会报告一条警告,而不是显示一个可见的 tab(#13620 by @anatoli-tsinovoy)。
变更
- CLI
--fork现在会将源会话遗留未解决的工具调用与 unknown-outcome 结果配对,/tan克隆将此类调用报告为 unknown-outcome 而非 aborted;fork 一个进程已退出的源时,会保留进程退出恢复和 pending-tool 警告(#13620 by @anatoli-tsinovoy)。 - 表格图表(
tui.autoGraph)现在覆盖各行是不同指标(时间、内存、计数)的 before/after 表格:每行的变化按其“before”值的倍数绘制(48× 更少,+27%),以文字书写的行会被跳过并在图表下方列出名称。像 12/12 这样的单列分数会绘制为朝 100% 填充的条形图。 - 在支持 Tern Surface Protocol(Tern)的终端中,当状态栏包含 git 段时,composer 的底部栏会在模型 chip 旁显示 git 分支及其状态;随着栏变窄,它比其他 facts 保留得更久,点击它会打开
/git(#15220 by @H4vC)。 - 表格图表现在将 154/160 这样的分数绘制为其占总数的份额,而不是第一个数字;对比两列或三列、跨越四个或更多指标的表格现在会获得一个图表:由每个指标一个小面板组成的网格。
修复
- 修复了表格图表现在会因诸如 “3 constructor or 2
valueOfcalls” 这样的单元格而失败的问题。
@oh-my-pi/pi-tui
破坏性变更
- 移除了
isInsideTmux()、isInsideZellij()和isInsideHerdr()导出;请改用hasTerminalMultiplexerSession("tmux" | "zellij" | "herdr", env)(#13620 by @anatoli-tsinovoy)。
新增
classifyTerminalMultiplexer()在 Orca 终端内报告"orca",而isInsideTerminalMultiplexer()在其中保持为 false,因此 Orca 保持 direct-terminal 渲染路径;TERMINAL_MULTIPLEXER_ENV_KEYS列出了多路复用器检测会读取的每个环境变量(#13620 by @anatoli-tsinovoy)。- 新增
terminalMultiplexerSessions()、terminalMultiplexerForTerm()、classifyTerminalMultiplexerModule()和routeTerminalMultiplexerNotification(),由一个多路复用器注册表驱动,该注册表现在负责通知路由和针对各多路复用器的能力覆盖(#13620 by @anatoli-tsinovoy)。 - 新增 change 和 progress 两种表格图表类型,带有
ChartSpec.baseline和TableColumn.scores:各行拥有自身单位的 before/after 表格会将每个指标绘制为基准列的倍数(不含两个数字的行会在 caption 中命名),analyzeTable将整数分数(12/12、154/160)读取为其总数的百分比,同时保持 a / b 对和列表的书写原样。
变更
StatusLineComponent.describeComposerFacts()会将配置的 git 段纳入 composer 的 facts(分支与状态、status.git点击动作,并固定以便比其他 facts 保留更久),而不是将分支留给 Tern 的面板标题(#15220 by @H4vC)。- 面板超过三个且类别至多六个的 small-multiple 表格图表,会绘制为带颜色图例的逐指标面板条带,
worthCharting会像统计类别那样统计其面板数。 - 表格图表采用了 Apple 图表和 Tern 的外观:UI 无衬线字体、发丝级网格线、圆角条形与单元格、柔和面积填充之上的平滑线条、圆点图例、绝不溢出边缘的左对齐类别标签,以及以单一单位标注的坐标轴(0、5k、10k)。
- 系列大小相差 8× 或以上的折线图会将面板按各自的坐标轴堆叠,而不是把较小的线条压平,其末端标签也不再重叠。
- SVG 图形的系列颜色
--c1…--c6现在是以主题 accent 色相为主导的等权重调色板,而不再是语法配色。
修复
- 修复了
parseCell在诸如 “3 constructor or 2valueOfcalls” 的表格单元格上抛出异常的问题,以及将 constructor 单元格读取为缺失值的问题。
@oh-my-pi/pi-utils
新增
- 新增
hueDistance,即两个 OKLCH 色相之间的角度距离。
变更内容
- feat(tui): show the git branch in Tern's composer bar(由 @H4vC 于 #15220 提交)
- feat(coding-agent): add multiplexer terminal launch and
/forkplacements(由 @anatoli-tsinovoy 于 #13620 提交)
完整变更日志:v18.8.8...v18.8.9
展开原文提取正文(采集端自动提取,可能有缺失)
@oh-my-pi/pi-ai
Changed
Updated state field rendering to trim trailing whitespace and normalize empty collection formatting for consistent prompt output
@oh-my-pi/pi-coding-agent
Added
Added capability-driven extension terminal launches for tmux, Zellij, Herdr, and CMUX, with consolidated multiplexer detection, provider/shell capability feedback, and required POSIX-shell confirmation for shell-input launches; CMUX shell input preserves non-ASCII arguments and pane working directories (#13620 by @anatoli-tsinovoy). Added /fork pane|window|tab to open a fork of the session in a new multiplexer pane or window while this session keeps running; bare /fork still forks in place (#13620 by @anatoli-tsinovoy). Added Orca CLI-based launches for /fork pane|window|tab and ctx.ui.openTerminal(), with POSIX-shell confirmation; when Orca can only start a tab as a background terminal, the launch reports a warning instead of a visible tab (#13620 by @anatoli-tsinovoy).
Changed
CLI --fork now pairs tool calls the source session left unresolved with an unknown-outcome result, and /tan clones report such calls as unknown-outcome instead of aborted; forking a source whose process already exited keeps the process-exit recovery and pending-tool warning (#13620 by @anatoli-tsinovoy). Table charts (tui.autoGraph) now cover before/after tables whose rows are different metrics (time, memory, counts): each row's change is drawn as a factor of its "before" value (48× less, +27%), and rows written in prose are skipped and named under the chart. A single column of scores like 12/12 is drawn as bars filling toward 100% In terminals that speak the Tern Surface Protocol (Tern), the composer's bottom bar shows the git branch and its status beside the model chip when the status line has the git segment; it outlasts the other facts as the bar narrows, and clicking it opens /git (#15220 by @H4vC) Table charts plot scores like 154/160 as the share of their total instead of the first number, and tables comparing two or three columns across four or more metrics now get a chart: a grid of one small panel per metric
Fixed
Fixed table charts failing on a table cell such as 3 constructor or 2 valueOf calls
@oh-my-pi/pi-tui Breaking Changes
Removed the isInsideTmux(), isInsideZellij(), and isInsideHerdr() exports; use hasTerminalMultiplexerSession("tmux" | "zellij" | "herdr", env) instead (#13620 by @anatoli-tsinovoy)
Added
classifyTerminalMultiplexer() reports "orca" inside Orca terminals while isInsideTerminalMultiplexer() stays false there, so Orca keeps the direct-terminal render path; TERMINAL_MULTIPLEXER_ENV_KEYS lists every environment variable multiplexer detection reads (#13620 by @anatoli-tsinovoy) Added terminalMultiplexerSessions(), terminalMultiplexerForTerm(), classifyTerminalMultiplexerModule(), and routeTerminalMultiplexerNotification(), driven by one multiplexer registry that now owns notification routing and per-multiplexer capability overrides (#13620 by @anatoli-tsinovoy) Added change and progress table-chart kinds with ChartSpec.baseline and TableColumn.scores: a before/after table whose rows have their own units charts each metric as a factor of the baseline column (rows without two numbers are named in the caption), and analyzeTable reads whole-number scores (12/12, 154/160) as the percent of their total, keeping a / b pairs and lists as written
Changed
StatusLineComponent.describeComposerFacts() includes the configured git segment among the composer's facts (branch and status, the status.git click action, pinned so it outlasts the other facts) instead of leaving the branch to Tern's pane header (#15220 by @H4vC) Small-multiple table charts with more than three panels and at most six categories draw as bands of per-metric panels with a color legend, and worthCharting counts their panels like categories Table charts take the look of Apple's charts and Tern: a UI sans, hairline gridlines, rounded bars and cells, smooth lines over a soft area fill, dot legends, left-aligned category labels that never run off the edge, and axes labeled in one unit (0, 5k, 10k) Line charts whose series differ 8× or more in size stack panels on their own axes instead of flattening the smaller lines, and their end labels no longer overlap SVG figure series colors --c1…--c6 are an even-weight palette led by the theme accent's hue instead of syntax colors
Fixed
Fixed parseCell throwing on table cells such as 3 constructor or 2 valueOf calls, and reading a constructor cell as a missing value
@oh-my-pi/pi-utils
Added
Added hueDistance, the angular distance between two OKLCH hues
What's Changed
feat(tui):show the git branch in Tern's composer bar by @H4vC in #15220feat(coding-agent):add multiplexer terminal launch and/forkplacements by @anatoli-tsinovoy in #13620
Full Changelog: v18.8.8...v18.8.9
原文入口
阅读原文(github.com)原文将在新窗口打开。收录时间不是内容更新时间;正文、译文与解读的版权归原作者/来源所有,本站仅作个人阅读辅助并保留原文入口;页面时间均为北京时间。
了解来源批准与收录规则