黄奕彬

外部精选

omp · v18.10.3

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

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

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

结构化摘要 AI 生成

背景与问题

这是开源项目 oh-my-pi(omp)v18.10.3 的发布说明(变更范围 v18.10.2...v18.10.3),面向该 AI 编码代理/CLI 工具的用户与下游包依赖方。

核心背景是本地 token 估算与各提供商(Claude、OpenAI/Codex、Cursor、Google Antigravity 等)实际计费不一致,导致上下文计数偏高或偏低、压缩(snapcompact/compaction)尺寸失准;另有图片超限导致请求失败、宿主缩放图片影响可读性等问题。

方法或内容

按子包组织变更条目,覆盖 @oh-my-pi/pi-agent-core、@oh-my-pi/pi-ai、@oh-my-pi/pi-catalog、@oh-my-pi/pi-coding-agent、@oh-my-pi/snapcompact、@oh-my-pi/pi-tui,分为 Breaking Changes / Added / Changed / Fixed 并附 PR 编号。

具体包括:GPT-5+ 文本改用 o200k_base 计数、图片按读取模型的目录规则计价、以 reachesOfficialEndpoint() 区分官方端点与重定向、新增 image-count-budget/thinking-replay-tokens/image-max-edge 等目录规则轴、修复 snapcompact 工具结果成像破坏 prompt cache 等。

关键发现 / 结果

  • 计数修复:Claude 上下文对 Opus 5.5 请求高估约 55%、图片按 OpenAI 费率计价高估约 16%,已改按计费口径计数;GPT-5+ 本地计数低约 12%,改用 o200k_base。
  • 限额:官方 Anthropic 端点图片上限 90→600(200k 窗口模型 100),Codex 200→2,000;Codex 新增 24 MB 内联图片字节预算;官方端点 snapcompact 帧载荷 3 MB→12 MB;Antigravity/xAI/Cursor 保留最多 60 张图(Claude 为 20),此前为 5。
  • 效率:Claude 4.7+ 与 GPT-5.5–6.1 归档按实测帧价计价,Codex 归档可容纳约 1.7 倍帧数。
  • 新增:Muse Wonder(muse-wonder-1.0)模型、task.agentSoftRequestBudget、omp --restore 会话恢复、兄弟子代理 prompt-cache 共享(Muse Code 系列)。
  • 破坏性:移除 estimateImageContentTokens();isOfficialCodexApiUrl 移至 pi-catalog/wire/codex;providerImageBudget(provider) 改签名为 (model) 等。

结论与意义

本版使本地 token 计数与压缩尺寸逐步对齐提供商实际计费,并在官方端点放宽图片/帧限额以提升压缩容量。

适用边界明确:放宽后的限额仅作用于官方端点,经 ANTHROPIC_BASE_URL、FOUNDRY_BASE_URL 等自定义 base URL 重定向的请求沿用旧限额且不再获得 Anthropic 的 24 MB 内联图片限制;thinking-unverified 阶梯是对无能力元数据宿主上未知模型的选择性提供,非经验证的能力。

AI 解读 AI 生成

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

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

发布于来源时间 2026年10月13日 03:23(北京时间),即北京时间 2026-10-13 03:23:53。所载为 v18.10.2...v18.10.3 之间的固定变更记录。其中的百分比(55%、16%、12%)与限额数字均针对发布当时的模型版本与测量,随提供商计费规则或政策变化可能不再成立;后续版本也可能继续修改这些行为。

空间:谁的环境 / 场景

适用于 oh-my-pi(omp)v18.10.3 及其子包生态。

涉及宿主/提供商:Anthropic/Claude、OpenAI(Codex、Responses API)、Azure、OpenRouter、Copilot、Google Antigravity、xAI/Grok、Cursor(含默认 Auto 路由)、Muse Code、Foundry。

关键使用形态区分:官方端点与经 ANTHROPIC_BASE_URL/FOUNDRY_BASE_URL 重定向的自定义端点适用不同的图片数量与字节预算规则。

