Release · Oh My Pi · can1357

Oh My Pi v18.8.8

What's new in Oh My Pi v18.8.8, released Oct 10, 2026 (). Newer: v18.12.6 (Oct 21, 2026)

Release notes

Oh My Pi v18.8.8

@oh-my-pi/pi-agent-core

Added
  • Added Agent.setModelResolver() to fit every model an agent adopts (via setModel, starting with the current one) before it is used (#15048 by @H4vC)
  • Added CompactionSettings.baseWindowTokens: when set, resolveThresholdTokens() scales its percentage or reserve-based threshold from that base instead of the full context window (#15065 by @H4vC)
Fixed
  • Fixed OpenAI V1 remote compaction re-attaching a prior Anthropic native payload after a successful compact (#15041 by @PaleRoses)
  • Fixed resolveThresholdTokens() clamping a positive thresholdTokens to baseWindowTokens; a fixed threshold is checked against the real window, and the base only rescales the percentage and reserve policies (#15074 by @H4vC)
  • Fixed resolveThresholdTokens() clamping a fixed thresholdTokens at 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 by @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 by @will-bogusz)
  • Fixed truncated Factory Droid Gemini responses ending as a hard error or a half-received tool call instead of being retried (#15103 by @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 by @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 by @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 by @will-bogusz)

@oh-my-pi/pi-catalog

Added
  • Added the connection-bound-native-history rule axis for Responses hosts that reject native history items from an earlier connection, set for GitHub Copilot (#15148 by @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 by @will-bogusz)

@oh-my-pi/pi-coding-agent

Added
  • Added /jobs kill <id>|all to cancel a running background job (or every one this session owns) from the command line, even while the agent is busy (#14160 by @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 become PLACEHOLDER_N, and extension or MCP payloads are redacted whole, with the same original always mapping to the same token across files (#15077 by @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 by @H4vC)
  • Added message times to /dump transcripts (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 all files for subagents still running, so a stuck subagent can be diagnosed from the archive (#15121 by @H4vC)
  • Added contextFiles.extra to load extra instruction files, such as AGENTS.local.md, beside the usual context file (#15147 by @Shadorain).
  • /annotate opens the note you are writing, a file or typed-prompt source, or (for local diff reviews) the current working-tree file in $VISUAL or $EDITOR with the external-editor key (Ctrl+G by default); a file source is saved back and its notes follow the edited text (#15151 by @Shadorain)
Changed
  • A /models compaction 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 by @H4vC)
  • A token compaction limit set in /models (or compaction.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, or compaction.thresholdPercent of it), instead of the exact point. Plain numbers saved since 18.8.5 therefore compact earlier; rewrite one as "f<tokens>" (or type f400k in the hub) to keep it an exact trigger. The /models limit 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 by @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 by @H4vC)
  • Fixed the browser tool prompt not documenting observe()'s viewportOnly and includeAll options, or that open/close/run timeouts are seconds clamped to 1–300 while waitFor* timeouts are milliseconds (#15104 by @will-bogusz)
  • Fixed browser relay pages opened in the background (browser.newPage({ background: true }) in tab.run

…