OMP
Changelog
Oh My Pi, erweiterter Terminal-Coding-Agent auf Basis von Pi
Diese Seite zeigt höchstens die 120 neuesten Releases aus offiziellen Quellen. Sie beansprucht keine vollständige Versionshistorie.
Die Versionshinweise werden im englischen Original angezeigt.
Diese Ansicht zeigt 114 von 120 erfassten Einträgen. Ältere Einträge sind hier nicht geladen.
Neueste Releases (114)
v18.2.9
22. September 2026
- •Fixed stream finalization when a provider ends without emitting a completion or error event, ensuring the final assistant message is preserved and corresponding message lifecycle events are emitted.
- •Fixed tool execution being incorrectly skipped when host steering callbacks reject during a tool batch.
- •Fixed stream hangs and preserved the original error when host aside-commit or discard callbacks fail.
- •Added Claude saved-reset discovery and redemption, including session-only resets, grant eligibility, expiry, and safe retry handling.
- •Fixed custom OpenAI-compatible extension streamers failing when no compatibility configuration was provided.
- •Fixed local provider sign-in for LM Studio, llama.cpp, and vLLM so an empty API key is not treated as successful authentication.
- •Fixed Vercel AI Gateway models backed by non-Anthropic providers failing tool calls because of strict schema validation; requests now retry with compatible non-strict tool handling.
- •Improved AWS Bedrock authentication by refreshing expired AWS SSO sessions automatically, reducing the need to run
aws sso loginagain. - •Fixed Bedrock tool-enabled requests when tool descriptions are included in the system prompt.
- •Improved Alibaba Token Plan (Beijing) quota reporting across workspaces and made gateway rejection codes visible in error logs.
- •Fixed the tool-call loop guard so repeated identical calls continue to be redirected after the detection threshold is reached.
- •Fixed valid required null values inside tool argument unions being removed before dispatch (#12523 by @cswenor).
- •Signing in to a local provider (lm-studio, llama.cpp, vllm) with an empty key paste no longer reports the provider as logged in while its requests go out unauthenticated. (#12436 by @xiechimon)
- •Fixed every turn failing with
400 Invalid schema for function '<tool>' … Missing '<param>'on Vercel AI Gateway models served from a non-Anthropic upstream (e.g.openai/gpt-5.6-sol): the translated strict-tool rejection now triggers the existing non-strict retry instead of failing the turn (#12760 by @primitive-type). - •Expired AWS SSO access tokens are now refreshed via the SSO OIDC
refresh_tokengrant instead of failing withsso-token-expired, so Bedrock profiles keep working betweenaws sso loginruns the same way the AWS CLI does (#12736 by @nwbb).
v18.2.8
21. September 2026
- •Added support for text embeddings, document reranking, video generation, image generation across multiple providers, audio speech synthesis, and audio transcription services.
- •Added support for the System One judgment API, including configurable request headers for proxy routing and custom authentication.
- •Updated API response cost reporting to use aggregate usage totals.
- •Model list responses now optionally include a model kind.
- •Fixed detection of Claude usage-limit errors.
- •Expanded OpenRouter provider support with embedding, reranking, video generation, text-to-speech, and speech-to-text capabilities, including five new speech-to-text models.
- •Added speech-to-text support to the OpenAI provider.
- •Added comprehensive browser automation tools for accessibility auditing, React inspection, console and network monitoring, performance tracing, semantic DOM queries, tab management, screen recording with cursor overlays, downloads, custom initialization scripts, persistent storage, and WebMCP cross-frame tool discovery.
- •Added support for buffered cloud transcription with OpenAI-compatible models.
- •Added visual change detection for video processing, including FFMPEG analysis and SVG overlays.
- •Added support for declaring native judges through custom providers using the
typesafeandopenrouter-decisionsAPI values, with configurable base URLs, API keys, and headers. - •Expanded browser security and resilience controls with configurable HTTPS error handling, domain allow-listing, and automatic tab recycling when security-sensitive state changes.
- •Updated background job notifications to deliver output as follow-up messages and discourage unnecessary polling.
- •Expanded the bash tool's documented auxiliary utilities and removed its truncation footer notice.
- •Improved responsiveness in long sessions by significantly reducing the time required to scan provider context for credential patterns.
v18.2.7
21. September 2026
- •Anthropic streaming and provider request helpers must now be imported from
@oh-my-pi/pi-ai/providers/anthropicinstead of the package root. - •Moved the public
NO_AUTH_SENTINELexport fromproviders/openai-sharedtoauth-retry. - •Anthropic organization-level OAuth permission errors now reliably rotate to sibling credentials and persist blocks across usage reports.
- •Fixed error handling for provider responses that do not include token usage information.
- •Added model-kind and grounded-search capability metadata, along with catalogs for local inference and search-engine models.
- •Added OpenRouter image-model discovery and live TypeSafe judge-model discovery.
- •Added the
buildDiscoveredModelhelper for defining custom providers. - •Added glob-based patterns for identity overrides.
- •Updated input cost for TypeSafe models to 0.042
- •Improved model routing and thinking-policy handling for llama.cpp Qwen models, Bonsai lineage aliases, and custom provider names.
- •Image-generation overrides now use model selectors, and web-search CLI overrides use --model instead of --provider.
- •Removed the bash tool's env parameter.
- •Eval judge(state, questions) is now awaited and returns answers directly; JudgmentHandle and judgment support in wait() have been removed.
- •Added
findtool for semantic workspace searching, allowing agents to locate behaviors and symbols using natural language - •Added
findCLI command for performing semantic workspace searches
v18.2.6
18. September 2026
- •Fixed Anthropic prompt-cache head re-baselining on every memory recall refresh: the system breakpoint now anchors on the last stable segment instead of the volatile recall suffix, and the stable-system fingerprint ignores recall blocks, so a recall refresh re-bills only the suffix instead of the whole tools+system head.
- •Fixed auth-broker client config resolution failing silently on Windows when reading the token file or
config.yml; reads now usenode:fsinstead ofBun.file. - •Fixed clipboard paste stalling on an empty clipboard; image and text clipboard reads now run concurrently so the empty-clipboard status surfaces after the slower read instead of the sum of both.
- •Fixed memory recall blocks carrying a minute-resolution
Current timestamp that dirtied the cached system prompt on every refresh; recall rows already carry dates, so the stamp is removed. - •Fixed
omp auth-broker tokenandomp auth-gateway tokenexiting silently without creating a token on Windows when no token file exists yet; token and config reads now usenode:fsinstead ofBun.file. - •fix(auth-broker): use node:fs for token and config reads on Windows by @H4vC in https://github.com/can1357/oh-my-pi/pull/12390
- •docs(changelog): restore contributor attribution for #12177 and #12236 (@shivamklr) by @shivamklr in https://github.com/can1357/oh-my-pi/pull/12396
- •fix(ai): keep prompt-cache head stable across memory recall refreshes by @H4vC in https://github.com/can1357/oh-my-pi/pull/12431
- •fix(coding-agent): run clipboard image and text reads concurrently on paste by @H4vC in https://github.com/can1357/oh-my-pi/pull/12447
- •fix(ai): remove dead breakpoint locals in head-caching recall test by @H4vC in https://github.com/can1357/oh-my-pi/pull/12453
- •fix(build): pin find-msvc-tools to 0.1.12 for Windows cc compat by @H4vC in https://github.com/can1357/oh-my-pi/pull/12455
v18.2.5
18. September 2026
- •Improved agent performance by reducing redundant tool-schema processing during repeated model calls and optimizing streamed tool-call argument parsing.
- •Added support for templating and custom base and authentication URLs in OAuth flows.
- •Fixed Anthropic prompt-cache breakpoints stalling when conversations include mid-conversation tool changes, preventing growing message tails from being unnecessarily re-billed as uncached input.
- •Added the
stencilauthentication provider foromp stream, supporting OAuth code + PKCE sign-in withauth.stencil.so, configurable viaSTENCIL_API_KEY,STENCIL_AUTH_URL, andSTENCIL_BASE_URL. This is an authentication-only provider, not a model provider; OAuth-code login configuration also supportsbase-urlandauth-urlnodes with{base}and{auth}URL placeholders. - •Corrected Yolo-Auto metadata for Qwen Flash:
qwen3.8-flashand the paidyoloroute now report the documented 256K context window and use the Qwen chat-template reasoning dialect, withqwen3.8-flashas the provider default. - •Moved terminal UI modules—including themes, tool renderers, chat, overlay, status-line, composer, setup wizard, and Git/PS/debug apps—to
@oh-my-pi/pi-tui. The corresponding@oh-my-pi/pi-coding-agentsubpaths no longer exist; names re-exported from the package root remain unchanged. - •Added
omp streamfor livestreaming terminal sessions atlive.omp.sh/<your Stencil username>, with viewer chat, pane-per-session display for sessions in the same directory, screen redaction, and configurablestream.serverUrlandstream.redactPatternssettings. Use--serverto override the stream server,--titleto set a title, and--no-tuito retain the line-based log interface. - •Added Stencil account support to
/login.omp streamuses a signed-in Stencil account orSTENCIL_API_KEYfor channel ownership and authentication. Sensitive environment, dotenv,secrets.yml, credential-shaped, and configured pattern-matching values are redacted before screen data is transmitted. - •Added faster keyless web search fallback by prioritizing the default keyless Parallel provider ahead of Perplexity.
- •Improved parent IRC message prompts to make interruption handling more reliable.
- •Improved subagent task labels and plan filenames to use concise, action-oriented descriptions.
- •Updated CLI byte sizes to use decimal KB units and made duration displays coarser and easier to read.
- •Fixed
editauto-repair waiting up to 60 seconds when thesmolmodel does not respond; it now times out after 20 seconds and reports repair start and timeout details. - •Fixed subagents leaving queued parent messages behind after tool interruptions.
- •Fixed a subagent burning its whole run on
yieldcalls that never finish it: an incremental-onlyyieldturn no longer bypasses the request budget, and the forced finalyieldends the run (#12351 by @pedropaulovc).
v18.2.4
17. September 2026
- •Added the
judgmentmodule for typed questions over JSON state, including choice, yes/no, and score judgments through theJudgeinterface. - •Added
TypeSafeJudgesupport with TypeSafe System One authentication, credential rotation on unauthorized responses, and retry-aware backoff. - •Added
TextJudgeandchatTextBackendfor model-based judgments, with structured state rendering and safeguards that prevent embedded requests from being executed. - •Added automatic format-correction retries to
TextJudgewhen models return malformed output. - •Added the
guardStateoption toTextBackendto control whether safety guidance is included in prompts. - •Added
typesafeauthentication for TypeSafe System One judgments via theTYPESAFE_API_KEYconfiguration and API-key validation against the TypeSafe models endpoint. - •Added an optional live generation speed readout via
composer.tokenRate, showing smoothed tokens-per-second output in the working row and keeping the rate visible between turns. - •Added TypeSafe provider support through
/login typesafeorTYPESAFE_API_KEY. TypeSafe can power thinking-level detection, unexpected-stop detection, and AI-assisted git staging with calibrated judgment probabilities; configureproviders.judgmentProviderasauto,typesafe, orllmto select the judgment backend. - •Added the
judge(state, questions)evaluation helper for Python and JavaScript cell code, supporting typed choice, boolean, and score judgments. It returns a handle whose.wait()method provides answers and probabilities, using TypeSafe when configured and available or a fallback chat model otherwise. - •Unified thinking-level detection, unexpected-stop detection, and AI-assisted staging around a shared judgment system with automatic fallback across configured models when TypeSafe is unavailable or cannot complete a request. AI-assisted staging now evaluates files as a single batched judgment while preserving one yes/no decision per file.
- •Fixed inline images disappearing or temporarily blanking when resizing the terminal in kitty and Ghostty.
v18.2.3
17. September 2026
- •
stream()andstreamSimple()support asynchronous model header resolution for each request attempt, including authentication retries and cancellation. - •Provider login prompts can request masked entry with
secret: true. - •Models can carry deferred request-header resolvers, and model managers can reconstruct omitted cached headers from authoritative local configuration without persisting credentials.
- •Config-backed headers now resolve asynchronously through
ModelRegistry.getProviderHeaders()orresolveModelHeaders(); removed the synchronousconfig/model-config-valuesmodule. - •Removed the unused
ConfigFile.getMtimeMsAsync(),tryLoadAsync(),loadAsync(), andloadOrDefaultAsync()methods. - •Custom SQL session clients must support transactions for atomic renames.
- •Type
^to tag a model for delegation, with atomic display-name chips and session-persistedm1,m2, … agents available to task and eval. - •Provider login and setup support masked secret prompts; RPC rejects secret prompts rather than requesting ordinary input.
- •Shell-backed API keys and headers resolve asynchronously without freezing terminal input or running during catalog construction.
- •macOS process discovery now retains the complete PID list when locating executables and descendants. (#12290 by @iliaal)
- •Reduced snapshot-recording stalls when a session retains large file histories. (#12279 by @iliaal)
- •Cancelled background jobs remain tracked until execution finishes, so cleanup cannot report completion prematurely after retention expires. (#12278 by @iliaal)
- •Fixed localized edits rewriting unrelated bytes in files with invalid UTF-8; these edits now fail without modifying the file. (#12277 by @iliaal)
- •Fixed sloppy edits crashing with a char-boundary panic instead of reporting a match error when the file contains multibyte (e.g. CJK) text.
- •Fixed retry timing reliability in agent sessions by ensuring sleep durations are monotonic
v18.2.2
16. September 2026
- •Added configurable
baseUrlsupport forbedrock-converse-streamrequests, enabling Amazon Bedrock providers and compatible custom providers to use VPC or PrivateLink endpoints, FIPS hosts, and internal gateways, including endpoints mounted under a path or authenticated with query parameters. - •Corrupt credential databases are now backed up privately and recreated instead of preventing startup; signing in again restores credentials.
- •Fixed malformed Anthropic thinking signatures that could freeze sessions at 100% CPU.
- •Fixed Anthropic-compatible gateway tool-call handling so client-declared tools are reported with
stop_reason: "tool_use"and already-executed native provider tools are not exposed for clients to run again. - •Fixed gateway session isolation when clients omit a session key, preventing one conversation's retained provider state from affecting another.
- •Fixed retained provider state across credential switches so account-specific capabilities are re-evaluated while reusable endpoint capabilities remain available.
- •Fixed session retention limits closing provider state while a request is still streaming.
- •ChatGPT accounts that have exhausted a plan's usage window but still have available Codex credit can now continue to be selected for Codex requests.
- •Cursor requests now honor explicit max-mode markers on wire-backed models instead of inferring the mode from the model suffix.
- •OpenAI-compatible chat responses containing only structured tool calls now report time to first token correctly.
- •OpenAI-compatible model discovery now fills in reasoning-effort tiers for unrecognized models using the shared catalog’s published reasoning options, while preserving explicit discovery metadata and reviewed model rules.
- •Fixed recovery of corrupted model caches so private backups are preserved and concurrent recovery cannot overwrite a cache that has already been restored.
- •Fixed pricing for Devin (SWE-2, SWE-1.7, and GLM-5.2 High) and Kimi Code models when upstream discovery omits cost information. SWE-2 now reflects its promotional pricing through December 31, 2026, then switches to list pricing on January 1, 2027.
- •Fixed pricing and chat routing for Devin Fusion models so composite models use their own headline rates and supported Fusion lanes connect directly instead of failing through an incompatible routing path.
- •Expanded built-in secret obfuscation to detect credentials in connection URLs regardless of environment-variable name, including PostgreSQL, MongoDB, MySQL, Redis, AMQP, and other supported schemes.
v18.2.1
16. September 2026
- •Added optional queued-message preparation with cancellation-safe delivery and appended context (#11835 by @andrebrait).
- •Fixed streaming CPU blowup on long turns: per-delta
message_updatesnapshots now deep-clone only the blocks the stream actually touched instead of the entire accumulated message, eliminating the quadratic cloning work that could freeze the TUI for tens of seconds to minutes while a subagent streams (#10605). - •Native compaction now carries an existing local summary into the first provider-native request instead of losing the summarized history. (#11525 by @rpie9)
- •Subsequent native compactions preserve messages appended between a speculative snapshot and its commit, while honoring
/clearboundaries. (#11525 by @rpie9) - •Native replay compatibility checks the active provider and Responses API independently of whether future native compaction is enabled. (#11525 by @rpie9)
- •Fixed compaction retaining oversized older steps beyond the recent-history budget and skipping previously retained history on later passes, preventing long tool loops from freeing enough context (#11365).
- •Fixed Codex remote compaction retries for both Bun and proxy socket-closure messages and stopped falling back to the unsupported
/responses/compactendpoint after V2 failures. - •Added support for Cerebras Qwen 3.8-27b with improved reasoning effort control
- •Added optional host browser-session callbacks for Perplexity SSO login, keeping browser automation out of pi-ai and preserving email and authenticator-code login.
- •Fixed the auth-gateway sending a model's own reasoning back to Anthropic as demoted plain text, which tripped the
reasoning_extractionclassifier on Fable, leaked reasoning into visible answers on Opus, Sonnet and Haiku, and broke the prompt cache prefix on every tool-calling turn. Replayed assistant turns now carry the model id the request resolves to and astopReasonderived from the turn's own tool calls, so same-model thinking blocks keep their signatures and replay natively (#12115 by @Zhu-Aemon). - •Fixed custom OpenAI-compatible Responses streams crashing on omitted delta payloads or reasoning-summary fields, and recovered text delivered only in completed snapshots (#11863 by @moodiness).
- •Fixed streaming CPU blowup on long Responses turns: per-delta content-index lookups are now O(1) instead of re-scanning the accumulated content blocks, eliminating the quadratic work that could freeze the TUI for tens of seconds to minutes while a subagent streams (#10605).
- •Fixed sessions permanently wedged by
400 Invalid signature in thinking blockafter a failover proxy swapped upstream models mid-conversation (e.g. Claude -> GLM -> Claude): when the unsigned-demotion retry fails identically, the anthropic-messages transport now retries once with replayed thinking dropped and pins that mode for the session, so the conversation continues without starting a new session (#12006 by @Damin-Lee). - •Fixed OpenAI Codex backend rejecting requests with HTTP 400 (
string_above_max_length) when replaying tool call IDs exceeding 64 characters or containing composite delimiters (|,\n) by sanitizing and deterministically clamping call IDs on the wire (#11342). - •Fixed OpenRouter multi-turn tool-call sessions failing with
400 Referenced reasoning item ... was not found or has expiredon Meta Muse Spark models by suppressing reasoning reconstruction when history is filtered and synthetic replay is disallowed, while preserving Anthropic and DeepSeek replay (#10966).
v18.2.0
15. September 2026
- •Assistant turns from Anthropic-compatible hosts (direct, or via OpenRouter's
reasoning_details) carryupstreamModel, the serving model id recovered from the signed thinking block, so callers can detect a router substituting a different model than requested. - •Fixed OpenCode Go window-limit 429s (
5-hour/Weekly/Monthly usage limit reached. Resets in …) not pinning the exhausted credential to the server-stated reset; the window phrasing is now covered by a regression test over the rotation classifier. (#12091 by @H4vC) - •Removed
getCatalogProviderEntryand theCATALOG_PROVIDERSconstant in favor ofproviderEntryandproviderEntries - •Added support for DeepInfra, LiteLLM, Qwen Portal, SiliconFlow, and SiliconFlow-CN providers
- •Added support for Gemini 3.8 Flash models
- •Cached provider catalogs restore policy-versioned materialized models instead of rebuilding each row on launch.
- •Model policy resolution reuses indexed rule matches and cached target results.
- •Model-aware delegation prompts reuse policy decisions until the model's identity or capabilities change.
- •Provider catalog entries (default model, env keys, discovery wiring) and the bundled fallback rows for providers that cannot be discovered at generation time (Anthropic, OpenAI Daybreak, xAI OAuth, Meta, Muse Code, Bedrock Mantle, Devin, Z.AI, Sakana, ai&, Abliteration, Yolo-Auto, GMI Cloud, Fire Pass, QwenCloud Token Plan, Cloudflare AI Gateway, GitLab Duo Workflow) now live in
src/compat/rules/providers/<id>.kdland compile intorules.json;KnownProvideris generated from them, and the generator bundles seed rows by each entry's declaredbundlepolicy instead of per-provider code. - •
Settings.getGroup()now returns shallow-frozen snapshots, reused until effective settings change. - •Removed
parseSSE,MCPToolsResponse, andMCPCallResponse;callMCP()now returns the sharedJsonRpcResponsewith anunknownresult instead of an unchecked generic payload. - •Added
ollamaweb search provider using Ollama's hosted web search API (POST https://ollama.com/api/web_search), authenticated viaOLLAMA_CLOUD_API_KEY(#3791). - •Added
readUrlsupport for Ollama model pages (ollama.com/<model>andollama.com/library/<model>), extracting descriptions, tags, and architecture metadata. - •
@upstreamrouting selectors accept tiered OpenRouter slugs (openrouter/google/gemini-3.8-flash@google-ai-studio/priority), andomp benchlabels each routed model with its upstream. - •
/skill:<name>in the composer becomes an atomic skill chip (icon + name, linked to its SKILL.md) once you finish typing it or accept it from autocomplete — it deletes as one unit and survives draft restores, like image chips.
v18.1.22
14. September 2026
- •400-request debug dumps now redact provider-specific auth headers (
x-goog-api-key,x-amz-security-token, and any header whose name carries a key/token/secret), not just a fixed allow-list, so a shared dump can no longer leak a live API key (#12007). - •Enabled assistant prefill support for Ollama models
- •OpenCode Zen GPT-6 Astra requests now use the Responses endpoint instead of failing through chat completions with HTTP 500 (#12030).
- •Hub message/job waits now always use the adaptive window (5s, lengthening to 5m across back-to-back waits); removed the
timeoutMsargument andasync.pollWaitDurationsetting. - •Added a privacy warning to memory reports reminding users to review data for secrets before sharing
- •
omp git//git:deletediscards the selected file's changes (press twice to confirm) — in the sidebar on a file or whole directory, in the diff pane on the shown file; untracked files are removed, staged files reset to HEAD - •Pressing
con a/btwanswer now shows a green "✓ Copied to clipboard" confirmation in the panel and history detail, and BTW history acceptsCtrl+/to switch panes (#12052 by @H4vC). - •Automatic session titles no longer draw from canned prompt examples.
- •Sessions titled by a local Ollama model (e.g. LFM2.5) no longer stay unnamed when the model's chat template spends the whole output budget on reasoning.
- •
/debugmemory reports now include numeric memory statistics instead of raw heap snapshots that could expose provider and MCP credentials. - •Multi-step logins (e.g. Perplexity email → code) now move the input field under the latest prompt instead of leaving it stuck beneath the first one.
- •Todo updates made through Eval's
tool.todo(...)now persist to the session, so they survive resume/rewind/fork and no longer trigger false incomplete-todo reminders. - •Native background security scans now accept provider-owned AWS authentication for Amazon Bedrock and Bedrock Mantle without requiring a stored OAuth account (#12013).
- •Fixed
extractRetryHintsleeping hours past the provider's stated wait when a timezone-naivereset attimestamp overshoots the relative retry hint: the skewed stamp is now ignored instead of winning longest-wins (#12070 by @H4vC). - •fix(catalog): route Zen Astra through Responses by @roboomp in https://github.com/can1357/oh-my-pi/pull/12032
v18.1.21
14. September 2026
- •Fixed Flatpak Chromium launcher executables (including
com.google.Chrome,org.chromium.Chromium, andio.github.ungoogled_software.ungoogled_chromium) soapp.pathis treated as a browser and gets managed Chromium profile handling - •Fixed Chromium
--user-data-dirhandling by normalizing--user-data-dir <dir>and relative profile paths to absolute--user-data-dir=...values before launch - •Browser automation now works alongside an already-running Chrome using an isolated profile, keeps requested profiles separate, and never kills reused browser processes.
- •First-use Chromium installation and browser operations no longer consume Eval's runtime timeout or reset its kernel while waiting.
- •Browser startup reuses a successful system-Chrome fallback instead of retrying an unavailable download during the same open.
- •Browser clicks and other interactions no longer stall when OMP-owned tabs are in the background, including after worker timeout recovery.
- •Added
getBrowserProfilesDir()(~/.omp/browser-profiles; XDG:$XDG_STATE_HOME/omp/browser-profiles) for profiles of Chromium browsers spawned by the browser tool. - •Timed out stalled Chrome-for-Testing metadata requests after 30 seconds when looking up download metadata
- •Concurrent browser installations share one download without replacing a running browser, and stalled downloads time out with partial files cleaned up for retry.
v18.1.20
13. September 2026
- •Fixed Windows OAuth sign-in failing on every attempt after an upgrade when a previous run left a stale native callback registration behind; handlers registered by older binaries are now recognized as owned and rolled back instead of blocking recovery (#11967 by @H4vC).
- •Fixed DeepSeek V4.1 Flash dropping image attachments on hosts without their own carve-out, so the natively multimodal model is no longer treated as text-only (#11992 by @infernix).
- •LiteLLM model groups keep the image input their deployment declares, instead of having attachments replaced with the "model does not support vision" placeholder (#11982, #11985 by @lz37).
- •Fixed OpenCode Zen/Go Muse Spark models failing every tool-call turn with a 400 "reasoning encrypted_content was not issued to this caller" error: the gateways proxy the Responses lane to Meta but can't round-trip encrypted reasoning, so those SKUs no longer request or replay it (#11928).
- •Added
collab.autoStart(off|view|control): every local interactive session hosts itself as it starts and rotates its room on/new,/resume, fork, or branch, so a phone or dashboard can reach any running session without running/collabfirst (#11908 by @alphastorm and @sorphwer). - •Added
omp collab list [--json]and/collab listto enumerate every live local Collab host (instance, generation, session, cwd, model, participants, relay/attention state, access) without exposing links, plusomp collab link <instanceId|pid> [--view]to fetch one generation-bound browser URL from a private per-room Unix socket/named pipe registry; room keys, write tokens, and URLs never touch disk (#6099; #11908 by @alphastorm and @sorphwer). - •Documented that native JS/TS hook factories must live in
.omp/hooks/pre/or.omp/hooks/post/(not directly in.omp/hooks/), and cross-linked the hooks and extension-loading docs (#11942). - •The hidden notice announcing a mid-session tool-availability change now states that it lists only what changed, so an additions-only notice no longer reads as the complete tool set and the model keeps using tools that are still callable (#11824 by @camjac251).
- •TTSR stream buffers now reset at every assistant message boundary, not only at turn start, so a
scope: textor tool-argument rule can no longer fire on a later message because of text streamed by an earlier response in the same turn (#11957 by @srobroek). - •Eval
completion()calls now use configured retry fallback chains when their role model fails (#11989). - •Eval
completion()fallback chains now also apply to unqualified role models, walk into a failed fallback's own model chain, stop atretry.maxRetries, and resolve session-sticky credentials with the session id (#11989). - •Eval
completion()fallbacks now keep depth-first chain order, inherit the failed candidate's effort for bare nested entries, and skip keyless candidates without spendingretry.maxRetriesbudget (#11989). - •Eval
completion()fallbacks reached at different efforts now each walk their shared descendants instead of truncating the later effort's path (#11989). - •Fixed ranged grep rejecting existing files with glob characters in their names (#11977).
- •Notified Collab guests when admitted prompts are discarded, including room retirement during a session change (#11908 by @alphastorm).
v18.1.19
13. September 2026
- •Added
Agent.getPendingToolResults()for reconstructing live displays before buffered tool results are persisted (#11868 by @serverinspector). - •Added opt-in host authorization and exact-once streamed child execution for discard-safe local reads.
- •
Tool <name> not foundnow also suggests mountedxd://devices, not just the advertised tool set, via the newsuggestFallbackToolNamesoption (#11516, #10109 by @oldschoola). - •Speculative stream sessions are now discarded when a hook or argument transform replaces a call's arguments while keeping its ID, instead of releasing deferred work planned from the original code (#11889 by @h4vc).
- •Charm Hyper accounts now report their remaining prepaid credit balance in
/usage(#11656 by @oldschoola). - •Fixed Kimi Code's 7-day rate-limiting window being mislabeled as "Total quota" in
omp usage, causing accounts whose monthly subscription pool is exhausted to appear 100% free while chat completions fail; parsedtotalQuotaadd-on packs into the true "Total quota" row when present, and recognized Kimi's HTTP 403access_terminated_erroras a credential-rotatable usage limit. (#11827 by @revofusion) - •Fixed provider streams that die after emitting
toolcall_startbut before any argument content failing validation with empty{}arguments; the uncommitted attempt is now discarded and retried (#11823 by @justdoGIT). - •Fixed Windows
zcode://(Z.AI coding-plan) OAuth sign-in never completing after a successful browser authorization: the native callback handler is now registered with a path the Windows shell can launch, so thezcode://zai-auth/callbackredirect reaches omp instead of being silently dropped by the browser (#11907 by @oldschoola). - •Codex OAuth login now accepts valid account tokens that expose an email but omit
chatgpt_account_id, without fabricating a workspace header (#11847 by @nguyennguyenit). - •Fixed Muse Code login failing when Meta returns no assigned subscription tier (
subs_tier_id/subs_tier_nameas null); sign-in now succeeds and usage is reported without a tier (#11843 by @John-Cusack). - •Added Charm Hyper as a built-in provider with API-key login, live model discovery, and per-model pricing, effort ladders, and limits read straight from its catalog (#11656 by @oldschoola).
- •Added default-off speculative execution for validated local reads, including reads projected from nested JavaScript and Python eval cells.
- •
/usagenow shows prepaid credit balances (e.g. Charm Hyper's100 credits left) on the provider cards and account summaries instead ofno data(#11656 by @oldschoola). - •Retry fallback chains now support per-model reasoning efforts: a fallback entry may carry an explicit thinking suffix (
"default": ["openai/gpt-5-mini:low"]), and pressington a fallback row in/modelssets or clears it. Bare entries keep inheriting the failing turn's effort. (#11842 by @H4vC). - •Added
task.agentServiceTierOverridesfor sparse exact-name service-tier overrides on task/eval agents, so selected agents can use priority/Fast mode without accelerating every subagent (#9668 by @alphastorm).
v18.1.18
11. September 2026
- •Anthropic server-side compaction as a
remotecompaction backend: model lines the beta supports (compat.supportsServerCompaction, rule-owned in the catalog: Opus 4.6+, Sonnet 4.6+, Fable/Mythos 5) on the official endpoint, resolved the way the provider routes requests, plus Anthropic-compatible routes withremoteCompaction.enabled, compact by re-issuing the live turn's own request — same system prompt, tools, and history, so it reads the prompt cache the last turn wrote — with thecompact_20260112edit paused after the summary and the harness summary prompt asinstructions. The instructions name where the retained tail begins so the summary covers only the history the rebuilt context drops. The API's summary is stored as the entry text and aspreserveData.anthropicCompaction, replayed natively on later Anthropic requests and read as plain text by every other provider; the retained tail comes from session entries as with a local summary. Contexts below 55k tokens (the API trigger floor plus margin) keep summarizing locally, and a response without a summary is a native failure, like the OpenAI lanes. An aborted compaction response is the abort (a cancellation, never a native failure) and an error response keeps its HTTP status, so auth and timeout classification match the OpenAI lanes; the block's opaqueencrypted_contentis persisted aspreserveData.anthropicCompaction.encryptedContentand replayed verbatim. - •
compact()now forwards the caller'soneshotRetryopt-out to every summarization oneshot; auto-compaction's outer retry loop no longer multiplies with the inner transient-failure retries. - •Anthropic server-side compaction (
compact-2026-01-12beta):anthropicCompactiononStreamOptionssends thecompact_20260112context-management edit, the streamedcompactionblock is surfaced as ananthropicCompactionprovider payload, thecompactionstop reason is a normal stop tagged instopDetails(exempt from the empty-completion retry), and usage sumsusage.iterationswhenever a compaction iteration ran. A user-role compaction summary carrying that payload replays as a leading assistantcompactionblock — folded into the retained assistant turn when one follows — with the beta and a never-firing strategy attached automatically; other providers keep reading the summary text. Everything compaction-related is gated on the model line (compat.supportsServerCompaction, rule-owned in the catalog) and on the endpoint the request actually reaches (supportsAnthropicCompaction: the official API for the first-party provider, resolved through Foundry /ANTHROPIC_BASE_URLreroutes, or an explicitremoteCompaction.enabledopt-in), so a rerouted session or an older model line falls back to the text summary instead of sending a block the API rejects. Caller-owned clients are gated on their own endpoint (the client'sbaseURL, or an explicitremoteCompaction.enabledopt-in when it exposes none) and receive the compaction beta per request, like the effort and control betas. A block held by its originating assistant message — a caller that appends the compacting response itself — replays at the head of that turn. The block's opaqueencrypted_contentis captured from the stream, kept on the payload asencryptedContent, and replayed verbatim. A compacting turn is priced per sampling iteration (like a server-side fallback turn), so a long-context tier applies only to an iteration whose own prompt crosses the threshold, never to the summed totals. - •Added historical decimation prompt-cache breakpoints every 15 user turns on Anthropic requests, so long conversations retain stable cached prefixes during branching, rewinds, and session resume (#11665 by @camjac251).
- •Defaulted Anthropic OAuth requests to 1h prompt-cache retention where supported, matching Claude Code subscriber behavior and preventing cache expiry during idle intervals (#11667 by @camjac251).
- •Fixed Codex HTTP response-body transport failures forwarded through Anthropic-compatible proxies being treated as terminal errors; replay-safe turns now use the existing transient recovery without re-executing completed tools.
- •GitHub Copilot Enterprise requests keep the Copilot CLI identity accepted by private Enterprise endpoints, and Business requests denied with HTTP 400
model_not_supportednow retry once as the Copilot CLI (matching the existing 403 fallback), restoring models that 18.1.17 rejected as unsupported (#11669). - •Fixed provider stream truncations reported as a bare
unexpected EOF(and other stream-parse diagnostics) classifying as terminal errors, so they now retry like every other transient transport failure (#11745). - •GitHub Copilot streams remember the working
Copilot-Integration-Idper credential after a denied chat identity retries as the Copilot CLI, so later streams start at the working shape instead of replaying the denial (#11669). - •Fixed Anthropic OAuth requests omitting the tool-array cache breakpoint, so tool definitions are now cached across session rewrites and sibling subagents (#11660 by @camjac251).
- •Fixed Amazon Bedrock OpenAI models rejecting image-bearing tool results by sending each image as a sibling user content block (#11681).
- •
supports-server-compactioncompat axis (compat.supportsServerCompaction): whether a model line accepts Anthropic server-side compaction (compact-2026-01-12). Class rules enable it for Opus 4.6+, Sonnet 4.6+, and Fable/Mythos 5 on every Anthropic-messages host; the default isfalse. - •OpenCode Go's DeepSeek Flash lanes (
deepseek-flash,deepseek-v4.1-flash) now declare image input. The gateway serves them with vision despite the IDs carrying no vision suffix, so the class-widestrip-image-inputrule was dropping attachments the endpoint reads; the modality is declared too, since live discovery seeds these lanes text-only (#11774 by @STRML). - •Amazon Bedrock OpenAI models, plus unclassified profiles such as opaque application-inference-profile ARNs, now carry the compatibility policy required to preserve image-bearing tool results (#11681).
- •DeepSeek V4.1 Flash requests now honor the documented 384K output maximum instead of being capped at 64K (#11769).
v18.1.17
10. September 2026
- •
Tool <name> not foundnow names a plausible intended target when the advertised set contains one, e.g.Tool mcp__abc123__xyz789_read not found. Did you mean read?. A model that mis-transcribes a long opaque tool name reliably keeps the trailing segment, which is the only part carrying meaning, so the miss becomes recoverable in the same turn instead of costing a round trip. Purely advisory — the suggestion is only ever a string in the error, never a dispatch target, so an unrecognized name still fails (#10109 by @oldschoola). - •Fixed the token estimator counting developer messages as free and ignoring images in user content, which let context budgeting, pruning and the compaction trigger read a transcript as far smaller than the one sent to the provider.
- •Fixed repeated local compaction omitting messages retained before the previous compaction record, while preserving original entry IDs and
/clearboundaries. - •Raised remote compaction request timeout from 3 minutes to 5 minutes so long Codex/gpt-6-astra compact streams can finish before the watchdog aborts them.
- •Fixed proxy responses dropping the cost the server reported; recorded costs are kept instead of being recomputed.
- •Fixed transient Python HTTP/2 stream resets and HTTP/1.1 chunked response interruptions being treated as terminal errors when forwarded by a proxy (#11160 by @cyriusweng).
- •Ollama cache hits now populate cached-token usage:
prompt_eval_cached_countfrom the/api/chatdone chunk maps tocacheRead, withinputreduced to the uncached portion, so status-linecache_turn/cache_hitsegments and cache-prefix audits report real hit rates instead of false misses. - •Fixed requests that run across a price change being costed at the newer rate; peak/off-peak estimates now use the rate in effect when the request started.
- •Fixed GitHub Copilot Business seats getting HTTP 403 on every model while the same token succeeds with a Chat client identity: chat and model-policy requests now identify as
copilot-chat, denied requests retry once as the Copilot CLI (copilot-developer-cli), andCOPILOT_INTEGRATION_IDpins theCopilot-Integration-Idheader up front; model discovery keeps the CLI identity and the 403 message names the identity and the remedies (#11372). - •Added DeepSeek cost estimates that follow published peak/off-peak rates.
- •Added dated, announced price changes to the catalog, so rates switch on their effective date (e.g. DeepSeek Pro moving to Flash rates).
- •Added Command Code as a built-in provider with API-key login, live model discovery, per-model pricing, native OpenAI/Anthropic-compatible routing, cache-aware token usage, and TTFT metrics (#11391 by @CherkaSSH).
- •Fixed Command Code models outside the verified effort registry offering unsupported reasoning effort controls, and bundled the live Command Code catalog so fresh installs resolve the default model without waiting for discovery (#11595 by @H4vC).
- •Fixed the bundled
deepseek-flashrow shipping without context limits: it now carries its documented 1M context / 384K output so offline context accounting enforces the real window. - •Unsent prompts cleared with Ctrl+C can now be recalled with Up, including pastes and images; disable Recall Cleared Drafts in settings to discard future clears instead (#11524 by @camjac251).
v18.1.16
9. September 2026
- •Codex SSE streams that end without a terminal completion event now retry when replay-safe and remain transient errors when partial output prevents replay (#11349).
- •
/renamewithout a title now generates a session name from recent conversation using the configured tiny model. - •Added opt-in experimental notes-backed context windows with persistent branch-local notes, searchable original session history, retained latest user requests, and a model-callable rollover tool, including in Code Mode.
- •
/loopaccepts--until '<cmd>'/--while '<cmd>'to gate each iteration on a shell command's exit status, so a loop can stop on real project state instead of only a count or duration. (#10858 by @andyhite) - •Read error and preview rendering now sanitizes tabs and Windows-style CRLF (e.g. ssh host-key failures, tab-indented fetched content) so raw output can no longer tear the result frame.
- •Unset
tinymodel roles now honor the configured@smolfallback in direct execution and the/modelsRoles view (#11311). - •Extension Control Center (
/extensions) search now acceptsjandk, so extensions likejira/jsonare searchable; barej/kno longer move the list selection (use arrow keys or the configuredtui.select.up/down) (#11350). - •Codex turns interrupted before terminal completion now auto-continue after resolved tool calls instead of stopping (#11349).
- •Fixed the status line's
pibrand/working segment double-padding the first separator, so every gap around a separator is a single space (#11103). - •
/handoffno longer leaves the TUI in a running state when completion races with delayed session events (#11263). - •Fixed legacy Pi extensions failing to load when calling
ctx.isProjectTrusted()in an event handler; the extension context now exposes it (alwaystrue, since OMP applies no project-trust gating) (#7955). - •Fixed Ctrl+Z jobs exiting successfully after
fginstead of restarting the TUI because terminal teardown left Bun without a referenced event-loop handle while waiting forSIGCONT(#8585). - •Extensions loaded by the npm CLI now apply settings overrides to the active session, so generated agents and model choices remain isolated between sessions (#11047 by @mgpai22).
- •Live task dispatch now reloads added, changed, removed, and deleted project task and retry settings before resolving subagents (#11191).
- •Reset
/loopiterations combined with--while/--untilno longer keep submitting without resetting when vibe mode is enabled while the condition command is still running; the loop now disables itself instead (#10858).
v18.1.15
9. September 2026
- •GitHub Copilot sign-in keeps the GitHub-owned Copilot CLI OAuth app on Enterprise domains: private instances run their own OAuth registry and reject the github.com-registered OpenCode client, which is now used only for public github.com sign-ins (#11285 by @H4vC)
- •GitHub Copilot sign-in uses the minimal-grant OpenCode OAuth app again (
read:useronly): GitHub renders each app's existing per-user grant on the consent page, so Enterprise organizations that block the Copilot CLI app's broad historic grant can log in as on 18.1.4. API request identity still mimics the Copilot CLI, and tokens minted by either app keep working (#11280 by @H4vC). - •GitHub Copilot plan/model-policy 403s no longer count as credential failures for credential-lifetime decisions: the token is valid, so stored credentials are preserved instead of wiped (#11280 by @H4vC).
- •Fixed custom
google-generative-aiproviders failing mid-turn model fallback when Gemini 3 tool calls are replayed without their original thought signature (#11270). - •Added
advisor.maxNotesPerUpdatesetting andWATCHDOG.ymlconfiguration (default4): allows reasoning verifiers to batch findings in a single review update without being rate-limited. - •Headless browser tabs now freeze when a turn settles so idle animated/WebGL pages stop burning CPU/GPU, resuming automatically on next use; tabs idle past
browser.idleCloseSec(default 30 minutes) are closed.persist: trueonbrowser.openopts a tab out of both (#8246 by @H4vC). - •When enabled (
task.showResolvedModelBadge), subagent model badges show the thinking-level icon, model name, and attached-advisor eye before the agent name in task, eval, job, and HUD rows. - •Task descriptions containing tabs no longer misalign or overflow task rows; tabs are expanded before measuring and rendering.
- •GitHub Copilot model-policy 403s (plan, model policy, org restriction) no longer delete stored credentials, so the provider stays listed in
/modelafter a per-model access denial instead of disappearing until the next/login(#11280 by @H4vC). - •Bash results no longer replace a failing command's output with the shell minimizer's lossy summary when the original capture cannot be persisted as an artifact; the raw diagnostics are kept so a failure stays actionable (#11081).
- •Fixed worker subprocesses failing to declare themselves as worker hosts before dispatching selectors, which prevented nested thread worker spawns during
/usagestats sync on multi-core systems. - •Fixed
/usagedisplaying a misleading generic database read failure when activity loading fails; the error detail is now sanitized, collapsed to a single line with shortened paths, and surfaced in the dashboard. - •Advisor notes now report rate limiting accurately, blockers always interrupt even after a lower-severity note in the same update, and deferred notes flush when the primary run completes, including after advisor quota exhaustion (#11062).
- •Fixed the built-in clangd registration omitting CUDA source and header files (
.cuand.cuh) (#10782 by @alphastorm). - •Fixed
ast_grepskipping CUDA headers and ignoring an explicitlangoverride for ambiguous file extensions (#10782 by @alphastorm).
v18.1.14
7. September 2026
- •Fixed reasoning-off requests (e.g. GitHub Copilot
gpt-6-astra) surfacing400 Unsupported value: 'none' … Supported values are: …instead of retrying at the lowest allowed effort: the reasoning-effort fallback now recognizesSupported valuesphrasing (#11128 by @H4vC). - •Fixed Cursor GPT off-tier requests sending raw
-nonesibling ids (e.g.gpt-5.6-sol-none-fast), which the Run endpoint rejects; they now normalize to the base model id with no reasoning parameter, matching every other effort tier (#11128 by @H4vC). - •Bills Astra API requests above 272K input at the documented 2x input / 1.5x output long-context tier; the Codex subscription route stays exempt with free cache writes (#11157 by @H4vC).
- •Fixed Astra's extended window over-advertising input by 128K; it now uses the documented 922K input cap inside the 1.05M total context (#11157 by @H4vC).
- •Fixed explicit Codex context-window overrides widening past the server-honored maximum; they now clamp to the documented ceiling like upstream Codex (#11157 by @H4vC).
- •Fixed Codex Astra using its larger window without opt-in; its default is 272K and Extended Context enables at least the documented 1.05M window (#11126 by @H4vC).
- •Fixed GitHub Copilot enterprise-only model ids inheriting another provider's wire routing (e.g.
gpt-5.6-sol-fastpinning every request to the-nonesibling id regardless of thinking level) (#11128 by @H4vC). - •The startup update notice counts every change in a release: bullets written above a
###heading now count underOther, and+/*markers and lightly indented bullets count like-. - •Fixed Codex Astra retaining its larger window after disabling Extended Context, including cached models; explicit model overrides still take precedence.
- •Fixed explicit Codex context-window overrides widening past the server-honored maximum; they now clamp to the documented ceiling like upstream Codex (#11157 by @H4vC).
- •Fixed Astra's extended window over-advertising input by 128K; it now uses the documented 922K input cap inside the 1.05M total context (#11157 by @H4vC).
- •Bills Astra API requests above 272K input at the documented 2x input / 1.5x output long-context tier; the Codex subscription route stays exempt with free cache writes (#11157 by @H4vC).
- •Fixed Extended Context silently enabling without a settings source (SDK embedding, early boot); it now matches the off default until opted in (#11157 by @H4vC).
- •Fixed
/copylink captions showing Markdown delimiters for formatted labels and splitting across two rows for multiline labels (#11086 by @mustafaabidali). - •Fixed Ask custom answers requiring another submission after paste or remaining on the same multi-select question; pending clipboard text is preserved before submission, and single-question multi-select answers still go through review (#11099 by @camjac251).
v18.1.13
7. September 2026
- •Fixed
filterChildShellEnvapplying the omp process's own launch-environment provenance (the pre-dotenvNODE_ENVand launcher-owned names read from/proc/self/environ) to caller-supplied environment objects; launch provenance now only applies when filtering the liveprocess.env/Bun.env, and an explicit env resolves its dotenv mode from its ownNODE_ENV. - •fix(tui): deliver notifications inside Herdr panes by @lemonleks in https://github.com/can1357/oh-my-pi/pull/11054
- •fix(utils): apply dotenv launch provenance only to the live process env by @pedropaulovc in https://github.com/can1357/oh-my-pi/pull/11074
- •fix(catalog,coding-agent): default Astra to documented 1.05M window by @H4vC in https://github.com/can1357/oh-my-pi/pull/11089
v18.1.12
6. September 2026
- •Added Muse Code subscription sign-in, credential refresh, inference, and quota reporting in
/usage, with durable rate-limit backoff so quota refresh recovers instead of repeatedly retrying. - •Added Muse Code as a provider with Muse Spark models and live account-scoped discovery.
- •Muse Code subscriptions now resolve a compact edit-prompt variant, cutting recurring per-request tool bytes without touching other providers.
- •Added Meta's new
maxreasoning effort tier to Muse Spark 1.3 (standard) on the Meta Model API and Muse Code. - •Fixed OpenCode Go/Zen live model discovery (
GET /v1/models) missingx-opencode-sessionand omp'sUser-Agent: discovery requests now attribute with the stable install id so the requests OpenCode flags asBun fetchcarry the required session header. - •Fixed GPT-6 Astra requests through GitHub Copilot failing with an unsupported endpoint error (#10874 by @xpcmdshell).
- •Fixed GPT-6 Astra showing as free with a 272K-token window in the OpenAI Codex catalog by applying its documented pricing;
/extended-contextenables the wire-advertised 872K-token maximum (#10980 by @H4vC). - •Made extended-context catalog rebuilds faster by resolving each model's maximum window once per process (#11039 by @H4vC).
- •Ranged reads of text without bracket characters skip unnecessary lexical context scanning.
- •Muse Code sessions send a compact hashline edit description (~3 KB less per request); all other models keep the full prompt.
- •Fixed GPT-6 Astra extended-context support and preserved maximum context windows reported by OpenAI Codex discovery (#10980 by @H4vC).
- •Subagent
yieldno longer rejects a validdatapayload because a non-strict OpenAI-compatible backend filled the optionalerrorfield with""; previously the worker retried the identical call until the invalid-yield cap and the parent received nothing. - •Fixed fullscreen
/copyoutlining only a lazily created grouped Read card, so Enter copies the assistant yield instead of tool output. - •
memory://now resolves against the session that issued it: a caller's own memory backend answersmemory://<id>, so co-located sessions no longer read each other's memory rows, and a caller whose session is no longer live fails closed instead of being answered by a peer. Prompt completion binds to the same caller, somemory://<memory-id>stays on offer while a subagent shares the working directory. Advisors retain their owning session's memory access even without a session file. - •Fullscreen
/copynow opens on the recent tail of the branch instead of replaying the whole session, so it appears immediately and steps without lag on long sessions (aloads the earlier turns). Both it and the esc-esc rewind selector also cache each transcript row set instead of re-stripping it every frame.
v18.1.11
5. September 2026
- •GitHub Copilot sign-in now requests only basic profile access, restoring login for Enterprise organizations that reject repository, gist, and Codespaces permissions (#10656).
- •Added the
retry.waitForUsageResetsetting: when a provider reports usage-limit exhaustion with a reset time (5-hour or weekly quota windows on any provider), the session sleeps until the reset instead of failing fast pastretry.maxDelayMs. - •Added opt-in
bash.allowCompoundCommandsapproval for conservative literal&&chains, with ordered per-segment rules and normal bash policy fallback for unmatched segments. The opt-in requires a positively classified POSIX-quoting shell; incompatible and unknown shells retain legacy approval. Whole-chain denies take precedence over earlier prompts. - •Report oversized selected lines that cannot fit after read context, with a working raw recovery selector instead of a looping continuation hint (#10775).
- •Fixed WorkPool child sessions crashing during startup while constructing their incremental
yieldtool schema. - •Commit summaries written in Vietnamese, Korean, and other accented scripts are no longer rejected for exceeding the length limit, and keep their accents as typed.
- •Fixed
extractRetryHintdropping the longer timing signal when an error body carries both an account reset and an appended retry hint: competing signals now merge by longest window instead of first match, so retries honor the provider's full backoff. - •fix(coding-agent): report omitted oversized read lines by @original4422 in https://github.com/can1357/oh-my-pi/pull/10798
- •fix: retry transient gateway stream failures by @aktanazat in https://github.com/can1357/oh-my-pi/pull/10686
- •fix(coding-agent): avoid WorkPool child startup crash by @eggpeat in https://github.com/can1357/oh-my-pi/pull/10755
- •fix(coding-agent): update artifact byte-budget test for oversized-line notice by @H4vC in https://github.com/can1357/oh-my-pi/pull/10831
- •fix(commit): recompose commit text after compatibility folding by @ntdatt812 in https://github.com/can1357/oh-my-pi/pull/10794
- •fix(ai): reduce GitHub Copilot OAuth scopes by @roboomp in https://github.com/can1357/oh-my-pi/pull/10657
- •docs(ai): relocate GitHub Copilot changelog entry to Unreleased by @H4vC in https://github.com/can1357/oh-my-pi/pull/10845
- •feat(coding-agent): add retry.waitForUsageReset to sleep until usage limit reset by @H4vC in https://github.com/can1357/oh-my-pi/pull/10838
v18.1.10
4. September 2026
- •Fixed Codex V2 remote compaction ignoring explicit thinking-off.
- •Fixed Codex V2 remote compaction rebuilding the request prefix differently from normal turns, restoring prompt-cache reuse (#10786).
- •Subagent
yieldnow takesdata/errordirectly instead of nesting them under aresultwrapper. - •Fixed Codex V2 remote compaction rebuilding the request prefix differently from normal turns, restoring prompt-cache reuse (#10786).
- •Restored mouse clicks, hover, and wheel scrolling in Plan Review.
- •fix(compaction): preserve codex v2 cache prefix by @roboomp in https://github.com/can1357/oh-my-pi/pull/10789
v18.1.9
4. September 2026
- •Added recoverable native custom-scheme OAuth callbacks for macOS, Linux desktops, and Windows, with a manual fallback for unavailable or remote sessions.
- •Fixed Gemini tool continuations through custom Anthropic Messages proxies and OpenAI Responses relays, preserving tool-call and result associations across multi-turn requests.
- •Added the
delegation-biascapability for tuning how agents delegate work to subagents. - •Adjusted subagent delegation for GPT-6 and newer OpenAI models to reduce unnecessary delegation.
- •Fixed
/login zaifor Z.AI GLM Coding Plan by supporting the provider’s updated authentication flow, including local desktop sign-in, remote paste-code completion, and the configurableZAI_OAUTH_REDIRECT_URI. - •Browser and computer automation now use JavaScript/Python evaluation preludes with reusable tab and element handles, replacing the previous standalone tool schemas and object-shaped run APIs.
- •Replaced the
inspect_imagetool and/visioncontrols withread <image>?q=<question>for image questions; text-only models now receive image metadata and guidance for using this selector. - •Renamed
inspect_image.timeoutMstoimages.questionTimeoutMs; existing settings are migrated automatically. - •Bash now extracts Kitty and Sixel terminal graphics as image results for foreground, failed, manual, and background executions.
- •Markdown links to existing local files and resources are now clickable while preserving their displayed URLs.
- •Added
/switch <model>for session-only model changes, with the same model selectors and completions supported by--model; ACP/model <model>accepts these selectors as well. - •Added the
worktree.cleanSourcesetting to reset and clean the original checkout when creating a worktree with/wt. - •Expanded the computer JavaScript/Python evaluation prelude with direct desktop, window, screenshot, accessibility, and element interaction helpers, while keeping
computer.runavailable for multi-step scripts. - •Agent delegation is now model-aware, allowing some models to favor focused inline work instead of spawning subagents.
- •Fixed fallback authorization-code prompts remaining active after native OAuth callback completion.
v18.1.8
4. September 2026
- •Added GPT-6 Astra support for preserving prompt caching when changing the thinking level during a conversation across the OpenAI and OpenAI Codex providers.
- •Updated OpenAI Codex requests to improve routing by communicating the selected model and service tier across Responses, WebSocket, and remote-compaction requests.
- •Added GPT-6 Astra to the OpenAI Codex model catalog, including support for configuration updates and requests using the freeform
apply_patchtool. - •Fixed
omp models refreshso revoked ChatGPT account tokens no longer prevent the remaining OpenAI Codex models from being discovered. - •Improved background task results with structured output schemas: parsed results are now available through the
agent://<id>resource, while large or invalid inline JSON is replaced with a reliable pointer to the complete result. - •Background task artifacts are retained long enough for follow-up turns to read them, including failed tasks that lack valid structured output, and are cleaned up without blocking shutdown or leaking resources.
- •Fixed context compaction incorrectly accepting archived history that was larger because of opaque reasoning data, allowing the next compaction strategy to run instead.
- •Fixed the Model Hub sidebar jumping to the top when provider refreshes rebuild the list; the focused model, or its nearest remaining entry, is now preserved.
- •Fixed the
inspect_imagestatus hint showing the wrong model after switching between image-capable model roles. - •Fixed multi-minute TUI freezes during subagent activity and batch execution.
- •fix(coding-agent): deliver structured output for background task spawns by @andyhite in https://github.com/can1357/oh-my-pi/pull/10625
v18.1.7
3. September 2026
- •Fixed DeepSeek-family Responses replay (e.g. opencode-go) rejecting a resumed thinking-mode turn with
400 The reasoning_text in the thinking mode must be passed back to the APIwhen compaction dropped the turn's reasoning; a non-empty placeholder is now synthesized instead of an emptyreasoning_text(#10690). - •Removed the Ruby and Julia eval backends and related interpreter configuration; eval now supports Python and JavaScript only.
- •Removed the eval parallel() and pipeline() helpers. agent() and completion() now return handles immediately, and wait(handles) provides synchronization.
- •Python eval tool calls are now asynchronous coroutines, matching JavaScript; use await tool.read({...}) and similar calls.
- •Added asynchronous eval agent and completion handles with status, cancellation, messaging, waiting, and automatic result delivery for unwaited background work.
- •Added eval workpools for queueing items onto the least context-loaded keep-alive subagent with configurable concurrency; the pool name is its async-job ID for
hub wait,.peek()gives a non-consuming snapshot, per-item{key, data|error}yields finish batches incrementally, andeval.workpool.freshAgentsopts into a new agent per item. - •Added support for defining eval tools in Python with @tool or JavaScript with tool(fn, schema), and exposing them to subagents through task, agent, and workpool calls. Configure availability with eval.tools.enabled.
- •Added native Windows ARM64 binaries with architecture-aware installation and updates.
- •Added an MLX backend for running local tiny models on Apple silicon. Configure providers.tinyModelDevice=mlx, or use PI_TINY_DEVICE=mlx or metal, to run title generation, memory tasks, and automatic thinking classification with MLX models, with an ONNX CPU fallback when Python is unavailable.
- •Added Qwen3 1.7B as a local memory and thinking-classification model for the MLX backend.
- •Local tiny models for titles, memory, and automatic thinking classification now share on-demand workers across omp processes, reducing redundant resource usage; workers stop automatically after inactivity.
- •PI_TINY_DEVICE=metal now selects the MLX backend on macOS.
- •Updated agent reactions to trigger on the opening emoji instead of requiring a newline, consuming any following whitespace.
- •Fixed transient provider retries incorrectly failing with an “Agent is already processing” error.
- •Fixed user-scope marketplace plugins installed through omp losing their skills when the Claude plugin source was not separately enabled.
v18.1.6
3. September 2026
- •Added support for streaming tool argument updates, providing more responsive tool-call progress.
- •Improved steering behavior so queued steering commands preserve already-emitted non-interruptible tool calls while aborting or skipping only interruptible waits.
- •Renamed
claudeCodeSessionIdtosessionIdinAnthropicClientOptionsArgs. - •Renamed
openAISessionIdtosessionIdinOpenAIRequestSetupOptions. - •Added Amazon Bedrock
requestMetadatasupport for cost and usage attribution in AWS invocation logs. - •Codex GPT-5.6 requests now use full Responses by default, enabling independent tool calls to run in parallel; provider-native compaction continues to use catalog-selected Responses Lite.
- •Inference requests now identify as omp by default while preserving explicit provider and OAuth User-Agent fingerprints. Amazon Bedrock requests use an
omp/<version>User-Agent by default and honor configuredUser-Agentoverrides. - •Fixed Antigravity usage reporting to match the official client's five-hour and weekly quota buckets.
- •Anthropic and OpenRouter credit-exhaustion errors now automatically switch to a sibling account instead of stopping the turn with a retry hint.
- •Fixed OpenCode Go and Zen requests by including the required stable per-conversation session identification.
- •Improved Anthropic prompt caching so explicit cache breakpoints preserve reusable tools and system prompts when the message tail changes.
- •Added catalog-delivered model intelligence scores and estimated output throughput to help compare model capabilities and performance.
- •Improved model search and selection so configured roles, provider preferences, and recent usage are prioritized while browsing and filtering models.
- •Replaced the local session-title model choices with LFM2.5 230M, LFM2.5 350M, and Falcon H1 Tiny 90M.
- •Reserved main and sub as built-in subagent definition names; custom agents can no longer use these names.
v18.1.5
3. September 2026
- •Added
/login abliterationwith API key validation against/v1/models, supporting theABLITERATION_API_KEYandABLIT_KEYenvironment variables. - •Modernized provider authentication and token refresh across the catalog, with shared support for API-key, authorization-code, and device-code sign-in flows and clearer sign-in progress messages for OpenRouter, Kimi, and xAI.
- •GitHub Copilot now uses the official Copilot CLI identity and OAuth application for requests and new sign-ins, restoring access to client-gated models while preserving existing credentials.
- •GitHub Copilot now reports
model_not_supportedresponses immediately instead of repeatedly retrying unsupported models. - •Improved account recovery after Google rate limits are lifted earlier than the reported reset time.
- •Fixed unmetered autocomplete models being reported as exhausted when quota is limited.
- •Fixed Gemini 3 cross-model sessions in Cloud Code Assist when replaying tool calls without a thought signature.
- •Fixed Cursor models behind an authentication gateway incorrectly retrying valid client-declared tool calls.
- •Fixed reasoning from models that prefill
<think>(including DeepSeek-R1 and hosted Qwen3-Thinking) being shown in the response instead of as a separate thinking block. - •Added the Abliteration (abliteration.ai) provider, including its documented abliterated-model catalog and live model discovery.
- •Added the GLM 5.3 Promo 50 model.
- •Added computer-use capability metadata to model configurations.
- •Added declarative provider authentication policies covering login, refresh, environment-key, and credential behavior, with generated compatibility data and typed accessors.
- •Gemini 3.8 Flash now supports reasoning modes and image inputs.
- •Updated the GitHub Copilot API version to 2026-08-01.
v18.1.4
2. September 2026
- •Enabled Cursor tool schema projection for supported models
- •Antigravity and Gemini CLI now collapse every Gemini Flash generation from 3.6 on (
gemini-3.8-flash-low/-medium/-highand the-tieredalias, and future revisions) into one routedgemini-<rev>-flashentry via a revision-templatedvariant-family, instead of surfacing raw per-level ids until a per-revision rule lands.
v18.1.3
2. September 2026
- •Fixed Gemini 3 sessions on Antigravity/Cloud Code Assist and Vertex AI getting permanently stuck on
400 INVALID_ARGUMENTafter a turn with parallel tool calls (#9638). - •Preserved Anthropic thinking now survives side requests, tool-description drift, turn-scoped reminders, and recoverable prefix mismatches without corrupting the conversation prefix.
- •Fixed Anthropic-compatible endpoints backed by Amazon Bedrock permanently rejecting a session once an unsigned thinking block entered its history. The transport now recognizes Bedrock's
ValidationException … thinking.signature: Field requiredas the same unsigned-thinking rejection it already heals for other signing proxies, so it demotes the unsigned block to text, retries once, and remembers the endpoint for the rest of the session instead of failing every turn and walking the model fallback chain. - •Fixed the DeepSeek DSML markup healer leaking orphan
</|DSML|parameter>/</|DSML|invoke>close tags into visible text, which poisoned long-session history and reinforced the model's XML-protocol mimicry until tool calls stopped dispatching (#10556). - •Fixed repeated parallel tool-call batches bypassing the configured loop guard.
- •Fixed Cursor tool-schema composition failures by projecting unsupported keywords only for confirmed Fable models; Grok and other Cursor models retain canonical schemas.
- •Fixed API-key account rotation to honor provider-reported quota reset windows, including overlapping exhausted windows (#10325 by @usr-bin-roygbiv).
- •Added support for Claude Fable 5.1
- •Updated pricing and context limits for various Claude models
- •Claude Sonnet 5 no longer advertises unsupported mid-conversation system messages.
- •Custom GLM 5.2 models on
alibaba-coding-plan(and other blanket-GLM hosts) no longer crash startup withAmbiguousOverlapError(#10553). - •Gemini 3.7 Flash no longer offers the
minimalthinking effort on direct google-level hosts (google,google-vertex,opencode-zen), which rejectthinkingLevel: MINIMALwith a 400; budget and reasoning-effort resellers keep the tier (#10543). - •Fixed Alibaba Token Plan discovery for
qwen3.8-flashto include its context limits, reasoning support, and image input. - •Z.AI GLM-5.3-Flash now uses the native API instead of failing through the unsupported Anthropic-compatible route (#10539).
- •The
doubleEscapeActionsetting now acceptstree, so double-Escape can open the session tree instead of the rewind selector.