变量:实际改变了什么

  • 计数行为:GPT-5+ 文本由 bytes/4 估算改为 o200k_base;Claude 重放 thinking 轮按其计费输出而非签名字节计数。
  • API(破坏性):移除 estimateImageContentTokens();applyShakeRegion() 增加 replacementTokens;maxFramesForDataBudget() 需传入字节预算;删除 PROVIDER_IMAGE_BUDGETS 等常量。
  • 限额来源:图片数与帧字节预算改由目录规则驱动,官方端点数值大幅上调。
  • 功能:新增 omp --restore、子代理软请求预算、兄弟子代理 prompt-cache 共享;工具结果 token 缩减(省略亚秒级 bash 计时与冗余任务大小元数据)。

区分:包含 ≠ 相关 ≠ 因果

有明确因果证据的(原文以 fix/because/so 句式给出):按签名字节计数导致 Claude 压缩少保留约一半近期历史;大图进入会话导致 Antigravity 上 Claude 每轮以 5 MB 上限失败;Cursor 先把 1568–1932px 帧缩到 1024px 导致模型读到的是缩小图;工具结果先发文本再发图片破坏了 prompt cache 与签名 thinking。

仅为包含/相关的:各包变更同版本发布但相互独立(各有 PR);官方端点限额上调与计数修复属不同变更,无因果关联;Muse Wonder 模型新增与 thinking-unverified 轴新增是并列条目。

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

