Release notes
Oh My Pi v18.18.2
@oh-my-pi/pi-agent-core
Added
- Added
canReplayRemoteCompactionFrom()to determine whether a model can replay provider-native compaction produced by another model.
Fixed
- Fixed GenAI message-content capture configured in omp's own
.envfiles so it continues to apply when those values are no longer exposed through the process environment. - Fixed compaction preparation for remote OpenAI compaction that the active model cannot replay, ensuring the content is expanded and remains available for compaction.
- Fixed generic remote compaction requests to
/chat/completionsso gateway sessions retain the correct per-request model attribution.
@oh-my-pi/pi-ai
Added
- Added edit execution context support for Cursor handlers, allowing integrations to identify frames that materialize native file edits and detect when server-side edits have settled.
- Exported Responses replay utilities so callers can determine which turns are sent as native payload items when estimating or trimming context.
Fixed
- Fixed rotated credential pools reporting a stale sibling credential's authentication error instead of the exhausted credential's usage-limit status and reset time.
- Fixed OpenAI image edits with multiple input images failing because image parameters were duplicated.
- Fixed Cursor-provider reads of xd:// devices failing due to incorrect device URL handling.
- Fixed Anthropic sessions getting stuck after refused turns containing thinking or redacted-thinking blocks when followed by a steer, reminder, or new prompt.
- Fixed Codex Responses requests losing tool namespaces and developer-provided additional tools when replayed through the authentication gateway.
- Fixed Gemini malformed responses being treated as unhandled stop reasons and losing token usage; they are now handled as transient transport errors.
- Improved Cursor compatibility with TLS-intercepting proxies that block HTTP/2 by falling back to HTTP/1 for subsequent turns.
@oh-my-pi/browser-relay
Added
- The browser extension now requests Chrome’s downloads permission so relay tabs can report where downloads were saved to omp.
@oh-my-pi/pi-catalog
Fixed
- Fixed model catalog pricing and output-limit metadata for Mistral alias IDs, including the Mistral Vibe CLI default model, by applying the metadata of their aliased models.
- Updated xAI Grok 4.20 beta and multi-agent aliases to use the current Grok 4.20-0309 pricing, including the higher rates for prompts exceeding 200K tokens.
@oh-my-pi/pi-coding-agent
Breaking Changes
logoutCredential()now accepts anAgentSessioninstead of a model registry and session ID. Hosts must install a scoped-model refresher withAgentSession.setScopedModelsRefresher();InteractiveModeandInteractiveModeContextno longer acceptrefreshScopedModelsAfterLogin.SessionStorage.hasAssistantTurn()is replaced by the optionalscanLines(path, visit), which session listings use to recover both a missed assistant record and a first prompt past the 4 KB head; custom storages that implementedhasAssistantTurn()must implementscanLines()instead.
Added
- The shell's
lsbuiltin supports macOS/BSD-O: a long listing gains the file-flags column (hidden,compressed,uchg,restricted, …) instead of rejecting the option, sols -lOworks and flags are visible again. - The shell ships
sdas a builtin, sosd FIND REPLACE [FILES]…find-and-replace (regex or-Fliteral, in place or-ppreview) works without the binary installed. - Added
omp gc --strip(orgc.strip), which removes provider replay data (thinking signatures, encrypted reasoning, cached native responses, request controls) from sessions idle forgc.stripAfterDays(default 30,--strip-after-days), including subagent and archived transcripts; stripped sessions still resume on any model.
Changed
- The
sloppyedit tool (*** Find/*** Replace) now rejects only the operations that fail to match and applies the rest, including across files; the result lists each rejected operation against the file as written, and the call fails only when no file changes. Payloads that do not parse still apply nothing. - A
bashcall that overlaps another one (parallel calls, or a call while one runs in the background) now runs in a copy of the session shell, so it sees the session's variables, functions, options, and working directory from before the other command; what it sets still does not persist. - The
./ccontinue shortcut now interrupts a running turn and continues it, in the main session and in focused subagent views, instead of failing with "Agent is already processing" or doing nothing. - Updated system prompts with the ⁂ section marker and improved task completion guidance, including proportional verification, efficient file reading, batching independent operations, and stopping after changes are verified.
- Added faster isolated-subagent startup for ovnfs-backed checkouts, while preserving the existing baseline behavior for repositories with nested repositories or submodules.
- Improved extension and plugin management:
/extensionsnow lists and toggles extensions from configured extension packages and installed plugins, and marketplace sources resolve relative and bare-name paths consistently with Claude Code. - Scoped model lists now refresh after logout, model-catalog refreshes, and RPC login or logout, so available models stay synchronized with authentication and provider changes.
- Added source actions to LSP
code_actions, including actions such as Organize Imports, with application by title or index. - Browser automation now supports downloads from relay tabs and broader
role/selectors for implicit landmarks and structural roles. - Improved skill and session workflows: skills created or installed during a session become immediately discoverable, and user-attributed custom messages that start a turn receive the appropriate prompt setup.
- Validated security findings now display validation status, timestamp, and summary information.
- Dual-mode language servers retain pushed diagnostics alongside pull diagnostics, preserving build and lint errors across edits.
- Improved session navigation and reliability when switches, forks, branches, context resets, or new sessions overlap; requests are processed in order without freezing or misrouting messages.
- Improved eval and interactive execution behavior, including preservation of JavaScript state and output across asynchronous failures, clearer startup and runtime errors, and better reporting when kernels or runtimes terminate.
- Parent-to-subagent messages now appear as IRC cards in live and Agent Hub transcripts.
- Paused agent turns can allow the machine to sleep at safe boundaries and restore sleep prevention when resumed.
- Improved JSON-mode shutdown handling so final tool events and buffered output are preserved.
- Improved task efficiency and responsiveness for isolated subagents, file search, browser guidance on Linux/X11, and long-running or cancellable operations.
- Updated the
tui.mousesetting documentation to accurately describe wheel-scrolling behavior. mnemopi.dbPathvalues beginning with~now resolve relative to the home directory.- Disabling the Codex provider now prevents its configuration from overriding omp settings, and providers can be disabled without applying their other settings.
omp gcnow shows a progress bar for each slow step (listing and scanning sessions, scanning transcripts for blob refs, archiving) on interactive terminals.omp gc --stripand--compressstart work immediately instead of first reading every session's metadata, and--stripprocesses several sessions at once with a running tally of transcripts stripped.omp gcwithout--applynow says up front that it is a dry run.
Fixed
- Fixed
omp --resumeshowing(no messages)
…