Release notes
Oh My Pi v18.5.0
@oh-my-pi/pi-ai
Fixed
- Fixed AWS
credential_processon Windows stripping backslashes from unquoted paths such asC:\Users\me\helper.exe; commands are now split with Windows command-line rules there, matching the AWS CLI.
@oh-my-pi/pi-catalog
Added
- Added
closeModelCache()(@oh-my-pi/pi-catalog/model-cache) to release the shared defaultmodels.dbhandle so an agent directory can be deleted on Windows; the next cache access reopens it
@oh-my-pi/pi-coding-agent
Breaking Changes
task.completionProbeMsis replaced by the on/off settingtask.completionProbe; an existingtask.completionProbeMsmigrates automatically (0→ off, any period → on).SessionStorage.claimSessionFile(sessionPath)is replaced byclaimSession(sessionId, sessionPath)(which also refuses when the path now holds a different session), andsessionOwnerLeasePath()bytryAcquireSessionLease(sessionId): custom storage backends that implementedclaimSessionFilemust implementclaimSessionto keep cross-process ownership (#14095 by @andrebrait)
Added
/dump allwrites a zip to the temp directory with the main transcript, the LLM request JSON, and one file per subagent transcript (nested subagents included, killed ones marked aborted); the TUI copies the archive path to the clipboard. Plain/dumpis unchanged (#13908 by @H4vC)- Added
/effort [level]to set the thinking level without switching models: bare/effortopens a picker, and completions offer only the current model's levels within the session effort ceiling. Its description includes thinking and intelligence so either term finds it;Shift+Tabstill cycles levels (#12222 by @Xytronix, #14113 by @andrebrait). - Added a per-call
modelselector to task items, evalagent(), andworkpool(): aprovider/model[:level]pattern or role alias, or an ordered array of them, that takes precedence overtask.agentModelOverridesand the agent definition. Selection is an ordered preference — requested candidates are tried before configured fallbacks — and the spawn fails at preflight instead of silently routing elsewhere when the selector is the ambiguous literaldefault/inheritwith or without a:levelsuffix (use@default), is blank or comma-only, carries an invalid thinking suffix, matches no available model, or sits on the batch container instead of atasks[]item. A requested model without working credentials fails the spawn instead of running on the parent's model, and the error tells the caller to report the unavailable model rather than substitute another. A pool applies its selector to each worker's first turn and reuses that worker's session afterwards (#12229 by @Xytronix, #13669 by @andrebrait).
Changed
- Subagent completion estimates are asked after 2, 5, 10 and 30 more minutes, then hourly, instead of at a fixed interval, and only for subagents the main agent spawns in an interactive session; print (
-p), RPC, ACP and SDK runs and nested subagents never request them. /changelog,/context,/tools,/hotkeys,/advisor status,/memory view|queue|stats|diagnostics, and the mental-model views no longer add their report to the transcript. In text mode a report that fits shows above the editor like/btwand Esc dismisses it; a taller one (such as/changelog full) opens as a full-screen page on the alternate screen, scrolled with the arrow/page/Home/End keys and the wheel, and Esc returns to the screen exactly as it was. In the native terminal it opens as a sheet like/usagewhose long reports scroll, closed with Esc or Close (#14136 by @H4vC)./jobs,/mcp help|list|resources|prompts|notificationsand/ssh help|listno longer add their report to the transcript either: they show the same way, and natively/jobsopens the live background-jobs sheet the jobs pill opens (/jobs fullkeeps the full command lines in a report sheet) (#14138 by @H4vC).- The welcome banner (in the terminal and as Tern's native card) is now the
omplogo and wordmark with the version and a tip. It no longer shows the "Welcome back!" greeting, the model (the status line does), LSP servers or recent sessions (/resume), and the#/!$prompt prefixes moved into the rotating tips.
Fixed
- Auto-retry now retries the same model once after a mid-stream socket drop that had already streamed reasoning or tool calls, instead of switching to the fallback chain on the first attempt; the fallback chain is consulted only if that retry also fails. This applies to every provider, since a dropped socket says nothing about the model (#13747 by @abilliontokens)
- Fixed native git patch apply, checkout, stash, cherry-pick, and worktree removal on Windows ignoring
core.autocrlf: LF patches failed to apply to CRLF checkouts and clean CRLF files were treated as modified - Fixed the
commandimage-URL uploader stripping backslashes from Windows paths in its command template (C:\tools\upload.exe {file}ranC:toolsupload.exe) - Fixed reading a SQLite database (local or by URL) and closing prompt history leaving the database file locked on Windows
- Fixed RPC mode on Windows freezing when the client stopped reading stdout: the worker blocked on the full stdout pipe and stopped reading stdin, so a client writing a batch of commands before reading replies deadlocked. Output now goes through a non-blocking stdout stream that spools to disk under backpressure, as on Linux and macOS
- Fixed HTML export hanging when a session's subagent directory held a transcript named
..jsonl; discovery now only descends into real child directories (#13908 by @H4vC) - Fixed resuming a session through a symlink or hard link to a file another omp process is writing: the resumed session no longer mixes its turns into that file and continues in a new file next to it (#14095 by @andrebrait)
- Fixed moving a session to another directory replacing a session file there that another omp process is writing, or moving a session another process is writing; the move now stops with an error and leaves both files untouched (#14095 by @andrebrait)
- Preserve the parent’s upstream route and live reasoning effort for inherited task/eval/workpool selectors and restored workers; caller
effort, a requested@default:<level>, and the agent definition's ownthinking-levelstill take precedence over the inherited effort (#12229 by @Xytronix, #13669 by @andrebrait). - Fixed the
browser
…