@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)
@oh-my-pi/collab-web
Changed
- Ask result cards render saved notes beneath their matching selected answers (#18779 by @Shadorain)
@oh-my-pi/pi-natives
Changed
- macOS keys, typing and held keys for a window now go to a sheet attached to it that holds keyboard focus, such as an Open sheet or Finder's Go to Folder, as macOS sends them, instead of throwing
InvalidTargetand naming the sheet; so do keys for a control of that sheet, which reports the window under it as its own (#18675 by @will-bogusz) - Computer input no longer fails with
InputBusythe moment another omp session's call holds the desktop, such as anapps.openwaiting for its window: it waits up to 5 seconds for that call to finish, on macOS, Linux and Windows (#18746 by @will-bogusz)
Fixed
- Fixed a crash when parsing Markdown with very deeply nested lists or block quotes, such as a line of several hundred
-markers, which made editing such files kill the process (#18707) - Fixed the shell's
gitbuiltin on Windows withbash.gitGuard(or smart git) on failing every allowed command with exit 127 (…\Git\cmd\git: No such file or directory); it now runsgit.exe(#18722) - Computer element searches accept native role names, spaced role names such as
text field, andradiobuttonfor macOSradiocontrols without changing printed accessibility roles (#18745 by @will-bogusz) - Fixed macOS background input and takeover refusing every call, with nothing sent, while Finder is in front with its focus on the desktop and a Finder window open; Finder gets its front status back with its focus left on the desktop (#18680 by @will-bogusz)
@oh-my-pi/pi-tui
Changed
- Ask forms support notes on options:
non radio/checkbox rows andAlt+non select menus (app.ask.note), with selected notes shown alongside submitted answers and notes on unchosen options marked as drafts (#18779 by @Shadorain)
Fixed
- Ask form textareas edited from Tern now restart the inactivity timeout instead of submitting mid-edit
- Fixed a picture in an
askform staying painted on screen after the form closed (#18693 by @jaredlyon) - Fixed terminal Device Attributes replies (such as
^[[?64;1;2;4;6;17;18;21;22c) leaking into the shell prompt on exit (#18662 by @asuffield)
@oh-my-pi/pi-utils
Removed
- Removed
getConfigAgentDirName(); usegetAgentDir(), which also honorsPI_CODING_AGENT_DIR(#18684)
What's Changed
- fix(natives): send macOS keys for a window to the sheet focused on it by @will-bogusz in #18675
- fix(bash): release session-owned namespaced shells by @eggpeat in #18717
- fix(ai,coding-agent): deliver assistant_message rewrites through Codex native replay by @holny in #18720
- fix(pi-shell): launched git.exe from the guarded git builtin on windows by @roboomp in #18726
- fix(catalog): stop NanoGPT :thinking siblings from flipping reasoning models by @yuzu-octopus in #18728
- fix(coding-agent): resolve bundled Pi packages from the installed dependency graph by @yuzu-octopus in #18733
- fix(catalog): collapse Gemini 4 Carbon thinking tiers and add pricing by @eggpeat in #18734
- fix(browser): point calls on a tab that is not open at browser.open() by @will-bogusz in #18739
- fix(coding-agent): serve non-chat models and full responses from auth-gateway stdio by @andyhite in #18740
- fix(edit): reveal every file's unseen lines in one seen-line rejection by @MaisonnatM in #18742
- fix(coding-agent): prefer exact app names when selecting windows by @will-bogusz in #18744
- fix(natives): accept aliases in computer role searches by @will-bogusz in #18745
- fix(natives): wait for another session's input lock before failing InputBusy by @will-bogusz in #18746
- fix(browser): have agents report a step the page cannot do instead of faking it by @will-bogusz in #18761
- docs(lsp): corrected isLinter type-intelligence routing docs by @roboomp in #18765
- fix(catalog): show Factory Droid's Gemini 4 Argon credit promotion by @will-bogusz in #18767
- fix(catalog): show list prices for Factory Droid Fable 5.1, GLM 5.2 Fast and Muse Spark Open by @will-bogusz in #18768
- fix(coding-agent): keep a child omp's browser tabs out of its parent's Tern pane and cmux workspace by @will-bogusz in #18773
- fix(ai,agent): add logger.warn to empty catch blocks by @yuzu-octopus in #18654
- fix(browser-relay): keep a shared child frame attached when one connection turns auto-attach off by @will-bogusz in #18657
- fix(coding-agent): preserve role selectors across locales and document waits by @will-bogusz in #18658
- fix(tui): gate exit DA1 drain sentinel on active TSP session by @asuffield in #18662
- fix(ai): retry every concurrent request rejected as too old by @yuzu-octopus in #18667
- fix(coding-agent): wait for aborted bash cleanup before exit by @roboomp in #18671
- fix(ai): preserve tool strict mode at the Chat Completions gateway by @0xeb in #18672
- fix(coding-agent): preserve mcp selection across refreshes by @roboomp in #18679
- fix(natives): restore Finder with its desktop focus after macOS background input by @will-bogusz in #18680
- fix(cli): a bare --restore keeps the session --session already named by @AdamDureyAtWillship in #18685
- fix(coding-agent): resolved user config dirs from PI_CODING_AGENT_DIR by @roboomp in #18687
- fix(tui): delete ask form pictures when the form closes by @jaredlyon in #18693
- perf(tui): reuse TranscriptContainer live-entry wrappers across per-frame readers by @yuzu-octopus in #18705
- fix(natives): bumped tree-sitter-md to 0.5.4 to stop deep-nesting crash by @roboomp in #18710
- fix(grep): split mixed internal URL and local path lists by @eggpeat in #18714
- fix(task): preserve spaces when collecting nested patch paths by @eggpeat in #18715
- fix(ask): restore per-option notes in HTML form dialogs by @Shadorain in #18779
- fix(session): keep recovered runs reported as running after a late settle by @H4vC in #18790
- fix(ai): heal Claude blocks when the account has no running 5-hour window by @baekjosh in #18801
- feat(coding-agent): add publish tool for hosted pages and claude.ai artifacts by @H4vC in #18806
New Contributors
- @0xeb made their first contribution in #18672
- @AdamDureyAtWillship made their first contribution in #18685
- @baekjosh made their first contribution in #18801
Full Changelog: v18.18.7...v18.18.8