Release notes
Oh My Pi v18.18.8
@oh-my-pi/pi-ai
Fixed
- Fixed concurrent OAuth requests rejected as
claude_code_version_too_oldfailing instead of retrying with the required version (#18651) - Chat Completions gateway requests preserve explicit tool strict-mode choices, so Codex tools can omit optional arguments when callers set
strict: false(#18672 by @0xeb).
@oh-my-pi/pi-catalog
Added
- Added Muse Ember (
muse-ember-1.0) on Meta Model API and Muse Code with theminimal–maxreasoning effort ladder and its >200K long-context pricing - Added Gemini 4 Carbon pricing on the Gemini API, Vertex AI, Google Antigravity, and Cursor ($2 input / $0.10 cached / $10 output per 1M tokens through 2026-11-30, then $4 / $0.20 / $20), instead of showing $0 (#18734 by @eggpeat)
Fixed
- Fixed regenerating the catalog marking 18 reasoning models as non-reasoning when NanoGPT's
<id>:thinkingsibling row had larger limits (#18673, #18728)
@oh-my-pi/pi-coding-agent
Changed
curl -fsSL https://omp.sh/install | shandinstall.ps1now install the standalone binary by default, even when bun is present, so installs get delta updates; pass--source/-Sourcefor a bun package install- Ask forms can attach notes to selected options; those notes accompany the answers separately from submitted form values (#18779 by @Shadorain)
Fixed
- Claude auto-redeem now spends a full saved reset on an account blocked by its weekly limit when the reset also clears the Fable cap; such resets were treated as Fable-only and skipped while Fable usage had room (#18801)
- Fixed agents showing as idle in the Agent Hub while still running after a failed streaming edit preview (
edit.streamingAbort) auto-recovered the turn (#18790 by @H4vC) - A browser call on a tab that is not open now says to open it with
await browser.open({ name })(Python:await browser.open(name=…)) and the url and app it was opened with, instead of pointing at the removedaction:"open"(#18739 by @will-bogusz) - Fixed
computer.window({ app })andcomputer.windows({ app })matching similarly named apps when the exact app name has an open window, such as Google Chrome alongside Google Chrome for Testing (#18744 by @will-bogusz) - In Tern, browser
role/selectors keep input roles and names under Turkish and Azeri locales (#18658 by @will-bogusz) - Chrome
role/RootWebAreawaits withvisiblereturn the document instead of failing, andhiddenwaits keep waiting (#18658 by @will-bogusz) - An
omp -por other omp that your session's bash tool or eval cell starts inside Tern or cmux no longer picks Tern or cmux from the pane it inherited, so its browser tabs stop floating over your pane (#18773 by @will-bogusz) - Browser relay connections sharing a tab no longer lose cross-site frames when another connection disables auto-attachment on its page; automatic children detach locally when their last armed page leaves, while explicitly attached frame subtrees remain usable after opting out (#18657 by @will-bogusz)
- Browser agents now say when a step can't be done through the page, instead of patching the page with scripts and reporting the step as done (#18761 by @will-bogusz)
- An extension's
assistant_messagerewrite now reaches the next Codex Responses request: same-model native replay used to resend the captured original text while the transcript showed the rewritten one (#18312) - MCP reconnects and tool-list refreshes now keep extension-deactivated tools inactive while enabling newly discovered tools (#18678).
- Exiting after aborting a
bashcommand now waits for its TERM-resistant foreground processes to be killed (#18669). - An
edittouching several files that anchors lines no read displayed now reveals those lines for every file in one rejection, so the identical resend applies instead of being rejected again for the next file (#18742 by @MaisonnatM) omp auth-gateway stdionow serves judge, image, speech, embedding, rerank and video models:/v1/modelslists them, and/v1/systemoneanswerstypesafe/jev-*or@judgeinstead of 404, or 422 from a chat model (#18740 by @andyhite)omp auth-gateway stdiono longer cuts its last responses off at 128 KiB when its input ends before a slow reader has read them (#18740 by @andyhite)omp --session <id> --restorerestores that session, asomp --restore --session <id>does, instead of opening the session picker: a bare--restorekeeps a session--sessionor--resumealready named (#18685 by @AdamDureyAtWillship)- The legacy Pi virtual module now builds in an npm install that keeps the bundled Pi packages nested: it is anchored to the installed package, so its imports resolve through that package's own dependency graph (#15208, #18733 by @yuzu-octopus)
- User-level agents, commands, and other
~/.omp/agentconfig (including agents saved from the agents hub) now followPI_CODING_AGENT_DIR, matching whereomp agents unpackwrites (#18684) - Fixed
grepandglobtreating a;list that starts with an internal URL and includes a local path, such asartifact://1;notes.txt, as one address; each listed target is now searched (#18714 by @eggpeat) - Isolated tasks that edit a file whose name contains spaces now commit that file, including in a nested git repository, instead of leaving it unstaged or committing a different file that shares part of the name (#18715 by @eggpeat)
- A disposed or switched session now releases every persistent shell it owns, including the ones a surface keeps under a name of its own (
/loopconditions), instead of holding one native shell per surface for the life of the process (#18717 by @eggpeat)
…