Release · Oh My Pi · can1357

Oh My Pi v18.11.3

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

Release notes

Oh My Pi v18.11.3

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

Added
  • prepareQueuedMessages receives which queue (steering or followUp) a batch came from (#16026)

@oh-my-pi/pi-ai

Fixed
  • Fixed JSON Schema dereferencing rewriting literal values in const, enum, default, examples, and custom annotations, or treating property names as schema keywords (#15927 by @jchanghong023).
  • Fixed Anthropic requests hanging forever on Bun 1.3 when the upstream accepted the request but never sent headers: aborting the request (including the first-event timeout) now fails it, so the turn retries instead of waiting until the user interrupts it (#16010 by @ca-io-systems)
  • Fixed the auth gateway's POST /v1/chat/completions streams being dropped (terminated) after ~255 s without upstream output, e.g. while xAI generates a large tool call's arguments, which arrive only when complete; the stream now sends an SSE : keepalive comment every 15 s (#15940 by @radkawar)
  • Fixed Anthropic models with mid-conversation system messages (e.g. Claude Opus 5.5) receiving @file mention contents and hidden extension messages as a trailing system message instead of ending the request on the user's turn (#15881)

@oh-my-pi/pi-catalog

Changed
  • Renamed the built-in google-antigravity login option to "Google Antigravity (Gemini, Claude, GPT-OSS)" so it is distinguishable from similarly named third-party plugins and no longer implies support stops at Gemini 3 (#15998 by @savanne-kham).
Fixed
  • Fixed Command Code's z-ai/glm-5.3-flash failing every request with "not available on this endpoint": the catalog routes it to chat completions, the only endpoint Command Code lists for it (#15922 by @jasonharrison)
  • Fixed /handoff failing with 400 Provider returned error on OpenRouter's hosted Muse Spark 1.x and Muse Wonder models: requests no longer send a tool_choice the upstream Meta backend rejects (#15910)
  • Fixed OpenCode Zen bringing back retired bundled models from an authoritative model cache, and dropping drop-listed models such as gemini-3.7-flash when a refresh fails after an upgrade (#15770 by @adi-IL)

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

Breaking Changes
  • Extension ui.approve() hosts receive an optional session choice label and answer "once", "session", or "deny" instead of a boolean
Added
  • Added imageCountBudget to custom models and modelOverrides in models.yml, so a custom gateway can state its host's image limit instead of the default of 5; past that limit the oldest images were dropped on every new image, which rewrote the provider's prompt cache (#15002, #15969 by @aramalipoor)
  • The status line names the active profile next to the π brand (π-work), so sessions from different profiles are distinguishable at a glance; the default profile is unchanged (#15622 by @matthewrball)
  • Added opt-in prewalk.auto (off, suggest, or on): the native judge decides per task whether to arm a prewalk handoff to prewalk.autoTarget, and the next task starts back on the planning model (#16026 by @taibenvenuti)
  • Added /seance and the task seance agent: consult a saved session read-only, in place, without resuming it or copying its artifacts; pick the source and an optional model from pickers, and send follow-ups to the consultant (#15036 by @anatoli-tsinovoy)
Changed
  • Tool approval prompts list Approve, Approve <tool> for this session, and Deny again: with an empty composer, pick with the arrow keys and Enter; typing in the composer denies and steers instead, and the Deny row reads "Deny and send message" while you do
Fixed
  • Fixed the Isolate Subagents setting description implying that all tasks run isolated; each task must opt in with isolated: true (#15987).
  • Fixed read labeling re-encoded images with the display format instead of the source file's format; it now identifies both when they differ (#15890).
  • Fixed omp -p and task subagents reporting a clean finish with an earlier answer when a context overflow could not be compacted enough to retry; the overflow error is now the run's outcome (#15897 by @nhthung)
  • Fixed Cursor's Shell tool killing commands once its block_until_ms wait elapsed; the wait no longer sets the kill deadline, which comes from Cursor's hard_timeout or the bash default (#15898 by @nhthung)
  • Fixed an interrupted prompt's late setup cleanup marking the next prompt idle early, allowing overlapping submissions and releasing sleep prevention mid-turn (#15946)
  • Fixed hashline REM hiding the path-recovery warning when a nonexistent path matched an earlier-read file (#15957).
  • Fixed tool downloads (sd, sg, yt-dlp, trafilatura) failing with GitHub API error: 403 on a machine whose egress IP has spent GitHub's anonymous 60/hour budget; the release lookup now sends GITHUB_TOKEN/GH_TOKEN like omp's other GitHub API call sites (#15981 by @iacore)
  • Background local memory extraction now stops after one bounded retry budget on repeated OpenAI-compatible 429 responses instead of multiplying transport, provider, and completion retries (#15826).
  • Fixed a message-result subagent resumed by typing into its focused session leaving agent://<id> empty and never reporting its final reply to the parent (#15948)
  • Fixed read of an RSS or Atom feed showing Untitled for every item and dropping feed titles, descriptions, dates, and RSS item links (#15954)
  • Fixed read showing a binary notice instead of an HTML page when a server sends unlabeled gzip to the first request but decodable HTML to the second (#15956)
  • Fixed read returning a homepage's site-wide feed or a page's site-wide llms.txt alternate instead of the requested page (#15955).
  • Fixed ast_grep

…