Release notes
Oh My Pi v18.18.9
@oh-my-pi/pi-agent-core
Added
- Tool calls get
ctx.toolCall.earlierEffectsSettled, which settles once the earlier calls of their message that run beside them and may write files (their approval, asked with their arguments, is notread) have finished; speculative results wait for those effects before validation, and cancellation while waiting prevents their commit (#16274 by @will-bogusz)
@oh-my-pi/pi-ai
Added
- Added
SOFYA_API_KEYas the env key for thesofyaprovider (#18185 by @yusufgurdogan)
Fixed
- Devin requests no longer send
temperature: 0: the catalog'stemperature-floorraises it to0.0001, so session titles and Mnemopi memory extraction work on Devin instead of failing with Cascade's opaqueinvalid_argumentand silently falling back to another model (#18423) - Auth-gateway
/v1/messagesnow answers400 invalid_request_errorforoutput_config.format(and the pre-GAoutput_format) instead of returning 200 with output the schema never constrained, so structured-output clients fall back to prompt-side schemas (#18842) - Auth-gateway requests denied only the requested model (Codex ChatGPT account, Cursor plan) now switch to another account and keep the denied one usable for other models, instead of marking a working credential suspect; gateway rotation now follows the same rules as local sessions, including waiting out a sibling's short usage block
@oh-my-pi/pi-catalog
Added
- Added the
web/sofyasearch model (#18185 by @yusufgurdogan) - Added the
temperature-floorcompat axis, assigned0.0001on Devin so a request that pinstemperature: 0reaches Cascade as a value it accepts (#18423) - Added the keyless
web/hackernewssearch engine model for Hacker News stories and comments
Fixed
- Devin requests now identify as Devin CLI 3000.12.43, the current stable release, instead of 3000.11.205 (#18766 by @will-bogusz)
- Fixed Gemini 4 Argon and Carbon on Command Code showing no reasoning levels; both now offer low, medium, and high
- Fixed OpenCode Zen Gemini 4 Carbon requests going to the chat-completions endpoint instead of the native Gemini endpoint Zen serves it on
Removed
- Removed Devin's retired SWE-1.6 Fast from the models omp lists before Devin's live model list loads (first start, or when Devin is unreachable) (#18795 by @will-bogusz)
@oh-my-pi/pi-coding-agent
Added
- Added Sofya as a web search engine (
web/sofya), usingSOFYA_API_KEYor a storedsofyacredential (#18185 by @yusufgurdogan) - Documented autoresearch mode in docs/autoresearch.md: activation and its git gates, the three stop conditions, the per-segment iteration cap that defaults to none, the harness
METRIC/ASIcontract, and the on-disk store thatOMP_AUTORESEARCH_DB_DIRrelocates (#18655 by @sjawhar) - Extensions can import the form theme, the native span helpers (
styledSpans,compactText,rowsTextand the rest of the ANSI/span conversions), thexd://URL helpers (parseXdUrland friends) and thecfgExtensionTranscriptPresenterssetting handle from@oh-my-pi/pi-coding-agentinstead of internal module paths, which stop the extension from loading when a file moves (#18849 by @materemias) /contextshows loaded instruction files and skills in their own categories; System Prompt marks where each one sits without counting it twice, and notes when an extension or SDK callback changed the prompt after it was built (#17971 by @c-w-z)- Added Hacker News search (
web/hackernews):web_searchqueries scoped tosite:news.ycombinator.comnow search HN stories and comments through the keyless HN Search API before the configured engines
Changed
- A role edit in another omp instance no longer rewrites the
taskandevaltool descriptions of every running session, which was invalidating the Anthropic prompt cache from the tool definitions onward and dropping signed thinking blocks on prefix-bound models; the per-call model advertisement is now frozen into the base prompt surface and changes only when that surface rebuilds (#18716, #18732 by @yuzu-octopus) - Agent-to-agent messages now always reach the recipient as user turns: one that ends a
waitarrives right after it instead of inside thewaittool result, and none is sent with developer or system authority - Launch services now persist for non‑interactive sessions
- The shell's built-in
jqnow behaves like jq 1.8.2 instead of jaq: the same output (number formatting, colors,-S,--indent,--seq,--stream), error messages and exit statuses, jq's full option set (--versionreportsjq-1.8.2), and its grammar and builtins (?//,$__loc__, modules,getpath/setpathcreating missing paths,|=deletions, Oniguruma regexes, dates); it passes jq 1.8.2's own test suite
Fixed
- Nix builds with
withAppleFm = falseno longer compile the Apple Foundation Models bridge with the host's Xcode (#18911) - Apple Silicon Nix builds include Apple Foundation Models support instead of silently building without it (#16584 by @honsunrise)
- On Windows, the bash tool runs external commands when omp itself runs in an AppContainer sandbox, instead of failing every one with
Permission denied(exit 126) (#18800 by @devjay4561) - Explicit Bash prompt rules remain enforced in yolo mode when a command also matches a critical pattern (#18788 by @jasonharrison).
- Fixed job widgets and captions failing outright when the
widgetmodel errors: they now try the role's next model (retry.fallbackChains.widget, else the built-insmoldefaults) and fail only once every candidate has (#18793) - Failed job-widget, job-caption, cache-warm, composer-prediction, and subagent completion-probe calls now keep the provider's error message in their session usage records (#18792)
/changelog,/changelog full, and/changelog last Nnow list releases newest-first, matchingCHANGELOG.mdand the startup release notes (#18809)- Fixed a
readplaced after abash
…