Release · Oh My Pi · can1357

Oh My Pi v18.11.2

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

Release notes

Oh My Pi v18.11.2

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

Added
  • agent_start carries resumedToolCallIds when a continued run first executes the calls of an unpaired assistant tail
Fixed
  • Cancelling an ask after a background job finishes now reports the user cancellation instead of telling the model to retry a skipped tool (#15985)

@oh-my-pi/pi-ai

Breaking Changes
  • resolveGatewayApiKey and buildGatewayApiKeyResolver (@oh-my-pi/pi-ai/auth-gateway) take the request's route options ({ storage, client? }) instead of an AuthStorage, their resolver callback receives the resolved credential, and resolveGatewayAccount takes that credential (#15900 by @alphastorm)
Added
  • Added scoped clients to startAuthGateway (clients, setClients): each client bearer is limited to its own models and OAuth accounts, with no fallback to other accounts or API keys, and request log lines name the client and the credential a request started on (#5098, #15900 by @alphastorm)
  • Added experimental native image judgments for TypeSafe Jev's jev-latest, jev-preview, jev-1.13.0, and jev-1.14.0, plus OpenRouter's typesafe/jev-1.13, typesafe/jev-1.14, and ~typesafe/jev-latest models; images outside Jev's documented size bounds fall through to a vision chat judge instead of failing (#15887 by @anatoli-tsinovoy)
Fixed
  • Fixed error results from non-first-party providers regaining partial output the provider had discarded; an error with empty content now stays empty (#14516, #14572 by @oleg494)
  • Fixed the auth gateway's POST /v1/audio/speech answering 502 for requests the speech adapter rejects (unsupported format, over-long input); they now get 400 invalid_request_error (#14508 by @F0Rextasy)
  • Fixed a single-string tool call with two or more mislabelled string fields silently dispatching whichever field came first in the JSON; such ambiguous calls now fail validation and the model sees its own arguments back (#14414 by @F0Rextasy)
  • Fixed GLM-5.2 on Ollama Cloud losing its reasoning between turns; Ollama Cloud now keeps assistant thinking in history for models verified to accept it (#14440 by @Dante-dan)
  • Fixed GPT Image generation and edits failing on gateways that validate request parameters, such as LiteLLM; response_format is no longer sent to GPT Image models (#14619 by @jimhester)
  • Fixed OpenRouter errors such as "Access denied by security policy" dropping the routed upstream's own explanation from error.metadata.raw (#10906, #14435 by @F0Rextasy)
  • Fixed GitHub Copilot usage reporting an AI-credit allowance as "Premium Requests" in request units; the unit each billing item reports is now honoured (#13849, #14501 by @F0Rextasy)
  • Fixed an OpenAI-compatible server's finish_reason: "repetition" or stop_reason: "repetition_detected" not being treated as a thinking loop, so the degenerate partial reasoning was kept and replayed into the next turn (#12525, #14535 by @F0Rextasy)

@oh-my-pi/pi-catalog

Added
  • Added keep-bundled-names catalog attribute to preserve static model display names during discovery
  • Updated openai-codex provider configuration to prevent model name regressions during live discovery
Changed
  • GPT Image models (gpt-image-*, chatgpt-image-*) now classify as their own gpt-image family instead of gpt or chatgpt, so GPT chat-model rules no longer apply to them (#14619 by @jimhester)
Fixed
  • Fixed OpenCode Zen Gemini 4 Argon failing with an unsupported protocol; it now uses the native Gemini endpoint (#15977).

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

Added
  • Added lsp.requestTimeout setting to configure wait durations for language server diagnostics and requests
  • Added omp auth-gateway serve --clients=<file>: per-client bearer tokens, each limited to listed models and broker OAuth accounts with no fallback to other accounts or API keys, re-read while serving (#5098, #15900 by @alphastorm)
Changed
  • The lsp tool now uses lsp.requestTimeout to dynamically adjust both call deadlines and project-aware diagnostic wait times, with support for per-call overrides
  • Reduced CPU overhead during syntax checks and automatic edit repairs (#15904 by @iliaal).
  • Reduced status-line refresh overhead while subagents have long conversations (#15874 by @iliaal).
  • Agents now send todo updates alongside their next tool call instead of spending a separate model turn on them (#15402 by @will-bogusz)
  • The Shared Language Servers setting now says what it does: each connection gets its own server, and a released one is reused while another omp instance keeps the project's mux running (#14633 by @jorgoose)
  • Memories saved explicitly through the extension memory.save API are now stored as stated rather than unknown, so they rank as deliberate memories in Mnemopi recall (#13824 by @sjawhar)
Fixed
  • Fixed prewalk switching models during read-only MCP lookups through write xd:// when the server marks the tool read-only (#15994)
  • Fixed Ctrl+C printing 9;5u in the shell after force-quitting omp with a third Ctrl+C while it was still closing the session
  • Fixed Smart unexpected-stop recovery continuing finished answers, which added extra "nothing more to add" turns
  • Fixed grep searching only the first 4 MB of a file named directly, so later matches were reported as absent; the whole file is now searched, and a multiline pattern, which still reads only the first 4 MB, says so in its no-match headline (#15942)
  • Fixed browser uploadFile

…