署名(来自结构化作者字段):github-actions[bot],即 GitHub 自动化发布账号,非自然人作者。正文各变更条目以 PR 形式标注的贡献者为 @will-bogusz 与 @iliaal(@YueyuHoshizora 被标注为 #15285、#15284 等改动的原型基础)。

关键技术按原文描述:snapcompact 是把上下文归档为帧图像的压缩机制,按每帧实测 token 价定价并受字节/数量预算约束;tokenizer(o200k_base、Tokenizer.imageTokens(size, detail))决定文本与图片计数;shake/history rewrite 通过 elidedOutputTokens 记录被改写移除但 usage.output 仍计的 token;reachesOfficialEndpoint(model) 沿 base URL 重定向判断请求是否真正抵达官方端点。

元反空综合结论

  • 元:这条内容本质在解决本地 token/图片/限额估算与提供商真实计费及约束错位的问题,由此派生出计数修复、压缩尺寸校准与限额策略化三条主线。
  • 反:最可能失效或有边界的主张——各百分比仅对发布时测量的模型版本有效;限额放宽依赖官方端点判定,一旦经自定义 base URL 重定向即回落旧限额;verified 标记的 image-tokenization 规则仅覆盖 Claude 4.7+ 高分辨率档与 GPT-5.5–6.1、gpt-6-astra 等部分规则;thinking-unverified 阶梯对未知模型 ID 是选择性提供而非验证结论。
  • 空:去掉发布叙事后剩下的必要事实——版本号 v18.10.3、多处破坏性 API 变更、新增 muse-wonder-1.0 与 omp --restore、按包分列的修复清单及 PR 编号。
  • 综合:这是一份以计费对齐为主线的维护性版本说明,逐条 PR 归属使其可核查;采用时最需注意破坏性 API 迁移成本,以及官方端点与重定向端点的行为差异边界。

中文译文 AI 生成

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

破坏性变更

  • 从 @oh-my-pi/pi-agent-core/image-tokens 移除了 estimateImageContentTokens();请使用 Tokenizer.imageTokens(size, detail),它会按读取模型的目录图片规则计价(#15446,由 @will-bogusz 完成)
  • applyShakeRegion() 和 applyShakeRegions() 接受替换内容的 token 数(replacementTokens);对助手回合的整块重写会将其移除的 token 加入 elidedOutputTokens,因此重新加载后重放的 Claude 回合计数保持降低(#15446,由 @will-bogusz 完成)

修复

  • 修复了 Claude 上下文计数将 Opus 5.5 请求读取为比其计费输入高约 55% 的问题:重放的思考回合现在按 Claude 为其计费的输出大小计数,而非其签名的字节数(#15446,由 @will-bogusz 完成)
  • 修复了截图和其他非帧图片对所有模型都按 OpenAI 费率计数而非读取模型自身费率的问题;Claude 对它们的计费高出约 16%(#15446,由 @will-bogusz 完成)
  • 修复了 OpenAI Responses 和 Codex 上下文估算遗漏重放推理的问题:加密推理实际重放的每个回合现在计入其报告的推理 token(后端未报告时计入其密文),而冷会话从请求中重建它时不计入任何 token,从而使 compaction 和 snapcompact 的规模计算与计费一致;分支摘要不再为其从未发送的加密推理预留预算(#15447,由 @will-bogusz 完成)

@oh-my-pi/pi-ai

破坏性变更

  • isOfficialCodexApiUrl 从 @oh-my-pi/pi-ai 移到了 @oh-my-pi/pi-catalog/wire/codex,位于 CODEX_BASE_URL 旁边,这样目录的兼容性解析器就能用同一检查来分类 Codex 端点(#15434,由 @will-bogusz 完成)

新增

  • 新增 withoutUnverifiedThinking 工具,在未请求 effort 时从模型中过滤掉推理能力
  • 新增 reachesOfficialEndpoint(model):判断发往该模型的请求是否到达其兼容性所针对的官方端点,会跟随 ANTHROPIC_BASE_URL 以及 Foundry 对第一方 Anthropic 模型的 FOUNDRY_BASE_URL 重定向(#15434,由 @will-bogusz 完成)
  • 新增 AssistantMessage.elidedOutputTokens,即历史重写(shake)已从该回合移除、但 usage.output 仍会计入的可见输出 token(#15446,由 @will-bogusz 完成)
  • 从 providers/transform-messages 导出了 shouldDropTruncatedThinkingOnlyAssistant,从 providers/openai-shared 导出了 isColdReplayableResponsesTurn,并从 providers/openai-responses 导出了新的 openAIResponsesReplaysNativeHistory,使本地 token 估算能够追踪重放丢弃了哪些回合以及会话是否重放原生历史(#15447,由 @will-bogusz 完成)

修复

  • 修复了 Google Antigravity 上的 Claude 在大图片进入对话后每一回合都因 "image exceeds 5 MB maximum" 失败的问题;现在图片会在发送前降采样到宿主的限制,与 Anthropic API 上的做法一致(#15444,由 @will-bogusz 完成)

@oh-my-pi/pi-catalog

破坏性变更

  • resolveInlineImageByteBudget(model, officialEndpoint) 和 resolveImageCountBudget(model, officialEndpoint) 改为接受请求是否到达官方端点,而不是读取 compat.officialEndpoint(后者会遗漏诸如 ANTHROPIC_BASE_URL 的请求时重定向);请传入 pi-ai 的 reachesOfficialEndpoint(model)(#15434,由 @will-bogusz 完成)

新增

  • 为 Meta 和 Muse Code 新增了 Muse Wonder(muse-wonder-1.0),附带其 minimal–max effort 阶梯和定价
  • 新增 thinking-unverified 规则轴:在模型列表不带能力元数据的宿主(Meta、Muse Code)上,未识别的模型现在会提供可选择启用的思考阶梯(ThinkingConfig.unverified),而不是没有
  • 新增 thinking-unverified 轴,用于在未分类的模型 ID 上提供推理阶梯
  • 为 Meta 提供商新增了 Muse Wonder 1.0 模型定义
  • 新增可选择启用的 snapcompact-image-reads 轴:只有当读取者的规则启用了它时,snapcompact 才会为新的读取结果生成图片;Claude Opus 5.5 及更高版本选择启用(#14249,由 @will-bogusz 完成)
  • 新增 image-count-budget 规则,规定单个请求可携带的图片数量(Anthropic 90,Codex 200,其他宿主不变),以及仅在官方端点上生效的 official-image-count-budget 覆盖:Anthropic 600(200k 窗口的 Claude 模型为 100),Codex 2,000(#15434,由 @will-bogusz 完成)
  • 为 Codex 后端新增 24 MB 的内联图片字节预算,该后端现在在其默认 URL 及其下的路径(如 /codex/responses)被计为其官方端点(#15434,由 @will-bogusz 完成)
  • 在 wire/codex 中新增了从 pi-ai 移入的 isOfficialCodexApiUrl(#15434,由 @will-bogusz 完成)
  • 为 image-tokenization 规则新增 verified,将 Claude 4.7+ 高分辨率档位以及 GPT-5.5 至 6.1 和 gpt-6-astra 规则标记为与实测的提供商计费一致(#15442,由 @will-bogusz 完成)
  • 新增 image-max-edge 轴和 resolveImageMaxEdge(),用于在模型读取前缩小图片的宿主;Cursor 的 Claude 和 GPT 模型及其默认(Auto)路由适配 1024×1024(#15448,由 @will-bogusz 完成)
  • 新增 thinking-replay-tokens 轴;Claude 系列在每个宿主上都将其设为 output,因为重放已签名的思考块会按该回合的完整推理计费,而非签名的字节数(#15446,由 @will-bogusz 完成)
  • 新增用于同级子代理提示词缓存共享的 KDL 可选开关,已为 Muse Code 的 Spark 1.3、Wonder 1.0 和 Wonder Full 1.0 变体在 Responses API 上启用(#15467,由 @iliaal 完成)

变更

  • 为提供商元数据更新了模型定义和兼容性规则
  • Google Antigravity、xAI 和 Cursor 的请求现在最多可保留 60 张图片,Antigravity 和 Cursor 上的 Claude 为 20 张,此前为 5 张;这会将 snapcompact 帧和实时截图一并计入(#15449,由 @will-bogusz 完成)
  • Snapcompact 现在按为 Antigravity Gemini(固定 1,089 token)、Grok 4.6 至 4.20 以及 Claude Sonnet 4.6 标准档位实测的帧价格来计算归档大小(#15449,由 @will-bogusz 完成)

修复

  • 将 max-image-dimension 和 max-image-payload-bytes 应用到 Google API 模型,并声明了 Google Antigravity 上 Claude 每张图片 5 MiB 的限制(#15444,由 @will-bogusz 完成)

修复了 OpenAI GPT-5 及后续模型(Codex、OpenAI、Azure、OpenRouter、Copilot 等宿主)本地 token 计数偏低约 12% 的问题:其文本现在改用 o200k_base 计数,而不再按字节数/4 估算(#15447,由 @will-bogusz 贡献)

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

新增

  • 新增 task.agentSoftRequestBudget,为具名子代理提供各自独立的软请求预算,使长时间运行的代理可以获得更多请求(设为 0 表示不设防护),而 scout、sonic 等其他代理保持原有预算(#15419,由 @will-bogusz 贡献)
  • 新增 o200k 作为自定义模型及 models.yml 中覆盖配置的 tokenizer 取值(#15447,由 @will-bogusz 贡献)

变更

  • 为 Claude 4.7+ 及 GPT-5.5 到 6.1(含 gpt-6-astra)的 snapcompact 归档改为按每帧实测价格而非至少 5,024 tokens 计算大小,因此当压缩触发阈值之下的剩余空间成为限制时,Codex 归档可容纳最多 1.7 倍的帧(#15442,由 @will-bogusz 贡献)
  • 为 Muse Code 的 Spark 1.3、Wonder 1.0 和 Wonder Full 1.0 变体启用了同辈子代理 prompt-cache 共享,同时保持各自对话独立(#15467,由 @iliaal 贡献,基于 @YueyuHoshizora 的 #15285)
  • 通过省略亚秒级 bash 计时和冗余的任务大小元数据,减少了工具结果的 token 数(#15468,由 @iliaal 贡献;#15265;基于 @YueyuHoshizora 的 #15284)
  • 在 Anthropic 和 Codex 官方端点上,snapcompact 归档最多可携带 12 MB 的帧(此前为 3 MB),Anthropic 请求最多保留 600 张图片(200k 窗口模型为 100 张,此前为 90 张),Codex 请求最多 2,000 张(此前为 200 张);自定义 base URL(包括经 ANTHROPIC_BASE_URL 或 Foundry 的 FOUNDRY_BASE_URL 改道的 Anthropic 请求)保持先前的上限,且不再适用 Anthropic 的 24 MB 内联图片字节限制(#15434,由 @will-bogusz 贡献)

修复

  • 修复了 snapcompact.toolResults 在大体积工具结果以文本发出的下一回合又以图片重发的问题,该行为会破坏 prompt cache,并使 Anthropic 每回合都对 thinking 进行签名;现在结果从首次发送起即以图片呈现,读取类结果保持为文本,除非已知该模型能仅凭图片精确编辑(Opus 5.5+)(#14249,由 @will-bogusz 贡献)
  • 修复了带 thinking 的 Claude 会话在压缩时有时仅保留 compaction.keepRecentTokens 所要求近期历史约一半的问题,原因是每个保留回合都按其签名的大小计数(#15446,由 @will-bogusz 贡献)
  • 修复了重试回退拒绝窗口较小模型的问题,方式是向其计入当前模型提供商用量所重放的 reasoning,并让输出上限计入冷 Responses 会话在其首次请求中省略的 reasoning(#15447,由 @will-bogusz 贡献)
  • 修复了匿名化会话导出丢失 bash 计时是否显示信息的问题(#15468,由 @iliaal 贡献)
  • 新增 omp --restore <session>:像 --resume 一样恢复会话,随后继续其上一个进程在崩溃或被终止时留下的未完成工作,包括被中断的回合及其当时正在运行的子代理(它们的结果照常送达父级);Tern 的会话守护进程现在会在崩溃后用它重启 omp
  • 将私有 prompt-cache 路由键排除在共享会话和 HTML 导出之外(#15467,由 @iliaal 贡献)

@oh-my-pi/snapcompact

破坏性变更

  • providerImageBudget(provider) 与 providerFrameBudget(provider) 变更为 providerImageBudget(model) 与 providerFrameBudget(model);maxFramesForDataBudget(shape) 变更为 maxFramesForDataBudget(shape, budget),并要求提供字节预算(#15434,由 @will-bogusz 贡献)
  • 移除了 PROVIDER_IMAGE_BUDGETS 和 FRAME_DATA_BYTES_BUDGET:图片数量改由目录的 image-count-budget 规则提供,帧字节预算改由 frameDataBytesBudget(model) 提供(宿主未提供时使用 DEFAULT_FRAME_DATA_BYTES_BUDGET)(#15434,由 @will-bogusz 贡献)

新增

  • 新增 plannedFrameTokens 和 Shape.frameTokensVerified:当归档读取方的 image-tokenization 规则已通过验证时,归档大小按帧自身价格计,否则至少按 FRAME_TOKEN_ESTIMATE 计(#15442,由 @will-bogusz 贡献)

修复

  • 修复了 Cursor 上 Claude 和 GPT 的 snapcompact 帧(包括其默认(Auto)路由)以 1568–1932px 绘制、而 Cursor 在模型读取前将其缩小到 1024px 的问题;帧现在按宿主目录的 image-max-edge 渲染(#15448,由 @will-bogusz 贡献)

@oh-my-pi/pi-tui

变更

  • 更新了模型选择器,为未验证模型提供手动 effort 选择,而非自动模式

修复

  • 修复了当帧边缘与变体表不一致时,snapcompact.shape 设置预览将变体标注为 5x8-sent 并重复第一个变体样本的问题(Cursor 上的 Claude 和 GPT;高分辨率 Claude 上的 auto)(#15448,由 @will-bogusz 贡献)

变更内容

  • feat(task): 让具名子代理获得各自的软请求预算(@will-bogusz,#15419)
  • feat(catalog,snapcompact,coding-agent): 依据目录策略确定 snapcompact 请求上限(@will-bogusz,#15434)
  • fix(catalog,snapcompact,coding-agent): 按经计费验证的帧价格为 snapcompact 归档定大小(@will-bogusz,#15442)
  • fix(ai,catalog): 将 Claude 图片限制在 Antigravity 的 5 MiB 上限内(@will-bogusz,#15444)
  • fix(catalog,snapcompact,tui): 保持 Cursor 上 Claude 和 GPT 对 snapcompact 帧的可读性(@will-bogusz,#15448)
  • feat(catalog): 依据实测上限与价格为 Antigravity、xAI 和 Cursor 上的 snapcompact 归档定大小(@will-bogusz,#15449)
  • fix(agent,catalog,coding-agent): 按 Claude 实际计费口径计数重放的 Claude thinking 和图片(@will-bogusz,#15446)
  • perf(tools): 精简 bash 计时与任务大小元数据(@iliaal,#15468)
  • fix(catalog,agent,ai,coding-agent): 按 OpenAI 计费口径计数 GPT-5 及后续模型的上下文(@will-bogusz,#15447)
  • fix(coding-agent): 阻止 snapcompact 工具结果成像重写已发送的结果(@will-bogusz,#14249)
  • perf(task): 在已启用的提供商上共享同辈 prompt-cache 键(@iliaal,#15467)

完整变更日志:v18.10.2...v18.10.3

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

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

Removed estimateImageContentTokens() from @oh-my-pi/pi-agent-core/image-tokens; use Tokenizer.imageTokens(size, detail), which prices with the reading model's catalog image rule (#15446 by @will-bogusz) applyShakeRegion() and applyShakeRegions() take the replacement's token count (replacementTokens); a block rewrite of an assistant turn adds the tokens it removes to elidedOutputTokens, so a replayed Claude turn's count stays lowered after a reload (#15446 by @will-bogusz)

Fixed

Fixed Claude context counts reading Opus 5.5 requests about 55% over their billed input: a replayed thinking turn now counts at the output size Claude billed for it, not its signature's bytes (#15446 by @will-bogusz) Fixed screenshots and other non-frame images being counted at the OpenAI rate for every model instead of the reading model's own; Claude billed them about 16% higher (#15446 by @will-bogusz) Fixed OpenAI Responses and Codex context estimates leaving out replayed reasoning: each turn whose encrypted reasoning actually replays now counts its reported reasoning tokens (its ciphertext when the backend reports none), and none while a cold session rebuilds it out of the request, so compaction and snapcompact sizing match billing; branch summaries no longer budget for encrypted reasoning they never send (#15447 by @will-bogusz)

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

isOfficialCodexApiUrl moved from @oh-my-pi/pi-ai to @oh-my-pi/pi-catalog/wire/codex, next to CODEX_BASE_URL, so the catalog's compat resolver classifies Codex endpoints with the same check (#15434 by @will-bogusz)

Added

Added withoutUnverifiedThinking utility to filter reasoning capability from models when no effort is requested Added reachesOfficialEndpoint(model): whether a request to the model reaches the official endpoint its compat was built for, following ANTHROPIC_BASE_URL and Foundry's FOUNDRY_BASE_URL reroutes of first-party Anthropic models (#15434 by @will-bogusz) Added AssistantMessage.elidedOutputTokens, the visible output tokens a history rewrite (shake) has removed from the turn, which usage.output still counts (#15446 by @will-bogusz) Exported shouldDropTruncatedThinkingOnlyAssistant from providers/transform-messages, isColdReplayableResponsesTurn from providers/openai-shared and the new openAIResponsesReplaysNativeHistory from providers/openai-responses, so local token estimates can follow which turns replay drops and whether a session replays native history (#15447 by @will-bogusz)

Fixed

Fixed Claude on Google Antigravity failing every turn with "image exceeds 5 MB maximum" once a large image entered the conversation; images are now downscaled to the host's limits before sending, as on the Anthropic API (#15444 by @will-bogusz)

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

resolveInlineImageByteBudget(model, officialEndpoint) and resolveImageCountBudget(model, officialEndpoint) take whether the request reaches the official endpoint instead of reading compat.officialEndpoint, which misses request-time reroutes such as ANTHROPIC_BASE_URL; pass pi-ai's reachesOfficialEndpoint(model) (#15434 by @will-bogusz)

Added

Added Muse Wonder (muse-wonder-1.0) to Meta and Muse Code with its minimal–max effort ladder and pricing Added the thinking-unverified rule axis: on hosts whose model list carries no capability metadata (Meta, Muse Code), unrecognized models now offer an opt-in thinking ladder (ThinkingConfig.unverified) instead of none Added thinking-unverified axis for offering reasoning ladders on unclassified model IDs Added Muse Wonder 1.0 model definition to Meta provider Added the opt-in snapcompact-image-reads axis: snapcompact images a fresh read result only for readers whose rule sets it; Claude Opus 5.5 and later opt in (#14249 by @will-bogusz) Added the image-count-budget rule for how many images one request may carry (Anthropic 90, Codex 200, other hosts unchanged) and the official-image-count-budget override that applies only on the official endpoint: Anthropic 600 (100 on 200k-window Claude models), Codex 2,000 (#15434 by @will-bogusz) Added a 24 MB inline-image byte budget for the Codex backend, which now counts as its official endpoint at its default URL and at paths under it such as /codex/responses (#15434 by @will-bogusz) Added isOfficialCodexApiUrl to wire/codex, moved from pi-ai (#15434 by @will-bogusz) Added verified to image-tokenization rules, marking the Claude 4.7+ high-res tier and the GPT-5.5 to 6.1 and gpt-6-astra rules as matching measured provider billing (#15442 by @will-bogusz) Added the image-max-edge axis and resolveImageMaxEdge() for hosts that shrink images before the model reads them; Cursor's Claude and GPT models and its default (Auto) route fit 1024×1024 (#15448 by @will-bogusz) Added the thinking-replay-tokens axis; Claude lines set it to output on every host, since a replayed signed thinking block bills the turn's full reasoning, not the signature's bytes (#15446 by @will-bogusz) Added a KDL opt-in for sibling subagent prompt-cache sharing, enabled for Muse Code's Spark 1.3, Wonder 1.0, and Wonder Full 1.0 variants over the Responses API (#15467 by @iliaal)

Changed

Updated model definitions and compatibility rules for provider metadata Google Antigravity, xAI and Cursor requests keep up to 60 images, 20 for Claude on Antigravity and Cursor, up from 5; this counts snapcompact frames and live screenshots together (#15449 by @will-bogusz) Snapcompact sizes archives at the frame prices measured for Antigravity Gemini (a fixed 1,089 tokens), Grok 4.6 to 4.20, and Claude Sonnet 4.6's standard tier (#15449 by @will-bogusz)

Fixed

Applied max-image-dimension and max-image-payload-bytes to Google API models, and declared the 5 MiB per-image limit of Claude on Google Antigravity (#15444 by @will-bogusz) Fixed local token counts for OpenAI GPT-5 and later models (Codex, OpenAI, Azure, OpenRouter, Copilot and other hosts) reading about 12% low: their text is now counted with o200k_base instead of a bytes/4 estimate (#15447 by @will-bogusz)

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

Added

Added task.agentSoftRequestBudget to give named subagents their own soft request budget, so a long-running agent can get more requests (or 0 for no guard) while scout, sonic and other agents keep theirs (#15419 by @will-bogusz) Added o200k as a tokenizer value for custom models and overrides in models.yml (#15447 by @will-bogusz)

Changed

Sized snapcompact archives for Claude 4.7+ and GPT-5.5 to 6.1 (gpt-6-astra included) at each frame's measured price instead of at least 5,024 tokens, so Codex archives can hold up to 1.7× as many frames when the room under the compaction trigger is the limit (#15442 by @will-bogusz) Enabled sibling subagent prompt-cache sharing for Muse Code's Spark 1.3, Wonder 1.0, and Wonder Full 1.0 variants while keeping their conversations separate (#15467 by @iliaal, based on #15285 by @YueyuHoshizora) Reduced tool-result tokens by omitting subsecond bash timing and redundant task size metadata (#15468 by @iliaal; #15265; based on #15284 by @YueyuHoshizora) On the official Anthropic and Codex endpoints, snapcompact archives may carry up to 12 MB of frames instead of 3 MB, Anthropic requests keep up to 600 images (100 on 200k-window models) instead of 90, and Codex requests up to 2,000 instead of 200; custom base URLs, including Anthropic requests rerouted by ANTHROPIC_BASE_URL or Foundry's FOUNDRY_BASE_URL, keep the previous limits and no longer get Anthropic's 24 MB inline image byte limit (#15434 by @will-bogusz)

Fixed

Fixed snapcompact.toolResults re-sending each large tool result as images a turn after it went out as text, which broke the prompt cache and Anthropic signed thinking every turn; results are now imaged from their first send, and read results stay text unless the model is known to edit exactly from images (Opus 5.5+) (#14249 by @will-bogusz) Fixed compaction on Claude sessions with thinking sometimes keeping about half the recent history compaction.keepRecentTokens asks for, because each kept turn was counted at its signature's size (#15446 by @will-bogusz) Fixed retry fallback rejecting a model with a smaller window by charging it the reasoning the active model's provider usage replayed, and the output cap charging reasoning a cold Responses session leaves out of its first request (#15447 by @will-bogusz) Fixed anonymized session exports losing whether bash timing was shown (#15468 by @iliaal) Added omp --restore <session>: resumes a session like --resume, then goes on with what its last process left unfinished when it crashed or was killed, both the interrupted turn and the subagents it was running (their results reach the parent as usual); Tern's session daemon now restarts omp with it after a crash Kept private prompt-cache routing keys out of shared sessions and HTML exports (#15467 by @iliaal)

@oh-my-pi/snapcompact Breaking Changes

providerImageBudget(provider) and providerFrameBudget(provider) became providerImageBudget(model) and providerFrameBudget(model), and maxFramesForDataBudget(shape) became maxFramesForDataBudget(shape, budget) with a required byte budget (#15434 by @will-bogusz) Removed PROVIDER_IMAGE_BUDGETS and FRAME_DATA_BYTES_BUDGET: image counts come from the catalog's image-count-budget rules, and frame byte budgets from frameDataBytesBudget(model) (DEFAULT_FRAME_DATA_BYTES_BUDGET where the host has none) (#15434 by @will-bogusz)

Added

Added plannedFrameTokens and Shape.frameTokensVerified: archive sizing charges a frame its own price when the reader's image-tokenization rule is verified, and at least FRAME_TOKEN_ESTIMATE otherwise (#15442 by @will-bogusz)

Fixed

Fixed snapcompact frames for Claude and GPT on Cursor, including its default (Auto) route, being drawn at 1568–1932px, which Cursor shrank to 1024px before the model read them; frames now render at the host's catalog image-max-edge (#15448 by @will-bogusz)

@oh-my-pi/pi-tui

Changed

Updated model picker to offer manual effort selection for unverified models instead of automatic mode

Fixed

Fixed the snapcompact.shape settings preview labelling variants 5x8-sent and repeating the first variant's sample when the frame edge differs from the variant table (Claude and GPT on Cursor; auto on high-resolution Claude) (#15448 by @will-bogusz)

What's Changed

  • feat(task): let named subagents get their own soft request budget by @will-bogusz in #15419
  • feat(catalog,snapcompact,coding-agent): size snapcompact request limits from catalog policy by @will-bogusz in #15434
  • fix(catalog,snapcompact,coding-agent): size snapcompact archives at billing-verified frame prices by @will-bogusz in #15442
  • fix(ai,catalog): clamp Claude images to Antigravity's 5 MiB limit by @will-bogusz in #15444
  • fix(catalog,snapcompact,tui): keep snapcompact frames legible to Claude and GPT on Cursor by @will-bogusz in #15448
  • feat(catalog): size snapcompact archives on Antigravity, xAI and Cursor from measured limits and prices by @will-bogusz in #15449
  • fix(agent,catalog,coding-agent): count replayed Claude thinking and images at what Claude bills by @will-bogusz in #15446
  • perf(tools): trim bash timing and task size metadata by @iliaal in #15468
  • fix(catalog,agent,ai,coding-agent): count GPT-5 and later context the way OpenAI bills it by @will-bogusz in #15447
  • fix(coding-agent): stop snapcompact tool-result imaging from rewriting already-sent results by @will-bogusz in #14249
  • perf(task): share sibling prompt-cache keys on opted-in providers by @iliaal in #15467

Full Changelog: v18.10.2...v18.10.3

原文入口

阅读原文(github.com)

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

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

了解来源批准与收录规则