$ inspect oh-my-pi
repo: https://github.com/can1357/oh-my-pi
language: TypeScript
status: indexed
$ cat ./oh-my-pi.md
oh-my-pi
omp (Oh My Pi) is an open-source, terminal-first AI coding agent. You run it inside a project, describe the outcome you want, and it can search the repo, edit files, run commands, inspect results, and explain what changed — without bouncing between an editor, a shell, and a chat window. It is a fork of Mario Zechner’s Pi agent, rebuilt as a coding-first harness: more tools, IDE-like capabilities wired into the TUI, and a native Rust core for the heavy work (search, glob, shell, parsing). License is MIT. Platforms: macOS, Linux, and Windows (native, no WSL required).
34,913 stars
3,791 forks
TypeScript
MIT License
Login with GitHub to like and favorite this CLI tool
$ git release --latest
Latest Releases
All releases
@oh-my-pi/pi-ai
Changed
@oh-my-pi/pi-coding-agent
Added
Changed
Fixed
@oh-my-pi/pi-tui
Breaking Changes
Added
Changed
Fixed
@oh-my-pi/pi-utils
Added
What's Changed
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.8.8...v18.8.9
Changed
- Updated state field rendering to trim trailing whitespace and normalize empty collection formatting for consistent prompt output
@oh-my-pi/pi-coding-agent
Added
- Added capability-driven extension terminal launches for tmux, Zellij, Herdr, and CMUX, with consolidated multiplexer detection, provider/shell capability feedback, and required POSIX-shell confirmation for shell-input launches; CMUX shell input preserves non-ASCII arguments and pane working directories ([#13620](https://github.com/can1357/oh-my-pi/pull/13620) by [@anatoli-tsinovoy](https://github.com/anatoli-tsinovoy)).
- Added
/fork pane|window|tabto open a fork of the session in a new multiplexer pane or window while this session keeps running; bare/forkstill forks in place ([#13620](https://github.com/can1357/oh-my-pi/pull/13620) by [@anatoli-tsinovoy](https://github.com/anatoli-tsinovoy)). - Added Orca CLI-based launches for
/fork pane|window|tabandctx.ui.openTerminal(), with POSIX-shell confirmation; when Orca can only start a tab as a background terminal, the launch reports a warning instead of a visible tab ([#13620](https://github.com/can1357/oh-my-pi/pull/13620) by [@anatoli-tsinovoy](https://github.com/anatoli-tsinovoy)).
Changed
- CLI
--forknow pairs tool calls the source session left unresolved with an unknown-outcome result, and/tanclones report such calls as unknown-outcome instead of aborted; forking a source whose process already exited keeps the process-exit recovery and pending-tool warning ([#13620](https://github.com/can1357/oh-my-pi/pull/13620) by [@anatoli-tsinovoy](https://github.com/anatoli-tsinovoy)). - Table charts (
tui.autoGraph) now cover before/after tables whose rows are different metrics (time, memory, counts): each row's change is drawn as a factor of its "before" value (48× less,+27%), and rows written in prose are skipped and named under the chart. A single column of scores like12/12is drawn as bars filling toward 100% - In terminals that speak the Tern Surface Protocol (Tern), the composer's bottom bar shows the git branch and its status beside the model chip when the status line has the
gitsegment; it outlasts the other facts as the bar narrows, and clicking it opens/git([#15220](https://github.com/can1357/oh-my-pi/pull/15220) by [@H4vC](https://github.com/H4vC)) - Table charts plot scores like
154/160as the share of their total instead of the first number, and tables comparing two or three columns across four or more metrics now get a chart: a grid of one small panel per metric
Fixed
- Fixed table charts failing on a table cell such as
3 constructoror2 valueOf calls
@oh-my-pi/pi-tui
Breaking Changes
- Removed the
isInsideTmux(),isInsideZellij(), andisInsideHerdr()exports; usehasTerminalMultiplexerSession("tmux" | "zellij" | "herdr", env)instead ([#13620](https://github.com/can1357/oh-my-pi/pull/13620) by [@anatoli-tsinovoy](https://github.com/anatoli-tsinovoy))
Added
classifyTerminalMultiplexer()reports"orca"inside Orca terminals whileisInsideTerminalMultiplexer()stays false there, so Orca keeps the direct-terminal render path;TERMINALMULTIPLEXERENV_KEYSlists every environment variable multiplexer detection reads ([#13620](https://github.com/can1357/oh-my-pi/pull/13620) by [@anatoli-tsinovoy](https://github.com/anatoli-tsinovoy))- Added
terminalMultiplexerSessions(),terminalMultiplexerForTerm(),classifyTerminalMultiplexerModule(), androuteTerminalMultiplexerNotification(), driven by one multiplexer registry that now owns notification routing and per-multiplexer capability overrides ([#13620](https://github.com/can1357/oh-my-pi/pull/13620) by [@anatoli-tsinovoy](https://github.com/anatoli-tsinovoy)) - Added
changeandprogresstable-chart kinds withChartSpec.baselineandTableColumn.scores: a before/after table whose rows have their own units charts each metric as a factor of the baseline column (rows without two numbers are named in the caption), andanalyzeTablereads whole-number scores (12/12,154/160) as the percent of their total, keepinga / bpairs and lists as written
Changed
StatusLineComponent.describeComposerFacts()includes the configuredgitsegment among the composer's facts (branch and status, thestatus.gitclick action, pinned so it outlasts the other facts) instead of leaving the branch to Tern's pane header ([#15220](https://github.com/can1357/oh-my-pi/pull/15220) by [@H4vC](https://github.com/H4vC))- Small-multiple table charts with more than three panels and at most six categories draw as bands of per-metric panels with a color legend, and
worthChartingcounts their panels like categories - Table charts take the look of Apple's charts and Tern: a UI sans, hairline gridlines, rounded bars and cells, smooth lines over a soft area fill, dot legends, left-aligned category labels that never run off the edge, and axes labeled in one unit (
0, 5k, 10k) - Line charts whose series differ 8× or more in size stack panels on their own axes instead of flattening the smaller lines, and their end labels no longer overlap
- SVG figure series colors
--c1…--c6are an even-weight palette led by the theme accent's hue instead of syntax colors
Fixed
- Fixed
parseCellthrowing on table cells such as3 constructoror2 valueOf calls, and reading aconstructorcell as a missing value
@oh-my-pi/pi-utils
Added
- Added
hueDistance, the angular distance between two OKLCH hues
What's Changed
- feat(tui): show the git branch in Tern's composer bar by @H4vC in https://github.com/can1357/oh-my-pi/pull/15220
- feat(coding-agent): add multiplexer terminal launch and /fork placements by @anatoli-tsinovoy in https://github.com/can1357/oh-my-pi/pull/13620
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.8.8...v18.8.9
@oh-my-pi/pi-agent-core
Added
Fixed
@oh-my-pi/pi-ai
Fixed
@oh-my-pi/browser-relay
Fixed
@oh-my-pi/pi-catalog
Added
Fixed
@oh-my-pi/pi-coding-agent
Added
Changed
Fixed
@oh-my-pi/pi-mnemopi
Fixed
@oh-my-pi/pi-natives
Changed
Fixed
@oh-my-pi/pi-tui
Breaking Changes
Added
Changed
Fixed
@oh-my-pi/pi-utils
Fixed
@oh-my-pi/pi-wire
Added
What's Changed
New Contributors
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.8.7...v18.8.8
Added
- Added
Agent.setModelResolver()to fit every model an agent adopts (viasetModel, starting with the current one) before it is used ([#15048](https://github.com/can1357/oh-my-pi/pull/15048) by [@H4vC](https://github.com/H4vC)) - Added
CompactionSettings.baseWindowTokens: when set,resolveThresholdTokens()scales its percentage or reserve-based threshold from that base instead of the full context window ([#15065](https://github.com/can1357/oh-my-pi/pull/15065) by [@H4vC](https://github.com/H4vC))
Fixed
- Fixed OpenAI V1 remote compaction re-attaching a prior Anthropic native payload after a successful compact ([#15041](https://github.com/can1357/oh-my-pi/pull/15041) by [@PaleRoses](https://github.com/PaleRoses))
- Fixed
resolveThresholdTokens()clamping a positivethresholdTokenstobaseWindowTokens; a fixed threshold is checked against the real window, and the base only rescales the percentage and reserve policies ([#15074](https://github.com/can1357/oh-my-pi/pull/15074) by [@H4vC](https://github.com/H4vC)) - Fixed
resolveThresholdTokens()clamping a fixedthresholdTokensat or past the context window to one token below it, so compaction fired only after the next request overflowed; it now clamps to the window less the reserve ([#15146](https://github.com/can1357/oh-my-pi/pull/15146) by [@will-bogusz](https://github.com/will-bogusz))
@oh-my-pi/pi-ai
Fixed
- Fixed OpenAI Responses and Codex tool calls running with empty
{}arguments when a compatible host or proxy ends the call with an empty arguments payload after streaming the real ones ([#15099](https://github.com/can1357/oh-my-pi/pull/15099) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed truncated Factory Droid Gemini responses ending as a hard error or a half-received tool call instead of being retried ([#15103](https://github.com/can1357/oh-my-pi/pull/15103) by [@will-bogusz](https://github.com/will-bogusz))
- Fixed Factory Droid Gemini ignoring an error the server reports mid-response, which hid its status and retried errors that cannot succeed ([#15103](https://github.com/can1357/oh-my-pi/pull/15103) by [@will-bogusz](https://github.com/will-bogusz))
- Fixed resumed OpenAI Responses sessions (xAI, Factory Droid, OpenAI and other hosts) dropping all earlier encrypted reasoning on their first request; GitHub Copilot still rebuilds history until its first response ([#15148](https://github.com/can1357/oh-my-pi/pull/15148) by [@will-bogusz](https://github.com/will-bogusz))
@oh-my-pi/browser-relay
Fixed
- Fixed tabs a relay client asks to open in the background being created as the selected tab ([#15109](https://github.com/can1357/oh-my-pi/pull/15109) by [@will-bogusz](https://github.com/will-bogusz))
@oh-my-pi/pi-catalog
Added
- Added the
connection-bound-native-historyrule axis for Responses hosts that reject native history items from an earlier connection, set for GitHub Copilot ([#15148](https://github.com/can1357/oh-my-pi/pull/15148) by [@will-bogusz](https://github.com/will-bogusz))
Fixed
- Fixed Devin's discovered models not marking the account's default model, the one Devin's own CLI starts the account on (SWE-2 High on Pro, SWE-1.6 Slow on Free); when it is an effort lane of a family, the family starts at that effort. Cursor's discovered models no longer carry that marker, so Cursor keeps its existing startup selection ([#15115](https://github.com/can1357/oh-my-pi/pull/15115) by [@will-bogusz](https://github.com/will-bogusz))
@oh-my-pi/pi-coding-agent
Added
- Added
/jobs kill <id>|allto cancel a running background job (or every one this session owns) from the command line, even while the agent is busy ([#14160](https://github.com/can1357/oh-my-pi/pull/14160) by [@KanwarGill](https://github.com/KanwarGill)) - Added
omp anonymize [session] [-o dir]to write a shareable copy of a session and its subagent transcripts: only an explicit allowlist of omp metadata (ids, timestamps, models, usage, built-in tool names and options) is kept; message, thinking, and tool-output text become size-annotated[redacted …]markers; tool-call paths become mock paths (/home/seg3/seg4/src/seg9.ts:10-20), shell commands keep known programs and flags, other literals such as a grep pattern becomePLACEHOLDER_N, and extension or MCP payloads are redacted whole, with the same original always mapping to the same token across files ([#15077](https://github.com/can1357/oh-my-pi/pull/15077) by [@H4vC](https://github.com/H4vC)) - Added
/dump anon, which writes the same anonymized session and subagent JSONL to a zip in the temp directory and copies its path ([#15077](https://github.com/can1357/oh-my-pi/pull/15077) by [@H4vC](https://github.com/H4vC)) - Added message times to
/dumptranscripts (assistant turns also show request duration and time to first token), and live status, last activity, pending tool calls, and the partially streamed turn to/dump allfiles for subagents still running, so a stuck subagent can be diagnosed from the archive ([#15121](https://github.com/can1357/oh-my-pi/pull/15121) by [@H4vC](https://github.com/H4vC)) - Added
contextFiles.extrato load extra instruction files, such asAGENTS.local.md, beside the usual context file ([#15147](https://github.com/can1357/oh-my-pi/pull/15147) by [@Shadorain](https://github.com/Shadorain)). /annotateopens the note you are writing, a file or typed-prompt source, or (for local diff reviews) the current working-tree file in$VISUALor$EDITORwith the external-editor key (Ctrl+G by default); a file source is saved back and its notes follow the edited text ([#15151](https://github.com/can1357/oh-my-pi/pull/15151) by [@Shadorain](https://github.com/Shadorain))
Changed
- A
/modelscompaction limit set past a model's standard context window now runs that model on its extended window instead of being silently clamped; the hub warns (noting long-context pricing) and saves on a second Enter, in the terminal and in Tern, and rejects limits past the model's largest window ([#15048](https://github.com/can1357/oh-my-pi/pull/15048) by [@H4vC](https://github.com/H4vC)) - A token compaction limit set in
/models(orcompaction.modelThresholds) is now the base omp scales with its usual policy, as if it were the model's window (85% of it by default for bases above ~109k, orcompaction.thresholdPercentof it), instead of the exact point. Plain numbers saved since 18.8.5 therefore compact earlier; rewrite one as"f<tokens>"(or typef400kin the hub) to keep it an exact trigger. The/modelslimit field shows where the model would compact as you type (compacts at 340K · 85% of 400K base), the preview's Compacts at row says why, and the saved message repeats it ([#15065](https://github.com/can1357/oh-my-pi/pull/15065) by [@H4vC](https://github.com/H4vC))
Fixed
- Fixed
/usage(or clicking the status-line cost) while the usage dashboard was already open stacking a second dashboard on top; it now focuses the open one ([#15145](https://github.com/can1357/oh-my-pi/pull/15145) by [@H4vC](https://github.com/H4vC)) - Fixed the browser tool prompt not documenting
observe()'sviewportOnlyandincludeAlloptions, or thatopen/close/runtimeouts are seconds clamped to 1–300 whilewaitFor*timeouts are milliseconds ([#15104](https://github.com/can1357/oh-my-pi/pull/15104) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed browser relay pages opened in the background (
browser.newPage({ background: true })intab.run) taking over the user's selected tab; they now open unselected once the relay extension is reinstalled ([#15109](https://github.com/can1357/oh-my-pi/pull/15109) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed browser
openwithapp.relayand atargetfailing withNo page target matchedorSelected tab is no longer availablewhen the matching tab was opened a moment earlier outside omp; it now waits briefly for the relay to list the tab ([#15112](https://github.com/can1357/oh-my-pi/pull/15112) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed a timed-out
browser.openholding up the next open of the same browser (apps launched withapp.pathexcepted) until its abandoned launch or connect returned; the timeout error now names the step that stalled ([#15117](https://github.com/can1357/oh-my-pi/pull/15117) by [@jinpyo-jeon](https://github.com/jinpyo-jeon) and [@will-bogusz](https://github.com/will-bogusz)) - Fixed browser tabs crashing mid-load on some pages with a same-site iframe, Google Travel among them, after which every open, screenshot and evaluate on the tab timed out ([#15118](https://github.com/can1357/oh-my-pi/pull/15118) by [@will-bogusz](https://github.com/will-bogusz))
- Fixed the custom-tool examples' full-documentation link opening a missing page ([#15076](https://github.com/can1357/oh-my-pi/pull/15076) by [@qingshungLI](https://github.com/qingshungLI))
- Fixed the
/modelscompaction limit preview and Compacts at row rounding fractional percentages (12.5%showed as13%) ([#15074](https://github.com/can1357/oh-my-pi/pull/15074) by [@H4vC](https://github.com/H4vC)) - Fixed
/omfgsave, overwrite, and validation prompts in Tern opening as a sheet over the candidate rule; they now sit in the composer slot likeask, so the rule stays readable while you choose ([#15058](https://github.com/can1357/oh-my-pi/pull/15058) by [@H4vC](https://github.com/H4vC)) - Fixed hotkeys pressed in Tern while omp is still starting (such as Alt+P for the model selector) being ignored; like in other terminals, they now take effect once startup finishes ([#15120](https://github.com/can1357/oh-my-pi/pull/15120) by [@H4vC](https://github.com/H4vC))
- Fixed a startup extension dialog (select, confirm, input) in Tern not receiving keys until it timed out ([#15122](https://github.com/can1357/oh-my-pi/pull/15122) by [@H4vC](https://github.com/H4vC))
- Fixed auto-compaction overflowing the context window every cycle when
compaction.thresholdTokensor anf<tokens>model limit is at or past a window the provider caps lower (such as Factory's 196K Kimi K3); it now compacts at the window less the reserve, and/modelsshows the trigger as capped ([#15146](https://github.com/can1357/oh-my-pi/pull/15146) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed resumed xAI, Factory Droid and OpenAI sessions forgetting earlier reasoning on their first request, while a retry after a stale Responses item error still rebuilds history ([#15148](https://github.com/can1357/oh-my-pi/pull/15148) by [@will-bogusz](https://github.com/will-bogusz))
- Fixed the startup default ignoring the model a provider's discovery names as the account's default: with no model chosen, Devin Pro now starts on SWE-2 at High instead of SWE-1.6 ([#15115](https://github.com/can1357/oh-my-pi/pull/15115) by [@will-bogusz](https://github.com/will-bogusz))
@oh-my-pi/pi-mnemopi
Fixed
- Fixed long retained transcripts exhausting local memory extraction models by limiting each extraction input to 8192 characters while keeping the opening context and newest turns ([#14956](https://github.com/can1357/oh-my-pi/issues/14956)).
@oh-my-pi/pi-natives
Changed
- Reduced macOS accessibility-tree latency for
ax()without changing its text output: each element's children are read once, and its bounds, which the tree never shows, are no longer read ([#15159](https://github.com/can1357/oh-my-pi/pull/15159) by [@will-bogusz](https://github.com/will-bogusz))
Fixed
- Fixed macOS computer use reporting
AxFailedinstead ofStaleReffor a ref whose element the app had removed ([#15156](https://github.com/can1357/oh-my-pi/pull/15156) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed macOS
el.press()andel.perform()reportingAxFailedwhen the app did not answer in time, such as a press that opens a modal dialog; they now reportAxUnconfirmed([#15156](https://github.com/can1357/oh-my-pi/pull/15156) by [@will-bogusz](https://github.com/will-bogusz))
@oh-my-pi/pi-tui
Breaking Changes
ModelHubCallbacks.onCompactionPointChangenow receives aconfirmedflag and returns aCompactionPointChangeResult({ kind: "error" }or{ kind: "confirm" }) instead of an error string; aconfirmresult shows a warning that a second Enter on the same input accepts ([#15048](https://github.com/can1357/oh-my-pi/pull/15048) by [@H4vC](https://github.com/H4vC))ModelCompactionPoint.percentis replaced bybasis, a short explanation of why the model compacts there (fixed,85% of 400K base,80% of window) that the model hub preview shows next to the trigger ([#15065](https://github.com/can1357/oh-my-pi/pull/15065) by [@H4vC](https://github.com/H4vC))
Added
- Added an
inlineoption toHookSelectorComponentthat keeps a selector in the composer slot in Tern instead of opening it as a sheet over the screen ([#15058](https://github.com/can1357/oh-my-pi/pull/15058) by [@H4vC](https://github.com/H4vC)) - Added
ModelHubCallbacks.previewCompactionPoint, whose line the compaction limit field shows while you type instead of the input syntax ([#15065](https://github.com/can1357/oh-my-pi/pull/15065) by [@H4vC](https://github.com/H4vC)) - Added Vim find and till motions (
f,F,t,T) in the prompt editor, with;and,to repeat them ([#15100](https://github.com/can1357/oh-my-pi/pull/15100) by [@Shadorain](https://github.com/Shadorain)) - Added Vim replace (
r,R) in the prompt editor ([#15100](https://github.com/can1357/oh-my-pi/pull/15100) by [@Shadorain](https://github.com/Shadorain)) - Added Vim bracket and quote matching (
%), paragraph motions ({,}), line join (J), and indent (>>,<<) in the prompt editor ([#15100](https://github.com/can1357/oh-my-pi/pull/15100) by [@Shadorain](https://github.com/Shadorain)) - Added an external-editor key (Ctrl+G by default) to the annotation overlay for the note draft and, when the host provides
onExternalEditor, the source being annotated; an edited text source is returned aseditedTexton the paste result ([#15151](https://github.com/can1357/oh-my-pi/pull/15151) by [@Shadorain](https://github.com/Shadorain)) - Added
TUI.releaseHeldInput(): on a terminal expected to speak TSP, adeferInputstart now holds keystrokes (TSP events and the cell-size reply still apply; Ctrl+C/Ctrl+D release early) until the app calls it once its session is wired; such terminals also skip the sixel probe ([#15120](https://github.com/can1357/oh-my-pi/pull/15120) by [@H4vC](https://github.com/H4vC)) - Added
TUI.replaceHeldFocus(previous, next), whichComposer.setEditor()calls so a swapped-in editor inherits held startup keys; only keys for the start-time focus owner are now held, and a dialog that takes focus gets its input live ([#15122](https://github.com/can1357/oh-my-pi/pull/15122) by [@H4vC](https://github.com/H4vC)) - Added
RenderResultOptions.elapsedMsandcancelled,NativeToolHead.commandandNativeToolView.preview: "children"for native describe hooks
Changed
- Tern draws each bash run, eval cell and
!/$run as one box: the command or code, its output, status lines and a foot with state, time and facts; images sit below the box and the bash head shows the intent instead of the command
Fixed
- Fixed the Agents hub Time column rewinding and freezing for running subagents between progress updates ([#15140](https://github.com/can1357/oh-my-pi/pull/15140) by [@H4vC](https://github.com/H4vC))
@oh-my-pi/pi-utils
Fixed
- Fixed
formatDurationprinting60.0sfor durations just under a minute; they now read1m([#15121](https://github.com/can1357/oh-my-pi/pull/15121) by [@H4vC](https://github.com/H4vC))
@oh-my-pi/pi-wire
Added
- Added
TspToolProps.command(the command line Copy command copies),TspToolProps.preview: "children"(the collapsed body stays whole while its children clamp) andTspCodeProps.preview
What's Changed
- fix(tui): keep /omfg prompts in the Tern composer slot by @H4vC in https://github.com/can1357/oh-my-pi/pull/15058
- feat(coding-agent): let custom compaction limits reach the extended context window by @H4vC in https://github.com/can1357/oh-my-pi/pull/15048
- feat(coding-agent): scale per-model compaction limits, add a fixed mode, and explain them in the hub by @H4vC in https://github.com/can1357/oh-my-pi/pull/15065
- fix(coding-agent): address review follow-ups on per-model compaction limits by @H4vC in https://github.com/can1357/oh-my-pi/pull/15074
- fix(docs): correct custom tool guide link by @qingshungLI in https://github.com/can1357/oh-my-pi/pull/15076
- fix(agent): keep cleaned preserve data after V1 remote compaction by @PaleRoses in https://github.com/can1357/oh-my-pi/pull/15041
- fix(mnemopi): bound retained transcript extraction input by @roboomp in https://github.com/can1357/oh-my-pi/pull/14959
- feat(coding-agent): add /jobs kill <id>|all by @KanwarGill in https://github.com/can1357/oh-my-pi/pull/14160
- feat(coding-agent): add session anonymizer (omp anonymize, /dump anon) by @H4vC in https://github.com/can1357/oh-my-pi/pull/15077
- fix(tui): queue input during startup in Tern by @H4vC in https://github.com/can1357/oh-my-pi/pull/15120
- feat(tui): add the missing Vim editing keys by @Shadorain in https://github.com/can1357/oh-my-pi/pull/15100
- fix(tui): exit history on vim replace overwrite and keep counted r linear by @H4vC in https://github.com/can1357/oh-my-pi/pull/15127
- fix(coding-agent): show live subagent state and message times in /dump by @H4vC in https://github.com/can1357/oh-my-pi/pull/15121
- fix(tui): deliver Tern startup dialog input live and replay held keys before draft restore by @H4vC in https://github.com/can1357/oh-my-pi/pull/15122
- fix(tui): keep agent hub Time ticking forward between subagent progress frames by @H4vC in https://github.com/can1357/oh-my-pi/pull/15140
- fix(coding-agent): focus the open /usage dashboard instead of stacking another by @H4vC in https://github.com/can1357/oh-my-pi/pull/15145
- feat(coding-agent): open the default editor from /annotate by @Shadorain in https://github.com/can1357/oh-my-pi/pull/15151
- feat(coding-agent): add contextFiles.extra for custom context filenames by @Shadorain in https://github.com/can1357/oh-my-pi/pull/15147
- fix(natives): report removed macOS AX elements as StaleRef and unanswered actions as AxUnconfirmed by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15156
- perf(natives): read each macOS AX element's children once and skip unused bounds in ax() by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15159
- fix(ai): keep streamed tool arguments when Responses ends with an empty payload by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15099
- fix(ai): retry Factory Droid Gemini streams that are cut off mid-response by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15103
- docs(browser): document observe viewportOnly/includeAll and timeout units by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15104
- fix(browser-relay): open Target.createTarget background tabs without selecting them by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15109
- fix(coding-agent): let a relay target adopt a tab opened a moment earlier by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15112
- fix(catalog,coding-agent): start on the account's default model when discovery reports one by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15115
- fix(browser): name the stalled step of a timed-out open and stop it holding up the next one by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15117
- fix(browser): stop the WebMCP page hook getting Chromium to kill the tab's renderer by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15118
- fix(agent,coding-agent): compact a fixed trigger past a capped context window before the next request overflows by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15146
- fix(ai): keep earlier reasoning on the first request of a resumed Responses session by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/15148
- test(browser): run the spawned-app abandoned-open test on Windows by @H4vC in https://github.com/can1357/oh-my-pi/pull/15214
New Contributors
- @qingshungLI made their first contribution in https://github.com/can1357/oh-my-pi/pull/15076
- @KanwarGill made their first contribution in https://github.com/can1357/oh-my-pi/pull/14160
- @Shadorain made their first contribution in https://github.com/can1357/oh-my-pi/pull/15100
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.8.7...v18.8.8
@oh-my-pi/pi-ai
Added
Fixed
@oh-my-pi/pi-catalog
Added
Fixed
@oh-my-pi/pi-coding-agent
Added
Changed
Fixed
@oh-my-pi/pi-mnemopi
Fixed
@oh-my-pi/pi-natives
Added
Changed
Fixed
@oh-my-pi/pi-tui
Added
Changed
Fixed
@oh-my-pi/pi-utils
Added
Fixed
What's Changed
New Contributors
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.8.6...v18.8.7
Added
- Added routing-session cleanup for OpenAI Responses and Codex while preserving shared provider fallbacks ([#14334](https://github.com/can1357/oh-my-pi/pull/14334) by [@iliaal](https://github.com/iliaal)).
Fixed
- Fixed Claude Haiku 5.5 requests silently enabling adaptive thinking when reasoning is off, on native Bedrock (main and helper calls) and the Anthropic API; conversations whose earlier effort controls rule out disabled thinking fall back to lowest-effort adaptive thinking instead of failing ([#14996](https://github.com/can1357/oh-my-pi/pull/14996) by [@bse-ai](https://github.com/bse-ai)).
- Fixed
/session pinbeing ignored when every stored account is quota-blocked, which routed the next request to a different exhausted account instead of the pinned one ([#14997](https://github.com/can1357/oh-my-pi/issues/14997)). - Fixed
minimax-code-cnsessions staying pinned to a key whose Token Plan quota is exhausted (用量上限429) instead of rotating to a sibling credential ([#15053](https://github.com/can1357/oh-my-pi/issues/15053)).
@oh-my-pi/pi-catalog
Added
- Added built-in CoralBricks support with
/login, live model discovery, per-model reasoning levels and off controls, and bundled offline fallbacks. ([#14146](https://github.com/can1357/oh-my-pi/pull/14146) by [@ryan-brosas](https://github.com/ryan-brosas)) - Added
gen:models --provider <id>to update one provider without changing other providers' catalog snapshots. ([#14146](https://github.com/can1357/oh-my-pi/pull/14146) by [@ryan-brosas](https://github.com/ryan-brosas))
Fixed
- Fixed Claude Haiku 5.5 thinking Off to request explicitly disabled thinking on every host serving its adaptive thinking ([#14996](https://github.com/can1357/oh-my-pi/pull/14996) by [@bse-ai](https://github.com/bse-ai)).
@oh-my-pi/pi-coding-agent
Added
- Added automated release binary publication to build.stencil.so
- Added OSC 7501 program status reporting: terminals and agent inboxes that support it now show whether omp is working, waiting on your answer or approval (with the question), done, or failed (with the error), without parsing the window title. Turn it off with
terminal.programStatus. - Added title cards (icon and short code) to
/rename: the title model picks one for a title you type, or for a generated title when the session has no card yet;title.icons: boringkeeps renamed titles plain. - Grammars for less common languages (Kotlin, Swift, Ruby, PHP, Haskell, Verilog, and others) are now downloaded on first use for code summaries, block context,
astgrep,astedit, and TTSR rules; offline, files in those languages are skipped with a note instead of failing.PIGRAMMARSURLoverrides the download location. - Added
bash.gitGuard(default off) for checkouts shared by concurrent agents: the bash tool refusesgit stash,git reset --hardor to another commit, andgit checkout/switch/restorethat would overwrite working-tree files unless a merge or rebase conflict is being resolved; unstaging stays allowed, and commands are judged as they actually run, including inside substitutions, functions, and aftercd.
Changed
- Updated
writetool error message to mention local:// scratch support - Web search now tells the agent about its X post operators (
site:x.com,from:<handle>) when you are logged in to xAI, so questions about reactions on X reach X search. - Reduced memory retained after merging unchanged discovered and cached models ([#14252](https://github.com/can1357/oh-my-pi/pull/14252) by [@iliaal](https://github.com/iliaal)).
- The default
smolmodel now prefers Claude Haiku 5.5 when it is available. - Automatic session titles now start when the agent's reply begins rather than when you submit, so a slow-thinking first reply gets a card title (icon and code) instead of a plain fallback title.
read file.jsonl?q=…keeps the other lines' results when a line before the last fails and shows jq's error ahead of them, instead of failing the read; anything else the query wrote to stderr, such asdebugoutput, now leads the result too ([#14659](https://github.com/can1357/oh-my-pi/pull/14659) by [@will-bogusz](https://github.com/will-bogusz))- Title card icons now picture each session's specific subject instead of a generic bug, flask, speedometer, gear, or terminal, or the project's language logo, so sessions in the same project are easier to tell apart.
- Agents whose tool list omits
writebut still get it to runxd://tools can now also writelocal://files (reports, notes) outside plan mode; working-tree writes stay blocked. - Added
worktree.onStartandworktree.onExitsettings to start each session in its own worktree and clean it up on exit ([#14908](https://github.com/can1357/oh-my-pi/pull/14908) by [@gitpushoriginmaster](https://github.com/gitpushoriginmaster)) - Added
speech.speedandtts.localSpeedsettings (0.5–2.5, default 1) to speed up or slow down local Kokoro speech for live vocalization and thettstool /omp say, plus anomp say --speedflag; ACP voice clients find both settings and their presets inspeech.models.list([#5868](https://github.com/can1357/oh-my-pi/issues/5868)) omp updateand the startup update notice leave an omp installed by another app (Tern) to that app instead of replacing its files.- The startup update notice no longer appears when omp runs from a source checkout.
Fixed
- Reduced memory growth after one-shot side requests without interrupting ongoing conversations ([#14334](https://github.com/can1357/oh-my-pi/pull/14334) by [@iliaal](https://github.com/iliaal)).
- Fixed sessions staying untitled when you interrupted the first reply to send a queued steer message.
- Fixed browser downloads saving into another tab's
downloadsfolder, andtab.waitForDownload()saving into the system Downloads folder once another tab closed; each tab in a Chromium omp launched or spawned now saves into its own, iframe downloads included. In those browsers a download no tab tracks (started by a page omp did not open, or finishing after its tab closed) now keeps Chromium's GUID file name instead of its suggested name; connected and relay browsers keep real file names ([#14544](https://github.com/can1357/oh-my-pi/pull/14544) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed browser calls in relay mode failing with "The browser relay … is out of date" after an omp upgrade until the old relay was killed by hand; omp now restarts a relay it started itself under an older version ([#14416](https://github.com/can1357/oh-my-pi/pull/14416) by [@will-bogusz](https://github.com/will-bogusz))
- Fixed
/renamewithout a title dropping the session's title card (icon and short code) ([#14980](https://github.com/can1357/oh-my-pi/issues/14980)) - Fixed title cards showing the emoji instead of the Nerd Font icon when the model misremembered the icon's name: dashes for underscores (
nf-md-text-box), the wrong icon set (nf-md-spinnerfornf-fa-spinner), or reordered, missing, or extra words (nf-md-testfornf-md-test_tube). - Fixed
omp updateignoring theupdate.channelsetting: canary users were checked against stable releases, and--canary/--stablewere never remembered. - Fixed interrupting a reply to send a queued steer message briefly showing omp as idle (title, progress, working indicator) before the steer ran; RPC and SDK clients also no longer see a final
agent_endfor that interrupt. - Fixed browser tab recordings and video frame/contact-sheet extraction creating
omp-browser-recording-*andomp-video-*scratch directories in your working directory instead of the system temp directory. - Fixed edit snapshots retaining excess history when metadata or displayed-line provenance grows; the 64 MiB snapshot budget now counts UTF-8 bytes, so CJK- and emoji-heavy files keep fewer versions ([#14975](https://github.com/can1357/oh-my-pi/pull/14975) by [@iliaal](https://github.com/iliaal)).
@oh-my-pi/pi-mnemopi
Fixed
- Fixed proactive linking freezing the host for seconds per stored memory on large banks; a memory's graph links are now written in one commit instead of one per link ([#14998](https://github.com/can1357/oh-my-pi/issues/14998)).
@oh-my-pi/pi-natives
Added
- Added
wasmGrammarForfor tree-sitter grammars loaded as WebAssembly on demand from<natives dir>/grammars, andmissingGrammarsonastGrep/astEditresults naming languages skipped because their grammar is not installed.
Changed
- Reduced syntax-highlighting startup work by bundling the complete precompiled grammar set ([#14104](https://github.com/can1357/oh-my-pi/pull/14104) by [@iliaal](https://github.com/iliaal)).
- Changed standalone binaries to embed each native addon as its own deterministic zstd frame instead of a timestamped gzip tarball, making binaries smaller.
- Updated the shell's built-in
jqto jaq 3.1.1, whichjq --versionnow reports ([#14659](https://github.com/can1357/oh-my-pi/pull/14659) by [@will-bogusz](https://github.com/will-bogusz))
Fixed
- Fixed the built-in
jqerroring where jq returnsnull(.a.bover{},.[0]overnull) and lackingIN,inputfilename,inputline_numberand--unbuffered([#14659](https://github.com/can1357/oh-my-pi/pull/14659) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed the built-in
jqreading each file operand separately:-snow slurps them into one array andinputreads on into the next file, as in jq ([#14659](https://github.com/can1357/oh-my-pi/pull/14659) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed the built-in
jqstopping at the first input that fails and rejecting"021"and"+1"intonumber, where jq does neither; a run that reported a failing input is never shortened by the output minimizer, even when it exits 0 ([#14659](https://github.com/can1357/oh-my-pi/pull/14659) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed the built-in
jq'shalt_errorprinting its message to stdout; like jq, it now goes to stderr ([#14659](https://github.com/can1357/oh-my-pi/pull/14659) by [@will-bogusz](https://github.com/will-bogusz)) - Shrank the native addon by about 77 MB: only 17 common tree-sitter grammars are linked in, and the other 39 languages load WebAssembly grammars from the grammar directory, treated as unsupported until installed.
@oh-my-pi/pi-tui
Added
- Added cache-release hooks for TUI components and tool cards, allowing extensions to discard derived render data without rebuilding content ([#13632](https://github.com/can1357/oh-my-pi/pull/13632) by [@iliaal](https://github.com/iliaal)).
Changed
- Subagent "Submit Result" cards now show the submitted result (its fields as a tree, or the report text), the section it fills, and why a submission was rejected, instead of only "Result submitted.".
- Reduced memory held by retired transcript history in long sessions ([#13632](https://github.com/can1357/oh-my-pi/pull/13632) by [@iliaal](https://github.com/iliaal)).
Fixed
- Reduced memory retained by discarded TSP images and previews ([#14336](https://github.com/can1357/oh-my-pi/pull/14336) by [@iliaal](https://github.com/iliaal)).
- Fixed startup capability probes printing as text in the prompt (e.g.
25a1;stsp;q;{…}pppppp) on terminals that cannot parse them, such as macOS Terminal.app. - Fixed the
/resumepicker flashing while a search runs over a large session history: background fuzzy matches now land in one update instead of reordering the list dozens of times per keystroke.
@oh-my-pi/pi-utils
Added
- Added
getNativeGrammarsDir(), where the native addon loads downloaded tree-sitter grammars from (~/.omp/natives/grammars).
Fixed
- Fixed the virtual terminal misreading private CSI sequences such as kitty keyboard
CSI < uand modifyOtherKeysCSI > 4;1 mas cursor restores or text styling, which garbled replayed PTY output.
What's Changed
- perf(coding-agent): reuse complete model objects during merge by @iliaal in https://github.com/can1357/oh-my-pi/pull/14252
- refactor(natives): share tokenizer short-key parsing by @iliaal in https://github.com/can1357/oh-my-pi/pull/14335
- Build the combined syntax grammar artifact ahead of time by @iliaal in https://github.com/can1357/oh-my-pi/pull/14104
- fix(coding-agent): release completed one-shot provider state by @iliaal in https://github.com/can1357/oh-my-pi/pull/14334
- fix(tui): release discarded native image blobs by @iliaal in https://github.com/can1357/oh-my-pi/pull/14336
- fix(ai,catalog): honor Claude Haiku 5.5 thinking Off by @bse-ai in https://github.com/can1357/oh-my-pi/pull/14996
- fix(ai): tried explicit session pin first when every account is blocked by @roboomp in https://github.com/can1357/oh-my-pi/pull/14999
- fix(mnemopi): batched proactive-link graph writes in one transaction by @roboomp in https://github.com/can1357/oh-my-pi/pull/15005
- feat(coding-agent): add Kokoro speaking-rate settings for vocalization and local TTS by @H4vC in https://github.com/can1357/oh-my-pi/pull/15042
- fix(coding-agent): advertise speech speed settings in the ACP speech catalog by @H4vC in https://github.com/can1357/oh-my-pi/pull/15045
- fix(coding-agent): restart an outdated browser relay that omp started itself by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14416
- fix(browser): save each tab's downloads into its own folder by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14544
- fix(builtins): port jq to jaq 3.1.1 and close the jq gaps agents hit by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14659
- Release derived render caches when transcript entries retire by @iliaal in https://github.com/can1357/oh-my-pi/pull/13632
- fix(edit): count retained snapshot allocations with shared provenance by @iliaal in https://github.com/can1357/oh-my-pi/pull/14975
- feat(catalog): add CoralBricks provider with /login flow by @ryan-brosas in https://github.com/can1357/oh-my-pi/pull/14146
New Contributors
- @ryan-brosas made their first contribution in https://github.com/can1357/oh-my-pi/pull/14146
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.8.6...v18.8.7
@oh-my-pi/pi-agent-core
Added
@oh-my-pi/pi-ai
Fixed
@oh-my-pi/pi-catalog
Added
Fixed
@oh-my-pi/pi-coding-agent
Added
Changed
Fixed
@oh-my-pi/pi-tui
Changed
Fixed
What's Changed
New Contributors
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.8.5...v18.8.6
Added
- Added support for warm-cache-aware conversation pruning, keeping pruned history within the model’s prompt-cache lookback window while preserving Anthropic prompt-cache efficiency.
- Added
AgentLoopConfig.hasQueuedAsides(also available onAgent) to allow interruptible waits to detect queued asides without consuming them or signaling other tools.
@oh-my-pi/pi-ai
Fixed
- Fixed Google Gemini and Cloud Code Assist (Antigravity) requests failing when tool schemas contain unsupported JSON Schema keywords or fields that allow multiple types.
- Fixed auth broker account selection and usage-limit enforcement to consistently use the selected account’s quota when multiple accounts are present.
- Fixed Anthropic-family model streaming so encoded marker tokens are decoded correctly in text, tool-call updates, partial messages, and completed tool calls.
@oh-my-pi/pi-catalog
Added
- Added prompt-cache lookback support for Claude models across all hosts, including the public
prompt-cache-lookbackcatalog axis andresolvePromptCacheLookbackAPI.
Fixed
- Fixed model discovery when providers publish models before they are recognized by the catalog; unsupported models are now skipped with a warning so other available models remain discoverable.
@oh-my-pi/pi-coding-agent
Added
- Added per-session Git worktree support with
worktree.onStartandworktree.onExitsettings to create an isolated worktree for each session and clean it up when the session ends. - Expanded xAI web search with X post search, including X-only and author-specific queries, author exclusions, date and recency filters, and automatic xAI routing when credentials are available.
- Added xAI-powered reading of X posts, threads and replies, profiles, searches, and hashtags when logged in, replacing the unavailable Nitter mirrors.
Changed
- Web search now prefers an authenticated
xai-oauthlogin over anxaiAPI key when both are available, unlessmodelProviderOrderspecifies a different order.
Fixed
- Fixed judge-gated features continuing to use a stale model chain after switching judge roles.
- Improved Anthropic prompt-cache reuse when pruning tool results from long conversations.
- Fixed resumed Claude sessions losing earlier thinking context and prompt-cache reuse when extensions or MCP tools were registered before the first message.
- Fixed subagent advisors configured with
@advisorusing the built-inslowmodel instead of the configured advisor role. - Fixed the
/switchcommand and alternate model picker crashing when stored model speed statistics contained an unnamed model. - Fixed
lspandgenerate_imageattempting to read FIFO, terminal, or unbounded device paths, which could hang or exhaust memory. - Fixed aside messages from extensions being blocked behind a running wait operation.
- Fixed extensions importing
@oh-my-pi/pi-tui/native/*failing to load in compiledompbinaries. - Fixed raw token markers appearing instead of Nerd Font icons in Anthropic idle recaps,
/btwand/omfgreplies, and streaming previews. - Fixed sessions moved with
/wtdisappearing from resume lists; sessions in Git worktrees now remain discoverable and can be resumed or relocated if their worktree was removed. - Fixed live config reload ignoring edits made during startup or right after a config symlink was retargeted, until the next unrelated edit.
@oh-my-pi/pi-tui
Changed
- Improved rendering performance for streaming long Markdown lists while preserving nested items, numbering, and reference links.
Fixed
- Added package exports for the native Tern/TSP modules, allowing extensions in compiled
ompbinaries to import them. - Fixed the Tern
/modelpicker's Roles tab so typing and Backspace consistently edit the search field without triggering role commands. - Fixed the session picker so sessions retain and display their directory when switching between the current folder and all-project views.
What's Changed
- fix(agent): stop tool-result pruning from re-writing the whole Anthropic cache behind many small turns by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14751
- fix(coding-agent): keep resumed Claude sessions' thinking and cache when tools register before the first message by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14754
- fix(ai): stop broker clients judging an account by a sibling's usage when its own fetch fails by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14904
- fix(coding-agent): resolve @advisor subagent advisor against owner roles by @H4vC in https://github.com/can1357/oh-my-pi/pull/14972
- fix(judgment): invalidate the cached judge role chain when settings change by @alnaggar-dev in https://github.com/can1357/oh-my-pi/pull/14861
- feat(coding-agent): add worktree.onStart and worktree.onExit settings by @gitpushoriginmaster in https://github.com/can1357/oh-my-pi/pull/14908
- fix(coding-agent): skipped null model_perf keys that crashed the model picker by @roboomp in https://github.com/can1357/oh-my-pi/pull/14787
- fix(lsp,image): refuse FIFOs and devices instead of hanging on them by @DrFaustus-vic in https://github.com/can1357/oh-my-pi/pull/14730
- fix(agent): end an interruptible wait when an aside is queued by @mgpai22 in https://github.com/can1357/oh-my-pi/pull/14731
- fix(ai): strip uniqueItems and unsupported schema keywords for Google and CCA by @jwaldrip in https://github.com/can1357/oh-my-pi/pull/14766
- fix(tui): register pi-tui native/* subpaths for compiled-binary extensions by @clasalle-lila in https://github.com/can1357/oh-my-pi/pull/14835
- Make long streamed lists incremental by @iliaal in https://github.com/can1357/oh-my-pi/pull/13701
New Contributors
- @mgpai22 made their first contribution in https://github.com/can1357/oh-my-pi/pull/14731
- @clasalle-lila made their first contribution in https://github.com/can1357/oh-my-pi/pull/14835
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.8.5...v18.8.6
@oh-my-pi/pi-ai
Added
Changed
Fixed
@oh-my-pi/pi-catalog
Breaking Changes
Fixed
@oh-my-pi/pi-coding-agent
Added
Fixed
Removed
@oh-my-pi/pi-mnemopi
Fixed
@oh-my-pi/pi-tui
Added
Fixed
What's Changed
New Contributors
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.8.4...v18.8.5
Added
oauth.refresh(id, signal, { reason: "auth-recovery" })forwards provider-401 recovery intent to a delegated (auth broker) refresh, andAuthStorageOptions.refreshOAuthCredentialMintsmarks arefreshOAuthCredentialhook that exchanges tokens itself so its tokens are reused for auth recovery ([#14752](https://github.com/can1357/oh-my-pi/pull/14752) by [@will-bogusz](https://github.com/will-bogusz))SessionsApi.inheritaccepts an optional filter, called with each provider and whether the source's affinity is an explicit user pin, to copy only the affinities it accepts ([#14749](https://github.com/can1357/oh-my-pi/pull/14749) by [@will-bogusz](https://github.com/will-bogusz))
Changed
AuthApiKeyOptions.accountIdsalso matches the login email, or else the project id, of credentials that carry no account id (seeoauthAccountKey), so Antigravity requests prefer accounts that serve the requested model ([#14924](https://github.com/can1357/oh-my-pi/issues/14924)).
Fixed
- Fixed accounts sitting exactly at their
reservePct(e.g. 70% used with a 30% reserve) still being picked and reported healthy instead of being held in reserve ([#14765](https://github.com/can1357/oh-my-pi/pull/14765) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed
oauth.accessByIdwithforceRefreshreturning the stored token unchanged while it was still valid; it now re-mints that one account (through the auth broker when configured) and returns that account's token even if another row is removed meanwhile ([#14752](https://github.com/can1357/oh-my-pi/pull/14752) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed
omp -pand other short-lived auth-broker clients missing fromomp usage clients: usage still waiting for the 10-second report batch is now sent to the broker before the process exits ([#14899](https://github.com/can1357/oh-my-pi/pull/14899) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed Cursor web fetches that were cut off by a dropped connection disappearing from resumed and rebuilt sessions; they now show as interrupted ([#14819](https://github.com/can1357/oh-my-pi/pull/14819) by [@jchanghong023](https://github.com/jchanghong023))
- Anthropic hosted web search can honor custom providers' OAuth-style request shaping and configured headers consistently with conversations ([#14919](https://github.com/can1357/oh-my-pi/pull/14919) by [@farnoy](https://github.com/farnoy))
@oh-my-pi/pi-catalog
Breaking Changes
googleAntigravityModelManagerOptionstakesresolveAccountsinstead ofoauthToken, andfetchAntigravityDiscoveryModelsreturns a roster or credential-rejection result instead of a bare list ([#14924](https://github.com/can1357/oh-my-pi/issues/14924)).
Fixed
- Fixed Claude Haiku 5.5 on Cursor showing as unpriced; it now uses Cursor's $0.10/$0.50 rate card and 5x long-context tier above 100K input tokens ([#14890](https://github.com/can1357/oh-my-pi/pull/14890) by [@eggpeat](https://github.com/eggpeat)).
- Fixed Claude Haiku 5.5 on GitHub Copilot pricing cache reads and writes at $0 on both the standard and
-1mlong-context rows, and the-1mrow billing the 5x long-context band a second time above 100K input tokens ([#14890](https://github.com/can1357/oh-my-pi/pull/14890) by [@eggpeat](https://github.com/eggpeat)).
@oh-my-pi/pi-coding-agent
Added
- Added per-model auto-compaction points: the
/modelspreview shows where each model compacts, and in the Roles viewk(or the Compaction limit button) sets it for the selected role's or fallback's model (90000,90k,1M,80%; empty resets). Also configurable ascompaction.modelThresholdswithprovider/model-idorprovider/*keys ([#14952](https://github.com/can1357/oh-my-pi/pull/14952) by [@H4vC](https://github.com/H4vC))
Fixed
- Fixed
omp usagereporting an account exactly at its reserve (e.g. 30% left with a 30% reserve) as eligible instead of inside reserve ([#14765](https://github.com/can1357/oh-my-pi/pull/14765) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed the todo reminder pushing the agent to keep working after it offered options and asked the user to choose ([#14800](https://github.com/can1357/oh-my-pi/pull/14800) by [@mrmans0n](https://github.com/mrmans0n))
- Fixed the todo reminder telling the model to keep working right after it asked the user a bolded or italicised question ([#12051](https://github.com/can1357/oh-my-pi/issues/12051), [#14353](https://github.com/can1357/oh-my-pi/pull/14353) by [@F0Rextasy](https://github.com/F0Rextasy))
- Fixed short model selectors such as
p/a:maxora:maxdropping their explicit thinking level when a role was reassigned or used for image questions; a model whose ID literally ends in:maxor:autois still treated as that model ([#14554](https://github.com/can1357/oh-my-pi/pull/14554) by [@xiangnan0811](https://github.com/xiangnan0811)) - Fixed starting a subagent switching the parent session's later language servers from shared to private ([#14628](https://github.com/can1357/oh-my-pi/pull/14628) by [@jorgoose](https://github.com/jorgoose))
- Fixed a finishing subagent cancelling local tiny-model requests (titles, task labels, judgments) still running for the parent or other subagents ([#14629](https://github.com/can1357/oh-my-pi/pull/14629) by [@jorgoose](https://github.com/jorgoose))
- Fixed rust-analyzer on Windows not running through a running lspmux server, as it already did on Linux and macOS ([#14630](https://github.com/can1357/oh-my-pi/pull/14630) by [@jorgoose](https://github.com/jorgoose))
- Fixed a malformed or unreadable project
plugin-overrides.jsonbeing ignored silently, which re-enabled project-disabled plugins without a trace; omp now logs a warning naming the file ([#14518](https://github.com/can1357/oh-my-pi/issues/14518), [#14573](https://github.com/can1357/oh-my-pi/pull/14573) by [@oleg494](https://github.com/oleg494)) - Fixed Claude Opus 5.5 and Sonnet 5.5 disappearing with mixed-access Google Antigravity accounts; models now route to accounts that serve them, and revoked accounts no longer block catalog refresh ([#14924](https://github.com/can1357/oh-my-pi/issues/14924)).
- Fixed clipboard-pasted image chips opening a nonexistent file instead of the image, including after
/move([#14927](https://github.com/can1357/oh-my-pi/issues/14927)). - Fixed clipboard-pasted image chips opening the auto-resized copy sent to the model instead of the image as pasted ([#14929](https://github.com/can1357/oh-my-pi/pull/14929))
- Fixed
omp token <provider> --account N --force-refreshprinting the stored token unchanged while it was still valid; it now re-mints that account. Security scans pinned to one account, including Codex Security cloud requests, refresh it after a 401 and may reuse a still-usable token minted in the previous five minutes, asomp auth-broker servenow also may for its clients' 401 recovery ([#14752](https://github.com/can1357/oh-my-pi/pull/14752) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed revived subagents moving to the parent's automatically chosen account and re-writing their whole prompt cache instead of staying on the account that served their earlier turns; a parent's explicit
/session pinstill moves them ([#14749](https://github.com/can1357/oh-my-pi/pull/14749) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed a fallback chain switching back to a usage-limited primary model every 30 minutes, failing a request each time, when the provider's usage report showed a later reset; the session now stays on the fallback until that reset ([#14757](https://github.com/can1357/oh-my-pi/pull/14757) by [@will-bogusz](https://github.com/will-bogusz))
- Fixed
/usage, the status line usage segment and/logouttreating every Google Antigravity account (and every Codex Team seat in one workspace) as the session's account, andomp usagenot listing such an account when its usage fetch failed ([#14900](https://github.com/can1357/oh-my-pi/pull/14900) by [@will-bogusz](https://github.com/will-bogusz)) - Fixed Tern showing an agent as finished when automatic context maintenance ends partway through a turn; omp now keeps reporting the turn's working state until the turn actually ends ([#14917](https://github.com/can1357/oh-my-pi/pull/14917) by [@wolfiesch](https://github.com/wolfiesch))
- Fixed the terminal title and Tern busy state staying in the working state after an interrupt cancels a scheduled retry or continuation before it starts ([#14917](https://github.com/can1357/oh-my-pi/pull/14917) by [@wolfiesch](https://github.com/wolfiesch))
- Fixed Anthropic web search through a custom
anthropic-messagesprovider sending a plain API-key request even though the provider's conversations use Claude Code request shaping; search now honors the model'sisOAuthlike the main conversation, so keys that only work with that shaping no longer fail with HTTP 429ratelimiterror([#14919](https://github.com/can1357/oh-my-pi/pull/14919) by [@farnoy](https://github.com/farnoy)) - Fixed Anthropic web search spreading the model's configured headers under its own without the main conversation's case-insensitive merge and enforced-header filtering, so a configured
authorizationheader could replace the credential or join it comma-separated on the wire ([#14919](https://github.com/can1357/oh-my-pi/pull/14919) by [@farnoy](https://github.com/farnoy))
Removed
- Removed the
PISUBPROCESSCMDenvironment variable; subagents run in-process and never read it ([#14632](https://github.com/can1357/oh-my-pi/pull/14632) by [@jorgoose](https://github.com/jorgoose))
@oh-my-pi/pi-mnemopi
Fixed
- Fixed new memories gaining graph links (
related_to,references,ctx) to memories that were already invalidated, superseded, or expired; proactive linking and consolidation now link only to memories recall can still return, so the graph stops growing toward retired memories ([#14427](https://github.com/can1357/oh-my-pi/pull/14427) by [@tickernelz](https://github.com/tickernelz)).
@oh-my-pi/pi-tui
Added
- Added a Compacts at fact to the model hub preview and a Roles-view Compaction limit action (
k) that edits the selected row's model limit through the newModelBrowserSource.compactionPointForandModelHubCallbacks.onCompactionPointChangehooks ([#14952](https://github.com/can1357/oh-my-pi/pull/14952) by [@H4vC](https://github.com/H4vC))
Fixed
- Fixed
/usagedashboard cards reordering their limit rows by usage; rows now keep the provider's window order (e.g. 5 hour → weekly → monthly) ([#14953](https://github.com/can1357/oh-my-pi/pull/14953) by [@H4vC](https://github.com/H4vC)) - Fixed Cmd+A, Cmd+C, Cmd+X and Shift+arrow selection doing nothing in the Tern prompt while Vim mode is in Insert mode ([#14954](https://github.com/can1357/oh-my-pi/pull/14954) by [@H4vC](https://github.com/H4vC))
What's Changed
- fix(coding-agent): keep Tern busy state through mid-turn compaction by @wolfiesch in https://github.com/can1357/oh-my-pi/pull/14917
- fix(ai): report omp -p usage to the auth broker before exit by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14899
- docs(coding-agent): correct agent() and workpool concurrency limits in eval docs by @jorgoose in https://github.com/can1357/oh-my-pi/pull/14634
- refactor(metaharness): share the conversation dump path between the edit runner and the dashboard by @jaredlyon in https://github.com/can1357/oh-my-pi/pull/14377
- refactor(metaharness): share the default job name between runner and server by @jaredlyon in https://github.com/can1357/oh-my-pi/pull/14384
- fix(robomp): kept failed pr reviews out of the review-once ledger by @roboomp in https://github.com/can1357/oh-my-pi/pull/14872
- fix(ai): pair an interrupted result for a hosted web-fetch call the transport cut short by @jchanghong023 in https://github.com/can1357/oh-my-pi/pull/14819
- fix(coding-agent): stop marking every Antigravity account as the session's in usage views by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14900
- fix(coding-agent): keep a fallback chain off a usage-limited primary until its reported reset by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14757
- fix(coding-agent): keep a revived subagent on the account that holds its prompt cache by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14749
- fix(ai): made omp token --account --force-refresh re-mint the chosen account by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14752
- fix(coding-agent): linked pasted image chips to stable blobs by @roboomp in https://github.com/can1357/oh-my-pi/pull/14929
- fix(catalog): unioned antigravity model rosters across oauth accounts by @roboomp in https://github.com/can1357/oh-my-pi/pull/14926
- fix(ai,coding-agent): honor custom Anthropic providers' OAuth mode and headers in web search by @farnoy in https://github.com/can1357/oh-my-pi/pull/14919
- fix(ai): hold accounts exactly at their reserve in reserve by @will-bogusz in https://github.com/can1357/oh-my-pi/pull/14765
- fix(todo): pause reminders for unanswered choice prompts by @mrmans0n in https://github.com/can1357/oh-my-pi/pull/14800
- coding-agent: treat a bolded question as a question in the todo reminder by @F0Rextasy in https://github.com/can1357/oh-my-pi/pull/14353
- fix: preserve explicit effort in short model selectors by @xiangnan0811 in https://github.com/can1357/oh-my-pi/pull/14554
- fix(coding-agent): keep broker-shared language servers after a subagent starts by @jorgoose in https://github.com/can1357/oh-my-pi/pull/14628
- fix(coding-agent): only the process-owning session shuts down the tiny-model client by @jorgoose in https://github.com/can1357/oh-my-pi/pull/14629
- fix(coding-agent): match rust-analyzer.exe paths when wrapping with lspmux by @jorgoose in https://github.com/can1357/oh-my-pi/pull/14630
- chore(coding-agent): remove unused PISUBPROCESSCMD by @jorgoose in https://github.com/can1357/oh-my-pi/pull/14632
- fix(plugins): warn when project plugin overrides fail to load by @oleg494 in https://github.com/can1357/oh-my-pi/pull/14573
- refactor(coding-agent): share POSIX shell argument quoting by @anatoli-tsinovoy in https://github.com/can1357/oh-my-pi/pull/14239
- fix(mnemopi): link new memories only to valid memories by @tickernelz in https://github.com/can1357/oh-my-pi/pull/14427
- fix(catalog): price Claude Haiku 5.5 on Cursor, gateways, and Copilot by @eggpeat in https://github.com/can1357/oh-my-pi/pull/14890
- feat(coding-agent): per-model compaction limits set from the model hub by @H4vC in https://github.com/can1357/oh-my-pi/pull/14952
- fix(tui): keep Tern native composer editing in Vim Insert mode by @H4vC in https://github.com/can1357/oh-my-pi/pull/14954
- fix(tui): keep provider window order on /usage dashboard cards by @H4vC in https://github.com/can1357/oh-my-pi/pull/14953
New Contributors
- @farnoy made their first contribution in https://github.com/can1357/oh-my-pi/pull/14919
- @mrmans0n made their first contribution in https://github.com/can1357/oh-my-pi/pull/14800
- @tickernelz made their first contribution in https://github.com/can1357/oh-my-pi/pull/14427
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.8.4...v18.8.5
Installation
curl -fsSL https://omp.sh/install | sh
bun install -g @oh-my-pi/pi-coding-agent
brew install can1357/tap/omp
irm https://omp.sh/install.ps1 | iex
$ tail ./comments.log
Comments (0)
Login with GitHub to post a comment
No comments yet. Be the first to comment!