Repository navigation
chore(deps): update dependency can1357/oh-my-pi to v18.13.1 - #154
Merged
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/can1357-oh-my-pi-18.x
branch
from
October 27, 2026 06:52
01b9804 to
50597e8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
18.12.6→18.13.1Release Notes
can1357/oh-my-pi
v18.13.1Compare Source
@oh-my-pi/pi-agent-core
Added
Agent.isPaused(#17073 by @anatoli-tsinovoy).@oh-my-pi/pi-ai
Fixed
turn_rate_limit_exceeded, "Codex is at capacity") reporting "Try again in ~N min" from the plan's usage-window reset, which made retries wait hours instead of the response's Retry-After (#17087 by @H4vC)@oh-my-pi/pi-catalog
Added
openai/gpt-6.1-terraships bundled ($1/$5, $0.05 cached, >272K long-context tier, 1.05M window), and Codex-discoveredgpt-6.1-terra/-wmget API-equivalent pricing, the 922K extended-context maximum, and routing to Plus-or-higher accounts.k3.1-pro,k3.1-pro-highspeed) and the Moonshot API (kimi-k3.1-pro,kimi-k3.1-pro-highspeed): official pricing ($2/$10 and $4/$20 per MTok), a 131K output cap, and K3's reasoning and wire contract (#16901 by @eggpeat)@oh-my-pi/pi-coding-agent
Added
tools.restrictedFolders: every action on a listed folder (the folder and everything below it) asks for an explicit Approve/Deny in every approval mode,yoloincluded, and no remembered grant, session approval, or ACP "Always allow" covers it; recursive searches rooted above a restricted folder ask too, commands are matched by the directory they run in, and adenypolicy still denies (#16049 by @Peribunt)/pauseshows draining turns and running jobs across the main agent's subagent tree, without waiting on finished turns, safely parked agents, or suspended advisor reviews (#17073 by @anatoli-tsinovoy).Changed
askanswers now name the option a note is on (m: [X, Y] (note on Y: …),User added note on Y: …) (#17126 by @H4vC)Fixed
turn_rate_limit_exceeded; the advisor now waits out the Retry-After (withinretry.maxDelayMs) and retries like the main agent (#17087 by @H4vC)PUTbeing refused with "would hold one more copy of line N … than the range did" when its body restates the line next to the range, fills the range, and adds a new line equal to that neighbour (a second@propertyor#[test], or abreak;above a newcase); it applies again, dropping only the restated line (#17028)AGENTS.mdfiles, including the user-level~/.omp/agent/AGENTS.md, when the session has additional workspace roots (--add-dir,/add-dir,workspace.additionalDirectories)asknote added right after picking an answer landing on the next question's answer, in Tern and the TUI; Note now goes to the answer just picked until the next question gets other input (#17126 by @H4vC)@oh-my-pi/pi-tui
Added
/pausescreens show unsettled turns and jobs, hide settled counters, and preserve counts and resume controls on short terminals (#17073 by @anatoli-tsinovoy).noteOptiontoExtensionAskDialogResultItemandQuestionResult: the label of the option an ask note is on (unset for a note on the custom answer) (#17126 by @H4vC)Changed
StatusLineComponent.setRunningSubagents()andsetSubagentTreeCost()now report whether their state changed, allowing callers to skip redundant redraws (#17131 by @iliaal).Fixed
n) right after a pick moved to the next question annotating that question's highlighted row instead of the answer just picked (#17126 by @H4vC)@oh-my-pi/pi-utils
Added
maxFractionDigitstoformatNumber()that caps decimals on values below 1,000 (#16973 by @DusKing1)What's Changed
Full Changelog: can1357/oh-my-pi@v18.13.0...v18.13.1
v18.13.0Compare Source
@oh-my-pi/pi-agent-core
Added
SummaryOptions.remotePromptCacheKeyandremoteCompactionPolicyModel()so remote compaction can carry a cache key gated against the request it actually sends (#16988 by @rafalopilowski1)Changed
AgentLoopConfig.getAsideMessages,Agent.setAsideMessageProvider) now receive which boundary is polled,"work"after tool calls or"stop"at the end of a turn, so they can keep a message out of a finished turn (#16583 by @will-bogusz)Fixed
--max-timevalues above about 596 hours (such as600h) aborting the first turn with "Deadline exceeded" right away (#17054 by @trukhinyuri)session.compactingcontext out of the turn-prefix summary (#16707 by @integrITsolutions)@oh-my-pi/pi-ai
Breaking Changes
OpenAIRequestSetupModelnow requires the catalog-policy fields (api,reasoning), so callers building a reduced model forresolveOpenAIRequestSetupmust pass them (#16988 by @rafalopilowski1)Added
PI_ANTHROPIC_API_VERSION=2026-10-21to send Anthropic API version 2026-10-21 to the official Anthropic API; sampling parameters are omitted under that version, which rejects them (#16706 by @H4vC)x-opencode-session, so Task siblings, forks and their parent reuse one gateway cache; custom providers declaringproviderType: "opencode-go"get the same OpenCode headers (#16988 by @rafalopilowski1)Changed
constvalue to a tool's ownenumarray (#16780 by @yuzu-octopus)cascade_id,root_cascade_id,request_id,used_non_gemini_model), and image model lookup sends the account's project (#17012 by @apoc)model_enumlabel, output cap and thinking setting from the serving account's model list, as the official client does: Claude 5.5 and Gemini 4 Argon tiers send a thinking level, Gemini 3.8 Flash tiers the tier's thinking budget (#17012 by @apoc)Accept-Encoding: gzipwithout an explicitAccept, and no longer send the Claude thinking beta header to Claude 5.5 (#17012 by @apoc)Fixed
thinkingblock on every turn of the current turn no longer replay a 400 when the history holds a turn an upstream answered without reasoning; the serializer pads those turns (#16739 by @lz37)message_start, substituting an in-banderrorframe, being reported as a completed-turn provider failure instead of a retryable stream truncation (#16990 by @Maziar123)/wham/usagereturnsrate_limit: nullfor them, and their per-user credit cap (spend_control.individual_limit) is now reported as aSpend cap (credits)limit that also gates chat requests when no plan windows exist (#16973 by @DusKing1)unsupported_native_inflight_messagewhen the native turn lane was still busy; the turn is now retried as an independent full-context request instead of surfacing the error (#17065 by @AgileInnov8tor)Unsupported model mimo-v2.5after the V2.5 retirement (#16727 by @LiPu-jpg)ttp-Token Plan keys with401 Invalid API Key; they now validate against the regional Token Plan hosts liketp-keys (#17045)401 Invalid API Keywhen the key's own region rejected the probe for another reason; that region's actual error is now shown (#17045)Schemas contains too many optional parameters(#16887 by @alphastorm)array schema must define itemswhen a tool or a task'soutputSchemadeclares an array withoutitems(#16886 by @alphastorm)anyOf/oneOf/allOfof objects being sent as an empty closed object that only accepts{}; variant properties now fold into the rootinput_schema(#16630)invalid_grantafter a token refresh took longer than 10 seconds: the refresh now finishes in the background and saves the provider's new refresh token (#16291 by @will-bogusz)generate_imageruns Factory's GPT Image 2.5, GPT Image 2.5 Flare and Gemini 3 Pro Image, with up to 16 reference images for GPT Image edits (#16316 by @will-bogusz)cacheControlFormat: "anthropic", e.g. OpenRouter Claude) re-sending a turn's tool calls and results uncached on every tool-loop request; the cache breakpoint now advances onto the latest tool result (#16845)google-generative-ai,google-vertex) requests failing withThe operation timed out.after ~5 minutes of slow prefill even whenproviders.streamFirstEventTimeoutSecondsallowed longer (#16991)model.loopGuardsettings being ignored for providers routed through the shared option mapping, such asopenai-responsesmodels frommodels.yml(#11129, #16963 by @SipgateSteffenPaul)AGENTS.md) contains an HTML comment (#17044 by @trukhinyuri)google-generative-ai,google-vertex,google-gemini-cli/Antigravity) running out of output on smallmaxTokensrequests with reasoning on, ending with thinking only and no answer; the requestedmaxTokensnow leaves room for thinking on top, as on other providers (#16943 by @Mouriya-Emma)@oh-my-pi/browser-relay
Added
@oh-my-pi/pi-catalog
Breaking Changes
task-sibling-prompt-cacheaxis toshared-prompt-cache(catalog fieldsharedPromptCache); it now also covers forks and explicit prompt-cache keys (#16988 by @rafalopilowski1)Added
requiresThinkingPresencemodel compat (KDLrequires-thinking-presence) for Anthropic-compatible endpoints that reject a thinking-mode request whose current turn has an assistant message without athinkingblock (#16739 by @lz37)resolveAnthropicApiVersion(): Anthropic model discovery sends API version 2026-10-21 to the official API whenPI_ANTHROPIC_API_VERSION=2026-10-21is set (#16706 by @H4vC)muse-spark-1.3-contributor,muse-spark-1.2-contributor,gpt-5.6-luna,gpt-6-luna,grok-4.6(Responses) anddeepseek-v4-pro,omen-alpha(Completions) opt into shared prompt caching; lanes that warmed under any key stay off (#16988 by @rafalopilowski1)CatalogPolicyInputsso catalog-policy lookups accept a reduced model view (#16988 by @rafalopilowski1)bundle="always"seed row is missing from the bundledmodels.json, so a stale-snapshot regeneration can no longer silently drop an engine the wayweb/deepseekwas lost in 18.12.2 (#16610, #17053 by @ouyangjiahong26)Changed
http://127.0.0.1:8080, thenhttp://127.0.0.1:9931) (#16675 by @bartbroere)aicodescope like the official client; existing logins keep working, and the new scope applies at the next/login(#17012 by @apoc)User-Agentnow reports the native Antigravity build for the host OS (Linuxlinux/amd64, Windowswindows/amd64) instead of always claiming macOSdarwin/arm64(#17012 by @apoc)model_enum, output cap and thinking level or budget, and the bundled Antigravity models carry them for offline use; cached Antigravity model lists are refreshed once so they pick them up (#17012 by @apoc)Fixed
gemini-4-argonrequests failing with an unsupported protocol; discovered models now use native Gemini routing and low, medium, or high thinking (#17031)ttp-Token Plan keys to the pay-as-you-go host, which rejects them (#17045)openaiandopenai-codex) being priced at the retired $10/$45 long-context card instead of $8/$30 (#16742)baseUrlkeeps the conservative floor (vision limits; #16737 by @Fun10165)-1mlanes, 262K for SWE-2), and GPT and Grok models with a long-context price tier start at that tier's threshold, with/extended-context onopening their full window (#16905 by @will-bogusz)extended-cache-ttl-betacompat axis so a route can opt out of theextended-cache-ttl-2025-04-11beta (Factory Droid does), and prompt-cache lifetimes and long-retention support for Factory Droid's Claude models (#16296 by @will-bogusz)imagerole's choices, listed only while your Factory organization allows image generation and that model (#16316 by @will-bogusz)mode: decisionsbeing listed as chat models; they now route toopenai-decisionsas judge models (#16939)k3,k3-256k) pricing to include Kimi's $3/MTok cache-write rate, matching the Moonshot APIkimi-k3card (#16508, #16903 by @eggpeat)cursor/default) being metered against the third-party ("Other Models") pool instead of the Cursor Models pool it bills to (#17048 by @trukhinyuri)@oh-my-pi/pi-coding-agent
Breaking Changes
snapshotJobsno longer acceptsincludeResults, andbuildJobResultaccepts only the"wait"and"cancel"ops; the"jobs"op has had no caller sincewaitandproc://replaced thehubtool (#16763 by @will-bogusz)Added
omp -p --wait-async(settingasync.printWake): print mode waits for the background jobs it started and wakes the same session with each result before exiting, instead of cancelling them (#10363, #16690 by @trukhinyuri)side: truefrontmatter (including Codex and OpenCode command directories) run as/btwside questions in the TUI, with or without arguments: they answer off the transcript and never steer a running turn. The panel and/btwhistory title them by the typed command (/sitrep); the title is kept in anentry-<id>.titlesidecar so older builds can still read the history. Other modes expand them as ordinary prompts (#16815 by @wolfiesch)compat.requiresThinkingPresencetomodels.ymloverrides, so a gateway model group whose strict member validates thinking replay can pad a turn a lax member answered without reasoning (#16739 by @lz37)PI_ANTHROPIC_API_VERSION=2026-10-21; web search omitstemperatureunder that version (#16706 by @H4vC)/local(orAlt+G, remappable asapp.local.open) opens a picker of the session'slocal://files and edits the chosen one in place in$VISUAL/$EDITOR;/local <name>opens a file directly with name completion (#16873 by @Shadorain)--no-context-filesto start a session withoutAGENTS.md,CLAUDE.mdor other context files, including those of--add-dirroots and in subagents (#16768 by @will-bogusz)Changed
xd://devices rather than relying ondumpTools(#16864 by @michaeltrefry)readadds to a PDF whose pages have no extractable text (a scan) now points at the:page<N>.pngselector, which returns the page as an image, instead of the browser prelude (#16585 by @will-bogusz)read doc.pdf:page<N>.pngrenders the page in a square 874x874 tab instead of the default landscape one, so a letter page comes back at 668x865 instead of 441x568 and a landscape page at 864x669 instead of 736x567 (#16585 by @will-bogusz)--warn-costand--max-cost(session.warnCost/session.maxCost): omp warns once at the first spend and stops sending model requests at the second, subagents included; capped print runs exit 3 (#7802; first written by @zhang17-24) (#16803 by @will-bogusz)/session(and RPCget_session_stats, aseditRejections) lists your failed edits by why they were refused (unseen lines, stale tag, parse error, …), and each failed edit records that reason asdetails.errorKindin the session file (#16608 by @will-bogusz)grep: apathentry starting with!leaves matching files and folders out of the search (src;!*.test.ts,!vendor;!gen), where before it was taken as a path and found nothing (#16920 by @will-bogusz)waitandread proc://now show a running subagent's run time, request count, cost, context fill and stage, so a subagent that is looping is visible without opening its transcript (#16863 by @KimToehler)Accept-Encoding: gzip, no explicitAccept) (#17012 by @apoc)agent://<id>or act on without its ending (#16599 by @will-bogusz)yieldreaching its parent andagent://as its short reply to a peer message oragent://allbroadcast (the parent's included) that arrived as it finished; such messages now get a turn of their own after the result, and a peer that wrote directly still receives the reply (#16583 by @will-bogusz)ts-set-maprule stalling tool-call streaming on a long single-lineSetvalue (5 s at 20,000 characters) and firing when the literal array only feeds a computed argument such asnew Set(["a", "b"].map(normalize));ts-import-typeno longer fires onimport("x").thenwritten with a non-breaking space or line separator before the call (#16556 by @will-bogusz)ida-mcp'sida_*tools), which also made its first request after waking miss the prompt cache; extensions see the revive as abefore_agent_startwith the newreason: "revive"(#16597 by @will-bogusz)readshows HEIC, HEIF and AVIF photos (such as iPhone pictures) as images instead of refusing them as binary, decoding them with ffmpeg 8.1 or newer; text-only models get their metadata, and without such an ffmpeg the error says how to convert the file (#16612 by @will-bogusz)readof web pages with tables, code or pricing lists (API references, specs, pricing pages) returning a shorter trafilatura or Jina rendering that leaves out much of the page, and noting the page "appears to require JavaScript or is mostly navigation" (#16596 by @will-bogusz)omp usage --jsonnow includes each policy-routed account's priority, reserve and routing state (eligible,inside-reserve,exhaustedorunknown) as apolicyobject, matching the policy line in the text view (#16581 by @will-bogusz)generate_imagecan now run Factory Droid's image models (GPT Image 2.5, GPT Image 2.5 Flare, Gemini 3 Pro Image) when one is chosen for theimagerole (#16316 by @will-bogusz)computer.apps.open(path, { app?, reveal? })call instead of a dozen steps driving Finder by hand (#16403 by @will-bogusz)~/.omp/browser-relay/extensionis rewritten and reloads itself once no omp session is using the relay (#15105 by @will-bogusz)browser.openresults when the Chrome extension was installed by an older omp, namingomp browser-relay installand a reload (#15105 by @will-bogusz)@pathfile mention reaching a text-only model as[image omitted: …]withimages.describeForTextModelsenabled; they now get thevisionrole description like pasted images (#16853)browser.open({ ignore_https_errors: true })still failing with certificate errors such asnet::ERR_CERT_AUTHORITY_INVALIDon the shared Chromium and onapp.cdp_urlbrowsers; the override now lasts until the tab is closed (#16930)ignore_https_errorsthrough the Chrome relay now fails up front, explaining that Chrome's extension debugger API cannot ignore certificate errors and pointing toapp.relay: false, instead of failing withSecurity.setIgnoreCertificateErrors wasn't found(#16930)agent://on the previous result instead of delivering the fresh answer (#16746)read proc://<agent>andwrite proc://<agent>/killanswering "not found" for a subagent that a message woke while its new turn runs as job<agent>-2; they now reach that job, and reading the agent's finished first job names the job it is running as (#17020 by @sjawhar)web_searchresults as the preferred provider's: the tool result now notes which provider answered and why the earlier ones failed (#16948 by @BAKocska)power.sleepPreventionsetting now says it keeps the machine awake only while the agent is running a turn, not for as long as a session is open (#16762 by @will-bogusz)/advisor, a config reload or a restart), not after a cooldown (#16766 by @will-bogusz)computertool'scomputer.window({ app })failing for an app with no open window without saying what to do; the error now names thecomputer.apps.open(…)call that launches it (on macOS it also shows a window of a running app that has none), andcomputer.window()with no argument asks for a window id or filter instead of listing windows that "match undefined" (#16912 by @will-bogusz)computertool prompt leavingel.selectTextout of the element helpers; it now says a followingel.typeon that element replaces the selection (#16769 by @will-bogusz)Fixed
display_name,context_window, andinput_modalitieswhen a model list nests them undermetadata, so codex-lb-style gateways surface the advertised name, window, and image input instead of the raw id and defaults. (#17010 by @adi-IL)artifact://link the truncation footer advertises now reads the in-memory copy instead of failing with "No session - artifacts unavailable". (#17009 by @adi-IL)ompbinaries trusting certificates from the compromised eMudhra intermediate CAs (CVE-2026-91403) and carrying the Brotli decoder out-of-bounds write (CVE-2026-111497); release binaries now build on Bun 1.4.4 (#16822, #16865 by @bse-ai)computerruns in subagents andomp -pstopping at their firstcontrol.acquire: they now keep working through background window input and report only a step that needs foreground control (#16909 by @will-bogusz)bash.gitGuardon, a repository that once finished a conflicted rebase no longer counts as mid-conflict forever, which had letgit checkout,switchandrestorethrough; branch switches such asgit checkout -B <branch> <commit>stay refused during a real merge or rebase too, abbreviated options such asgit reset --haare refused like the full ones, andgit stash createis allowed (#16919 by @will-bogusz)Execution context was destroyedorCannot find context with specified id, and afillcould land on the old form; they now wait for the new page (#16907 by @will-bogusz)readline selectors using different coordinates from URLgrepwhen the response includes transport headers (#16877).writeto a SQLite row ignoring the database's declared foreign keys: orphan inserts and updates now fail,ON DELETE RESTRICTblocks the delete, andON DELETE CASCADEremoves dependent rows (#16999)/mcp addwizard putting it in the hidden chat draft instead of the URL field (#16975).omp --from-claudekeeps the last real model when Claude records a synthetic API error, and does not try to restore a synthetic-only placeholder (#16785).用户点名…); they now keep the full preview budget (#17070)blocked: covered bynaming the button's own slotted content; real overlays are still refused (#16958).xlsxfiles rewriting numeric-looking text cells: long IDs like12345678901234567890no longer round (and collide), and text such as00123keeps its leading zeros (#16831)alias ls='eza --icons') leaking into the bash tool;ls,cat,grepand the other core tools now run the real binaries (#17067)collab.autoStartshares the moved session (#16935)defaultmodel whenmodelRoles.smolis unset and sending background requests to the built-in smol chain (e.g.claude-haiku-5-5) instead of the model/modelsshows for SMOL (#16970)models.ymldiscovery providers with anapiKey(and noauthHeader: true) showing 0 models in/modelsand ctrl+p right after startup despite a cached catalog; cached models now load immediately (#16965)temperatureto Claude Haiku 5.5, avoiding HTTP 400 failures (#16986)fillTextafter callingcanvas.getContext("2d")repeatedly (#16879)edit, or outside OMP before a rename) until the language server restarted (#16880)omp plugin upgradefailing on Windows withEPERM: operation not permitted, symlinkwhen the installed plugin was replaced byomp plugin link; a failed upgrade now restores the link as a junction (#16844)omp plugin upgrade a@m b@m c@mnow upgrades every specified plugin instead of silently skipping targets after the first (#16826)tab.fill()/tab.type()(andframe.fill()/frame.type()) that time out on long text now stop typing instead of finishing it behind the rejected call, and the timeout reports how many characters were typed instead of claiming the element was hidden or covered (#16833)tools.approval.<tool>: promptpolicy on a tool mounted as anxd://device asking the same approval question twice for onewrite xd://<tool>call (#17039)ResourceNotFoundso clients can offersession/loadrecovery (#16889).mode: decisionsmodel groups being offered as chat models instead of judge models, including for customdiscovery.type: litellmproviders (#16939)instructionsreturned by MCP servers declared insession/newnow reach the model under "## MCP Server Instructions", as they do for.mcp.jsonservers (#16882)ompinstead of the session title after a JS eval worker oromp browser-relayran in the same console; omp no longer retitles the console from child processes and reclaims the title when another process replaces it ([#16842](https://redirect.github.com/can135Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.