Zum Hauptinhalt springen

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 Version:v18.2.9
Angezeigte Releases:114
Quelle:GitHub Releases

Neueste Releases (114)

v18.2.9Neu

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 login again.
  • 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_token grant instead of failing with sso-token-expired, so Bedrock profiles keep working between aws sso login runs the same way the AWS CLI does (#12736 by @nwbb).
v18.2.8Neu

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 typesafe and openrouter-decisions API 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.7NeuBreaking Change

v18.2.7

21. September 2026

  • Anthropic streaming and provider request helpers must now be imported from @oh-my-pi/pi-ai/providers/anthropic instead of the package root.
  • Moved the public NO_AUTH_SENTINEL export from providers/openai-shared to auth-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 buildDiscoveredModel helper 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 find tool for semantic workspace searching, allowing agents to locate behaviors and symbols using natural language
  • Added find CLI command for performing semantic workspace searches
v18.2.6Neu

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 use node:fs instead of Bun.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 time stamp that dirtied the cached system prompt on every refresh; recall rows already carry dates, so the stamp is removed.
  • Fixed omp auth-broker token and omp auth-gateway token exiting silently without creating a token on Windows when no token file exists yet; token and config reads now use node:fs instead of Bun.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.5NeuBreaking Change

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 stencil authentication provider for omp stream, supporting OAuth code + PKCE sign-in with auth.stencil.so, configurable via STENCIL_API_KEY, STENCIL_AUTH_URL, and STENCIL_BASE_URL. This is an authentication-only provider, not a model provider; OAuth-code login configuration also supports base-url and auth-url nodes with {base} and {auth} URL placeholders.
  • Corrected Yolo-Auto metadata for Qwen Flash: qwen3.8-flash and the paid yolo route now report the documented 256K context window and use the Qwen chat-template reasoning dialect, with qwen3.8-flash as 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-agent subpaths no longer exist; names re-exported from the package root remain unchanged.
  • Added omp stream for livestreaming terminal sessions at live.omp.sh/<your Stencil username>, with viewer chat, pane-per-session display for sessions in the same directory, screen redaction, and configurable stream.serverUrl and stream.redactPatterns settings. Use --server to override the stream server, --title to set a title, and --no-tui to retain the line-based log interface.
  • Added Stencil account support to /login. omp stream uses a signed-in Stencil account or STENCIL_API_KEY for 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 edit auto-repair waiting up to 60 seconds when the smol model 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 yield calls that never finish it: an incremental-only yield turn no longer bypasses the request budget, and the forced final yield ends the run (#12351 by @pedropaulovc).
v18.2.4Neu

v18.2.4

17. September 2026

  • Added the judgment module for typed questions over JSON state, including choice, yes/no, and score judgments through the Judge interface.
  • Added TypeSafeJudge support with TypeSafe System One authentication, credential rotation on unauthorized responses, and retry-aware backoff.
  • Added TextJudge and chatTextBackend for model-based judgments, with structured state rendering and safeguards that prevent embedded requests from being executed.
  • Added automatic format-correction retries to TextJudge when models return malformed output.
  • Added the guardState option to TextBackend to control whether safety guidance is included in prompts.
  • Added typesafe authentication for TypeSafe System One judgments via the TYPESAFE_API_KEY configuration 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 typesafe or TYPESAFE_API_KEY. TypeSafe can power thinking-level detection, unexpected-stop detection, and AI-assisted git staging with calibrated judgment probabilities; configure providers.judgmentProvider as auto, typesafe, or llm to 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.3NeuBreaking Change

v18.2.3

17. September 2026

  • stream() and streamSimple() 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() or resolveModelHeaders(); removed the synchronous config/model-config-values module.
  • Removed the unused ConfigFile.getMtimeMsAsync(), tryLoadAsync(), loadAsync(), and loadOrDefaultAsync() 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-persisted m1, 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.2Neu

v18.2.2

16. September 2026

  • Added configurable baseUrl support for bedrock-converse-stream requests, 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.1Breaking Change

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_update snapshots 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 /clear boundaries. (#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/compact endpoint 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_extraction classifier 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 a stopReason derived 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 block after 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 expired on 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.0Breaking Change

v18.2.0

15. September 2026

  • Assistant turns from Anthropic-compatible hosts (direct, or via OpenRouter's reasoning_details) carry upstreamModel, 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 getCatalogProviderEntry and the CATALOG_PROVIDERS constant in favor of providerEntry and providerEntries
  • 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>.kdl and compile into rules.json; KnownProvider is generated from them, and the generator bundles seed rows by each entry's declared bundle policy instead of per-provider code.
  • Settings.getGroup() now returns shallow-frozen snapshots, reused until effective settings change.
  • Removed parseSSE, MCPToolsResponse, and MCPCallResponse; callMCP() now returns the shared JsonRpcResponse with an unknown result instead of an unchecked generic payload.
  • Added ollama web search provider using Ollama's hosted web search API (POST https://ollama.com/api/web_search), authenticated via OLLAMA_CLOUD_API_KEY (#3791).
  • Added readUrl support for Ollama model pages (ollama.com/<model> and ollama.com/library/<model>), extracting descriptions, tags, and architecture metadata.
  • @upstream routing selectors accept tiered OpenRouter slugs (openrouter/google/gemini-3.8-flash@google-ai-studio/priority), and omp bench labels 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.22Breaking Change

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 timeoutMs argument and async.pollWaitDuration setting.
  • Added a privacy warning to memory reports reminding users to review data for secrets before sharing
  • omp git / /git: delete discards 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 c on a /btw answer now shows a green "✓ Copied to clipboard" confirmation in the panel and history detail, and BTW history accepts Ctrl+/ 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.
  • /debug memory 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 extractRetryHint sleeping hours past the provider's stated wait when a timezone-naive reset at timestamp 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

v18.1.21

14. September 2026

  • Fixed Flatpak Chromium launcher executables (including com.google.Chrome, org.chromium.Chromium, and io.github.ungoogled_software.ungoogled_chromium) so app.path is treated as a browser and gets managed Chromium profile handling
  • Fixed Chromium --user-data-dir handling 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

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 /collab first (#11908 by @alphastorm and @sorphwer).
  • Added omp collab list [--json] and /collab list to enumerate every live local Collab host (instance, generation, session, cwd, model, participants, relay/attention state, access) without exposing links, plus omp 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: text or 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 at retry.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 spending retry.maxRetries budget (#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

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 found now also suggests mounted xd:// devices, not just the advertised tool set, via the new suggestFallbackToolNames option (#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; parsed totalQuota add-on packs into the true "Total quota" row when present, and recognized Kimi's HTTP 403 access_terminated_error as a credential-rotatable usage limit. (#11827 by @revofusion)
  • Fixed provider streams that die after emitting toolcall_start but 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 the zcode://zai-auth/callback redirect 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_name as 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.
  • /usage now shows prepaid credit balances (e.g. Charm Hyper's 100 credits left) on the provider cards and account summaries instead of no 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 pressing t on a fallback row in /models sets or clears it. Bare entries keep inheriting the failing turn's effort. (#11842 by @H4vC).
  • Added task.agentServiceTierOverrides for 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

v18.1.18

11. September 2026

  • Anthropic server-side compaction as a remote compaction 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 with remoteCompaction.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 the compact_20260112 edit paused after the summary and the harness summary prompt as instructions. 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 as preserveData.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 opaque encrypted_content is persisted as preserveData.anthropicCompaction.encryptedContent and replayed verbatim.
  • compact() now forwards the caller's oneshotRetry opt-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-12 beta): anthropicCompaction on StreamOptions sends the compact_20260112 context-management edit, the streamed compaction block is surfaced as an anthropicCompaction provider payload, the compaction stop reason is a normal stop tagged in stopDetails (exempt from the empty-completion retry), and usage sums usage.iterations whenever a compaction iteration ran. A user-role compaction summary carrying that payload replays as a leading assistant compaction block — 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_URL reroutes, or an explicit remoteCompaction.enabled opt-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's baseURL, or an explicit remoteCompaction.enabled opt-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 opaque encrypted_content is captured from the stream, kept on the payload as encryptedContent, 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_supported now 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-Id per 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-compaction compat 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 is false.
  • 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-wide strip-image-input rule 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

v18.1.17

10. September 2026

  • Tool <name> not found now 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 /clear boundaries.
  • 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_count from the /api/chat done chunk maps to cacheRead, with input reduced to the uncached portion, so status-line cache_turn/cache_hit segments 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), and COPILOT_INTEGRATION_ID pins the Copilot-Integration-Id header 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-flash row 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

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).
  • /rename without 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.
  • /loop accepts --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 tiny model roles now honor the configured @smol fallback in direct execution and the /models Roles view (#11311).
  • Extension Control Center (/extensions) search now accepts j and k, so extensions like jira/json are searchable; bare j/k no longer move the list selection (use arrow keys or the configured tui.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 pi brand/working segment double-padding the first separator, so every gap around a separator is a single space (#11103).
  • /handoff no 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 (always true, since OMP applies no project-trust gating) (#7955).
  • Fixed Ctrl+Z jobs exiting successfully after fg instead of restarting the TUI because terminal teardown left Bun without a referenced event-loop handle while waiting for SIGCONT (#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 /loop iterations combined with --while / --until no 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

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:user only): 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-ai providers failing mid-turn model fallback when Gemini 3 tool calls are replayed without their original thought signature (#11270).
  • Added advisor.maxNotesPerUpdate setting and WATCHDOG.yml configuration (default 4): 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: true on browser.open opts 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 /model after 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 /usage stats sync on multi-core systems.
  • Fixed /usage displaying 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 (.cu and .cuh) (#10782 by @alphastorm).
  • Fixed ast_grep skipping CUDA headers and ignoring an explicit lang override for ambiguous file extensions (#10782 by @alphastorm).
v18.1.14

v18.1.14

7. September 2026

  • Fixed reasoning-off requests (e.g. GitHub Copilot gpt-6-astra) surfacing 400 Unsupported value: 'none' … Supported values are: … instead of retrying at the lowest allowed effort: the reasoning-effort fallback now recognizes Supported values phrasing (#11128 by @H4vC).
  • Fixed Cursor GPT off-tier requests sending raw -none sibling 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-fast pinning every request to the -none sibling 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 under Other, 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 /copy link 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

v18.1.13

7. September 2026

  • Fixed filterChildShellEnv applying the omp process's own launch-environment provenance (the pre-dotenv NODE_ENV and launcher-owned names read from /proc/self/environ) to caller-supplied environment objects; launch provenance now only applies when filtering the live process.env/Bun.env, and an explicit env resolves its dotenv mode from its own NODE_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

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 max reasoning 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) missing x-opencode-session and omp's User-Agent: discovery requests now attribute with the stable install id so the requests OpenCode flags as Bun fetch carry 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-context enables 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 yield no longer rejects a valid data payload because a non-strict OpenAI-compatible backend filled the optional error field with ""; previously the worker retried the identical call until the invalid-yield cap and the parent received nothing.
  • Fixed fullscreen /copy outlining 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 answers memory://<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, so memory://<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 /copy now 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 (a loads 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

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.waitForUsageReset setting: 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 past retry.maxDelayMs.
  • Added opt-in bash.allowCompoundCommands approval 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 yield tool 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 extractRetryHint dropping 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

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 yield now takes data/error directly instead of nesting them under a result wrapper.
  • 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.9Breaking Change

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-bias capability for tuning how agents delegate work to subagents.
  • Adjusted subagent delegation for GPT-6 and newer OpenAI models to reduce unnecessary delegation.
  • Fixed /login zai for Z.AI GLM Coding Plan by supporting the provider’s updated authentication flow, including local desktop sign-in, remote paste-code completion, and the configurable ZAI_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_image tool and /vision controls with read <image>?q=<question> for image questions; text-only models now receive image metadata and guidance for using this selector.
  • Renamed inspect_image.timeoutMs to images.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.cleanSource setting 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.run available 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

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_patch tool.
  • Fixed omp models refresh so 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_image status 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.7Breaking Change

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 API when compaction dropped the turn's reasoning; a non-empty placeholder is now synthesized instead of an empty reasoning_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, and eval.workpool.freshAgents opts 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.6Breaking Change

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 claudeCodeSessionId to sessionId in AnthropicClientOptionsArgs.
  • Renamed openAISessionId to sessionId in OpenAIRequestSetupOptions.
  • Added Amazon Bedrock requestMetadata support 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 configured User-Agent overrides.
  • 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

v18.1.5

3. September 2026

  • Added /login abliteration with API key validation against /v1/models, supporting the ABLITERATION_API_KEY and ABLIT_KEY environment 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_supported responses 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

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/-high and the -tiered alias, and future revisions) into one routed gemini-<rev>-flash entry via a revision-templated variant-family, instead of surfacing raw per-level ids until a per-revision rule lands.
v18.1.3

v18.1.3

2. September 2026

  • Fixed Gemini 3 sessions on Antigravity/Cloud Code Assist and Vertex AI getting permanently stuck on 400 INVALID_ARGUMENT after 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 required as 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 with AmbiguousOverlapError (#10553).
  • Gemini 3.7 Flash no longer offers the minimal thinking effort on direct google-level hosts (google, google-vertex, opencode-zen), which reject thinkingLevel: MINIMAL with a 400; budget and reasoning-effort resellers keep the tier (#10543).
  • Fixed Alibaba Token Plan discovery for qwen3.8-flash to 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 doubleEscapeAction setting now accepts tree, so double-Escape can open the session tree instead of the rewind selector.
Zeige 30 von 114