Release notes
Oh My Pi v18.4.9
@oh-my-pi/pi-ai
Fixed
- Fixed rejected HTTP 400 requests from consuming unbounded disk space by automatically cleaning up old request logs and enforcing a size limit.
- Fixed unnecessary credential and session updates that could trigger needless authentication reloads in other running processes.
- Fixed context-overflow recovery for Strata requests that exceed the model context limit but return no usage information.
@oh-my-pi/pi-catalog
Fixed
- Fixed model catalog caching so unchanged catalogs refresh without unnecessary rewrites, and offline snapshots for endpoint-less models (such as Azure models) are now handled correctly across startups.
@oh-my-pi/pi-coding-agent
Added
- Added opt-in stale-session garbage collection with
omp gc --staleorgc.stale, removing orphaned session markers and terminal breadcrumbs and expiring old debug reports and collaboration replicas according to configurable retention limits. - Added RPC controls to cancel or steer individual foreground and background subagents without aborting the session.
- Added RPC word-completion commands so web and IDE hosts can provide the same ghost-text completion available in the terminal editor.
- Added an opt-in RPC ask-dialog mode that lets hosts render all questions together with checkbox or radio-button controls and submit their answers in one response.
- Added SDK notifications when a session moves to a new persistence file, including the previous and new paths.
- Added SDK APIs to inspect and cancel background jobs, including their command, working directory, process IDs, exit status, and captured output.
Changed
- Improved the
omp predictcomparison view with an interactive native interface, table rows, action controls, and clearer status information. - Improved MCP authorization prompts with clickable links, native copy/open context menus, and a clearer URL layout.
- RPC hosts are now notified when omp cancels an expired
select,confirm,input, oraskdialog, allowing stale UI prompts to be closed. - Limited saved bash, Python, and JavaScript evaluation output artifacts to 16 MB by default while preserving both the beginning and latest output; configure the limit with
tools.artifactMaxBytes, or set it to0for unlimited output.
Fixed
- Fixed
/wton filesystems without copy-on-write cloning, including NTFS, so unchanged files are not incorrectly marked modified and staged edits, additions, and deletions retain the correct contents. - Fixed Windows Ctrl+V taking about a second to paste by avoiding unnecessary PowerShell clipboard checks.
- Fixed
local://paths being misinterpreted as local filesystem paths by theread,write, and search tools. - Fixed
readhandling of semicolon-separated URLs, local paths, and line selectors so each entry is processed independently. - Fixed session persistence conflicts between multiple omp processes, preventing lost or interleaved turns and continuing in a new session file when necessary.
- Fixed session image handling to avoid unnecessary rewrites, preserve images after interrupted writes, and prevent garbage collection from removing images that are referenced again.
- Reduced unnecessary disk writes and improved persistence efficiency across sessions, model data, configuration, and background jobs.
- Fixed the native composer showing the main session's effort level instead of the selected subagent's level.
- Fixed the
omp predictcomparison view and MCP authorization prompt rendering with their full native interfaces, including clickable link actions.
@oh-my-pi/pi-natives
Added
- Added
readTextFromClipboard()for reading plain text from the system clipboard without starting a subprocess. - Added
Shell.pids()to retrieve the IDs of still-running processes spawned by an in-flight shell command.
@oh-my-pi/pi-tui
Added
- Exported
wordCompletionQuery()so hosts outside the editor can apply the same prose eligibility rules used by ghost-text word completion. - Added a full-featured Background jobs view with selectable jobs, live status and elapsed time, working directory, process IDs, exit code, command, tailing output, and cancellation for running jobs.
Changed
OutputSinknow limits artifact files to 16 MiB by default while preserving the beginning and end of oversized output and marking the omitted bytes. SetartifactMaxBytes: 0to keep artifacts unbounded;dump()reports omitted bytes and full-output references identify sampled artifacts.
Fixed
- Reduced unnecessary composer startup-cache writes and ensured the cache database is released when it closes on Windows.
- Fixed Shift+Enter and Ctrl+Enter prompt behavior in Windows Terminal 1.24 and earlier; Shift+Enter now inserts a newline and Ctrl+Enter sends a follow-up, matching other platforms.
- Improved the Tern native terminal experience across background jobs, settings, debugging, logs, extension management, interactive shell, and provider streams: views remain usable and navigable, preserve output and selection behavior, support keyboard scrolling, and keep key actions accessible.
- Fixed multi-line labels in Background jobs and multi-line titles in native-terminal prompts so their formatting remains readable.
@oh-my-pi/pi-utils
Added
- Added
tryAcquireFileLock, a non-blocking file-lock helper that returnsnullwhen the lock is already held. - Added an
unrefoption toAsyncDrain, allowing applications to use long batch windows without keeping the process alive.
Changed
- Improved logging efficiency and configurability by batching routine file writes, flushing urgent records promptly, adding on-demand
logger.flush()support, and allowing file log levels to be limited withOMP_LOG_LEVEL. Log files are created only when needed, and obsolete log and audit files are cleaned up automatically.
@oh-my-pi/pi-wire
Added
- Added terminal scrolling support through the TSP scroll operation, allowing keyboard scrolling of the terminal scroller when supported.
- Added a terminal focus event for requesting keyboard focus on editors and inputs, or returning focus to the preferences sheet.
What's Changed
- feat(rpc): add cancel_subagent command by @andrebrait in https://github.com/can1357/oh-my-pi/pull/13481
- feat(rpc): add steer_subagent command by @andrebrait in https://github.com/can1357/oh-my-pi/pull/13482
- feat(rpc): add predict_word commands for host-rendered composers by @andrebrait in https://github.com/can1357/oh-my-pi/pull/13517
- feat(rpc): added opt-in ask dialog for RPC hosts by @andrebrait in https://github.com/can1357/oh-my-pi/pull/13551
- ctrl / shift + enter fixes for windows by @H4vC in https://github.com/can1357/oh-my-pi/pull/13975
- fix(vcs): keep staged state and clean stat cache when /wt falls back to checkout by @H4vC in https://github.com/can1357/oh-my-pi/pull/13987
- fix(coding-agent): route cwd-prefixed local:// paths to session-local storage by @radkawar in https://github.com/can1357/oh-my-pi/pull/13977
- fix(coding-agent): read each entry of a ; list that mixes URLs and local paths by @radkawar in https://github.com/can1357/oh-my-pi/pull/13979
- fix(coding-agent): read the Windows clipboard natively on Ctrl+V by @H4vC in https://github.com/can1357/oh-my-pi/pull/13991
- fix(session): stop the contested-rewrite loop, skip stored blobs, warn on shared sessions by @radkawar in https://github.com/can1357/oh-my-pi/pull/13989
…