@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
browsertool's Tern backend being refused by any Tern newer than the protocol omp was built against; it now speaks Tern's protobuf session protocol (level 12), which Tern serves across builds, and a Tern from before it reports as unavailable (update Tern) so the Chromium fallback takes over. - Fixed reloading a legacy Pi extension on Windows serving the previously loaded source instead of the edited files
- Fixed Redis-, SQL-, and in-memory session storage listing no sessions on Windows: directory listing now matches
\-separated session paths, so/resumeand the session picker find them - Fixed an MCP stdio server whose configured command path does not exist failing on Windows with "MCP subprocess closed stdout before responding" instead of a not-found error naming the path
- Fixed
omp commitnever closing its credential store, leavingagent.dbopen (and a broker-backed store's sync loop running) after the commit finished - Fixed every new session (including subagents) staying in memory for 5 seconds after creation, held by an uncancelled workspace-scan deadline timer; a parked or disposed subagent's session and settings are now released immediately
- Fixed autoresearch
run_experimenton Windows runningautoresearch.shthrough the WSLbash.exelauncher found on PATH (a separate Linux environment that fails when WSL is unavailable); it now uses Git Bash or the configuredshellPath - Fixed sessions started in a temp-directory cwd on Windows landing under a home-relative
-AppData-Local-Temp-…session directory instead of the-tmp-…one; existing directories under the old name are migrated forward - Fixed the
writetool claiming "Made executable via chmod +x" for shebang files on Windows, where chmod keeps no execute bits - Fixed
readlinkin the bash tool printing a provider-backed path (e.g.local://file) with a\\?\prefix on Windows - Fixed the daemon broker on Windows dying with the omp process that started it, which stopped the shared browser relay (and every other broker daemon) while other omp sessions were still using it
- Fixed the
browsertool's Tern backend being refused by any Tern newer than the protocol omp was built against; it now speaks Tern's JSON script protocol, which no Tern build ties it to, and a Tern from before it reports as unavailable (update Tern) so the Chromium fallback takes over.
@oh-my-pi/pi-natives
Fixed
- Fixed Ctrl+V on Windows sometimes pasting text with a few characters replaced by unrelated glyphs (for example
https://turning into՞ttp缀難//); clipboard reads and writes no longer run at the same time (#14144 by @H4vC)
@oh-my-pi/pi-tui
Breaking Changes
WelcomeComponentno longer takes a model or provider: its constructor is(version), andsetModel(),setRecentSessions(),setLspServers(),handleNativeEvent(),RecentSession,LspServerInfo,WELCOME_SESSION_SLOTSandWELCOME_LSP_SLOTSare gone;ComposerWelcomeUpdatedropsmodelName/providerName/recentSessions/lspServers, andComposerCachedropswriteWelcome(),writeRecentSessions(),writeLspServers(),ComposerWelcomeCacheand thewelcome/recentSessions/lspServersfields ofComposerStartupCache.renderWelcomeTip()returns its lines without an indent,Tip:and the body wrapped together, for the caller to place.
Added
- Added
ReportPanel, a read-only command report: a/btw-style titled box with an Esc hint in text mode (above the editor, or as a full-screen page whose body scrolls on the arrow/page/Home/End keys and the wheel), and natively a/usage-style sheet whose body the terminal scrolls once it is long, with a Close button (#14136 by @H4vC). - Added
contextUsageHead(), the/contexttitle naming the model and its window (#14136 by @H4vC). - Added
Composer.rowsBelow(), the rows the chrome under a below-transcript root took in the last frame (#14136 by @H4vC). - Added
Composer.pinInputToBottom(), which keeps the input on the bottom row after chrome above the editor closes when rows it displaced went to scrollback (#14136 by @H4vC). - Added a repeatable native
reveal({ at, n }): a described node scrolls into view again whenever itsnchanges, without being re-added.
Changed
ContextUsageViewis now a bare report body without its own title, rules or card;setBreakdown()was removed (#14136 by @H4vC).- The terminal welcome banner is the gradient logo beside the
ompwordmark with the version under it and the tip, centered in the terminal; the logo stands alone when the lockup does not fit, and the tip drops below 50 columns. It no longer greets with "Welcome back!", natively either.
Fixed
- Fixed tool previews on Windows showing a working directory on another drive as a raw absolute path instead of its home-shortened
~/…form. - Fixed pasted drive-less
file:///…URLs (forwarded from a macOS pasteboard or remote session) staying undecoded on Windows instead of loading as image paths. - Fixed an output artifact whose file cannot be opened (e.g. a directory in the way) being reported on Windows as a write failure and retried later, instead of a terminal open failure.
- Fixed plan review's Contents in Tern: clicking an entry, or moving through them with the arrow keys, now scrolls the plan to that section.
Removed
- Removed
JobsPanel, the/jobstranscript block;/jobsnow opensJobsSheetnatively (#14138 by @H4vC).
@oh-my-pi/pi-utils
Added
- Added the public
getSessionOwnersDir()utility, which returns the profile-independent~/.omp/run/session-ownersdirectory that names session ownership leases (#14095 by @andrebrait)
Fixed
- Fixed SQLite error messages doubling every backslash in Windows database paths
- Fixed corrupt-database recovery failing with
EBUSYon Windows when several in-process openers of the same store failed at once
What's Changed
- feat(coding-agent): /dump all writes a zip with each subagent transcript by @H4vC in #13908
- fix(session): retry the same model once after a mid-stream socket drop by @abilliontokens in #13747
- feat(coding-agent): show command reports outside the transcript by @H4vC in #14136
- fix(session): key the ownership lease by session id by @andrebrait in #14095
- feat(coding-agent): show /jobs, /mcp and /ssh reports outside the transcript by @H4vC in #14138
- test(coding-agent): fix fallback-window regression after same-model socket retry by @andrebrait in #14140
- feat(coding-agent): add /effort command with a level picker (builds on #12222) by @andrebrait in #14113
- fix(task): reject suffixed default/inherit selectors and stop model substitution by @andrebrait in #13669
- fix(natives): serialized clipboard access so Ctrl+V stops corrupting text on Windows by @H4vC in #14144
Full Changelog: v18.4.12...v18.5.0