Release · Oh My Pi · can1357

Oh My Pi v18.8.5

What's new in Oh My Pi v18.8.5, released Oct 8, 2026 (). Newer: v18.12.6 (Oct 21, 2026)

Release notes

Oh My Pi v18.8.5

@oh-my-pi/pi-ai

Added
  • oauth.refresh(id, signal, { reason: "auth-recovery" }) forwards provider-401 recovery intent to a delegated (auth broker) refresh, and AuthStorageOptions.refreshOAuthCredentialMints marks a refreshOAuthCredential hook that exchanges tokens itself so its tokens are reused for auth recovery (#14752 by @will-bogusz)
  • SessionsApi.inherit accepts an optional filter, called with each provider and whether the source's affinity is an explicit user pin, to copy only the affinities it accepts (#14749 by @will-bogusz)
Changed
  • AuthApiKeyOptions.accountIds also matches the login email, or else the project id, of credentials that carry no account id (see oauthAccountKey), so Antigravity requests prefer accounts that serve the requested model (#14924).
Fixed
  • Fixed accounts sitting exactly at their reservePct (e.g. 70% used with a 30% reserve) still being picked and reported healthy instead of being held in reserve (#14765 by @will-bogusz)
  • Fixed oauth.accessById with forceRefresh returning the stored token unchanged while it was still valid; it now re-mints that one account (through the auth broker when configured) and returns that account's token even if another row is removed meanwhile (#14752 by @will-bogusz)
  • Fixed omp -p and other short-lived auth-broker clients missing from omp usage clients: usage still waiting for the 10-second report batch is now sent to the broker before the process exits (#14899 by @will-bogusz)
  • Fixed Cursor web fetches that were cut off by a dropped connection disappearing from resumed and rebuilt sessions; they now show as interrupted (#14819 by @jchanghong023)
  • Anthropic hosted web search can honor custom providers' OAuth-style request shaping and configured headers consistently with conversations (#14919 by @farnoy)

@oh-my-pi/pi-catalog

Breaking Changes
  • googleAntigravityModelManagerOptions takes resolveAccounts instead of oauthToken, and fetchAntigravityDiscoveryModels returns a roster or credential-rejection result instead of a bare list (#14924).
Fixed
  • Fixed Claude Haiku 5.5 on Cursor showing as unpriced; it now uses Cursor's $0.10/$0.50 rate card and 5x long-context tier above 100K input tokens (#14890 by @eggpeat).
  • Fixed Claude Haiku 5.5 on GitHub Copilot pricing cache reads and writes at $0 on both the standard and -1m long-context rows, and the -1m row billing the 5x long-context band a second time above 100K input tokens (#14890 by @eggpeat).

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

Added
  • Added per-model auto-compaction points: the /models preview shows where each model compacts, and in the Roles view k (or the Compaction limit button) sets it for the selected role's or fallback's model (90000, 90k, 1M, 80%; empty resets). Also configurable as compaction.modelThresholds with provider/model-id or provider/* keys (#14952 by @H4vC)
Fixed
  • Fixed omp usage reporting an account exactly at its reserve (e.g. 30% left with a 30% reserve) as eligible instead of inside reserve (#14765 by @will-bogusz)
  • Fixed the todo reminder pushing the agent to keep working after it offered options and asked the user to choose (#14800 by @mrmans0n)
  • Fixed the todo reminder telling the model to keep working right after it asked the user a bolded or italicised question (#12051, #14353 by @F0Rextasy)
  • Fixed short model selectors such as p/a:max or a:max dropping their explicit thinking level when a role was reassigned or used for image questions; a model whose ID literally ends in :max or :auto is still treated as that model (#14554 by @xiangnan0811)
  • Fixed starting a subagent switching the parent session's later language servers from shared to private (#14628 by @jorgoose)
  • Fixed a finishing subagent cancelling local tiny-model requests (titles, task labels, judgments) still running for the parent or other subagents (#14629 by @jorgoose)
  • Fixed rust-analyzer on Windows not running through a running lspmux server, as it already did on Linux and macOS (#14630 by @jorgoose)
  • Fixed a malformed or unreadable project plugin-overrides.json being ignored silently, which re-enabled project-disabled plugins without a trace; omp now logs a warning naming the file (#14518, #14573 by @oleg494)
  • Fixed Claude Opus 5.5 and Sonnet 5.5 disappearing with mixed-access Google Antigravity accounts; models now route to accounts that serve them, and revoked accounts no longer block catalog refresh (#14924).
  • Fixed clipboard-pasted image chips opening a nonexistent file instead of the image, including after /move (#14927).
  • Fixed clipboard-pasted image chips opening the auto-resized copy sent to the model instead of the image as pasted (#14929)
  • Fixed omp token <provider> --account N --force-refresh printing the stored token unchanged while it was still valid; it now re-mints that account. Security scans pinned to one account, including Codex Security cloud requests, refresh it after a 401 and may reuse a still-usable token minted in the previous five minutes, as omp auth-broker serve now also may for its clients' 401 recovery (#14752 by @will-bogusz)
  • Fixed revived subagents moving to the parent's automatically chosen account and re-writing their whole prompt cache instead of staying on the account that served their earlier turns; a parent's explicit /session pin still moves them (#14749 by @will-bogusz)
  • Fixed a fallback chain switching back to a usage-limited primary model every 30 minutes, failing a request each time, when the provider's usage report showed a later reset; the session now stays on the fallback until that reset (#14757

…