Repository navigation
chore(deps): update oh-my-pi to v18.14.2 - #60
Conversation
◈ PR LensNote This drawing shows
Architecture 1 component touched across 3 lanes. Data flow No data-flow sequence changed in this PR. View
Tip Push a commit and the comment redraws for the new head. A slow older run never overwrites a newer one. 🪧 More tips
Thanks for using PR Lens! It's built by Coldtea, and your support helps us grow. If you like it, consider giving us a shout-out. |
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Organization UI Review profile: QUIET Plan: Free Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
5003044 to
61571f2
Compare
cd874c6 to
2671de7
Compare
2671de7 to
22ad531
Compare
289aa51 to
7f4282c
Compare
7f4282c to
5db00f3
Compare
5db00f3 to
6f8783e
Compare
6f8783e to
b17fe98
Compare
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
18.14.0→18.14.218.14.0→18.14.218.14.0→18.14.2Release Notes
can1357/oh-my-pi (@oh-my-pi/omptype)
v18.14.2Compare Source
@oh-my-pi/pi-agent-core
Added
toolCall.steeringSignalnow aborts with the source of the queued message ("user","irc", …) as itsreason, so a tool can yield only to the sources it should (#17537)Fixed
stopReason: "length"instead of using truncated text as complete context. Omit incomplete display-only short summaries without discarding a completed full summary (#17499 by @Xytronix).@oh-my-pi/pi-ai
Breaking Changes
isLoopGuardedModelwithloopGuardLevel, which returns"off","exact", or"semantic"from the model'sthinking-loop-guardcatalog ruleAdded
disableServerSideFallbacktoFactoryDroidOptionsandSimpleStreamOptions: a Factory Droid request leaves out the server-side refusal fallback chain and fails, before any of its content is streamed, if another model answers it (#12229 by @Xytronix)Changed
Fixed
AuthStorage.close()andreplaceStore()losing a rotated OAuth refresh token when a refresh was still in flight, with or without durable refresh leases; the store now stays open until that token is saved, and new refreshes are refused (#17518)/usageshowing Cursor's "Other Models" meter as an inflated dollar amount; it now shows the percentage Cursor reports, like Cursor Models (#17462 by @eggpeat)omp auth-gatewayResponses endpoint rejecting documented null values for temperature,top_p, output limits, reasoning, and reasoning summaries (#17466 by @Xytronix).omp auth-gatewaychat-completions endpoint failing on the next turn: the gateway now returns each call's thought signature inextra_contentand replays the one a client sends back (#17509 by @justdoGIT)@oh-my-pi/pi-catalog
Breaking Changes
thinkingLoopGuardfrom compat records;thinking-loop-guardis now a catalog axis that applies on every host, with"semantic"for Gemini, DeepSeek, and Grok and"off"for ClaudeFixed
claude-opus-5,claude-opus-5.5,claude-sonnet-5,claude-sonnet-5.5) reporting the 1M window of their-1mvariants once the model list was read from cache; discovered limits now survive cached reads instead of reverting to bundled values (#17481)@oh-my-pi/pi-coding-agent
Added
task.perCallModel(offby default,eval,on) so a task item or an evalagent()/workpool()call can run on one exact model the operator already names: a chat role from your own (non-project) settings, the selected agent's own model, or the parent's current model. Glob values (anthropic/*) never approve a model.task.perCallModelAllownarrows that list,task.maxEffortcaps the worker's effort, and the worker never switches to another model. Project settings can only narrow this: they never turn it on or approve a model (#12229 by @Xytronix)Settings.reloadFromDisk({ includeParents: true }), which reloads the persisted settings behind an overlay while keeping the overlay's own overrides (#12229 by @Xytronix)Changed
modelis now declared in every task schema: a task call, evalagent()orworkpool()that passes a model the operator's configuration does not allow is refused with an error (#12229 by @Xytronix)omp statsshows the dashboard in place of the block it runs in, with a Close button (or Esc, or Ctrl+C) that stops it and brings the terminal back, and/statsopens it in a browser block beside omp, instead of the system browserbashtool commands now seePI_TOOL_CALL_ID, the id of the call running them, so a script the agent runs can point at that call in the session transcript (#17489 by @will-bogusz)judgment.attemptTimeoutMs) and briefly skip the timed-out route; without a configured fallback a slow judge is never cut off or replaced (#17465 by @Xytronix).Fixed
!or$command run while the agent works floating over the composer in Tern, where expanding its output covered the conversation; it now sits at the end of the conversationout://replies sent from an eval cell (tool.writetoout://, ortool.bashwith> out://) never appearing even though the write reported "Shown to the user."; they now draw as replies after the eval card, and are refused where nothing would show them (a backgrounded cell, a browser tab script)writetoout://(such asout://baselines.md) drawing as a Write card with line numbers instead of a reply streaming as proseratioorspeedupcolumn as a series beside the timings it was computed from, which read as "719× less" against the baselinereadof a directory hiding existingdist,build,node_modules,.git, and other dependency/build/cache subdirectories, which made them look absent (#17539)asksitting behind the unanswered dialog; the dialog now closes without cancelling the turn, while IRC messages and background completions leave it open (#17537).output()ignoring its documentedoffset,limit,queryandformatoptions and returning the rawreadtool result; it now returns the selected text (or theformat: "json"metadata) like Python'soutput()(#17455)readof a whole URL returning no content when the page's first line is over the 50 KB output budget, as on minified pages read with:raw; it now shows that line's first 50 KB (#17500 by @will-bogusz)@oh-my-pi/pi-mnemopi
Fixed
Drafting is active.→ctive), truncated multiword objects, or nothing forhas an …sentences (#17511)@oh-my-pi/pi-natives
Added
listWorkspace({ pruneExcludedDirs: false })to stop pruning standard dependency/build directory names; hidden directories such as.gitalso requirehidden: true(#17539)@oh-my-pi/omp-stats
Added
setStatsCloseHandler: while a host sets one, the dashboard shows a Close button in its top bar and closes on Esc or Ctrl+C (with no text selected), for hosts that show it in place of their terminalFixed
@oh-my-pi/pi-tui
Added
assertModelSupportsEffortCeiling(), which throws when a model has no supported thinking effort at or below atask.maxEffortceiling (#12229 by @Xytronix)iconButton(),quietButton()andsegmentedTabs()tonative/overlay, anddisabled,busyandiconoptions toactionButton()nativeTailtoComposer.setRuntimeChildrenoptions: containers whose children continue the native surface'smainafter the transcript instead of riding in the dockisHighlightLanguageandcreateCodeFrameStylerfor renderers that highlight source lines in their file's language (#17550 by @JustasMasiulis)Changed
…gap rows aligned in the line-number gutterbuttonkind get omp's buttons as real buttons (pointer cursor, accessible pressed/disabled state, a disabled button's tooltip says why) and segmented controls astabsvariant: "segmented"; older Tern builds keep the role-styled rowsFixed
ratio0.997 besideC++ (ms)drew as "719× less"):analyzeTablereads a column equal to the quotient of two others as restating them, written bare or as×/mcpand/sshhints after the highlighted command (Run /mcp list to see all configured servers.) falling back to the default text color instead of staying muted (#17521 by @JustasMasiulis)Found 1 definition(s):text; the response now counts them (1 definition) and shows each location over its source lines, its own line marked like a grep match (#17549 by @JustasMasiulis)accentandsuccesscolors match or nearly match (dark-terminal,dark-poimandres,light-poimandres): user rows are now bold, theassistant:label switches to the path color, and custom and advisor messages are muted (#17520 by @wolfiesch)@oh-my-pi/pi-utils
Added
oklabDistance, the perceptual distance between two hex colors (#17520)@oh-my-pi/pi-wire
Added
numstocodeprops (TspCodeProps): each line's number, so one block can show non-contiguous lines with…gap rows where the numbers jump.buttonkind (TspButtonProps: label, icon, keycaps,default/primary/quiet/dangervariants,sm/mdsizes, pressed, disabled with a reason, busy) andtabsvariant: "segmented".What's Changed
New Contributors
Full Changelog: can1357/oh-my-pi@v18.14.1...v18.14.2
v18.14.1Compare Source
@oh-my-pi/pi-agent-core
Breaking Changes
SentToolDefinitions.inactiveFor(messages, tools)is replaced bywithInactiveTools(context), which also clears a staleinactiveTools;transformProviderContextnow receives the request'sinactiveTools(#17492)Fixed
@oh-my-pi/pi-ai
Added
codexAccessProgramsstream option andconfigureCodexAccessPrograms()process default to turn off the automatic Daybreak Blueaccess_programsrequest on Codex (#17508 by @H4vC)waitForSiblingtoRotateCredentialOptions; set it tofalseto skip the short sibling-unblock wait inlimits.rotate()while still blocking the failed credential (#17439 by @wolfiesch)Changed
omp auth-gatewayare limited to the client's own tools, all advertised as MCP; Cursor's built-in tools (file, shell, edit, todo, web fetch, SCM) are no longer offered on that path (#17382 by @eggpeat)Fixed
omp auth-gatewaybeing told their file and shell tools were unavailable while the client ran the calls anyway, in Cursor's own argument shape (edits failed validation); each call now reaches the client as one of its own tools and the turn stops withtoolUseuntil the result comes back (#17382 by @eggpeat)omp auth-gatewaybeing told each tool call was handed off, which left Composer issuing calls blind and answering their results with empty stops; the gateway now keeps the Cursor run open while the client runs a step's calls and answers them in-band with the client's results on its next request (up to 30 minutes; otherwise the turn is rebuilt from history as before) (#17382 by @eggpeat)message_stopinstead of being cancelled, so the kept-alive connection is reused (#17432 by @flosrn)@oh-my-pi/pi-catalog
Changed
effortMapalias first, so the request lands on the tier the model serves instead of the nearest lower one (#17395 by @Maziar123)request-body-byte-limit), so the newest message's images can use the 8 MB reserve and long text cannot push images past the limit (#17492 by @will-bogusz)Fixed
@oh-my-pi/pi-coding-agent
Added
providers.openai-codex.daybreaksetting (default on) to stop omp from automatically requesting the Daybreak Blue cyber access program on eligible ChatGPT accounts; each session follows its own value (#17508 by @H4vC)/compactsent with the follow-up key (Ctrl+Q) while the agent works now runs when it yields instead of interrupting it (#17397 by @H4vC)omp session lease [--json] -- <session-id>...and the RPC commandget_session_lease, which report which sessions a running omp owns ({"held": [...], "unknown": [...]}) without taking ownership, so another program can check a session without forking it (#17428 by @andrebrait)title.refreshAfterPrompts: every N operator prompts, the judge model checks whether a generated session title still fits the conversation and regenerates it when it does not; user-set titles are never replaced (#17443 by @wolfiesch)/v1/modelsnow keep thereasoning_effort_mapandreasoning_requiredfacts they advertise: a route that serves only low/high/max routesmediumtohighinstead of the nearest lower tier, and a thinking-off request still sends a tier the route accepts (#17395 by @Maziar123)wait(#17391 by @will-bogusz)Changed
readof a web page keeps the title, description, author and dates of its<meta>tags and lists the others by name only, so pages cost about 6% fewer tokens (#17393 by @will-bogusz)Fixed
omp install git:github.com/user/repotreatinggitas the host instead of installing the GitHub plugin (#17436).readshowing a zip, tar, asar or ISO archive's old contents after a same-size rewrite within milliseconds of its previous write, on filesystems with coarse timestamps such as Linux ext4 (#17389 by @will-bogusz)fillin Chrome replaces the text of rich-text editors such as Slate (Discord) and Lexical instead of leaving the old text in place or breaking the editor, and an empty fill clears them (#17417 by @will-bogusz)@oh-my-pi/pi-natives
Added
FileLock.isHeld(path), which reports whether a lock is held without acquiring it (#17428 by @andrebrait)Fixed
fd, grep, glob) failing with "The filename, directory name, or volume label syntax is incorrect" or "path not found" for paths with./..components or/separators, includingfdrun without a search pathrsyncon Windows ignoring per-directory merge files whose name includes a directory part, such as--filter=':- ../rules'@oh-my-pi/pi-tui
Added
maxRowscallback toFigureMarkdown,SvgFigureandTableChartFigureso surfaces shorter than the screen can fit their figures; zero hides a figure without delaying transcript completion (#15661, #15853 by @KunoLu)Fixed
Follow up:input appearing at the left edge instead of at the caret when the hardware cursor is enabled (#17427)U+2028,U+2029), while keeping multiline formatting in the selected entry preview (#17430 by @lincicomb).@oh-my-pi/pi-utils
Added
isFileLockHeld, which reports whether a file lock is held without acquiring it (#17428 by @andrebrait)What's Changed
New Contributors
Full Changelog: can1357/oh-my-pi@v18.14.0...v18.14.1
can1357/oh-my-pi (@oh-my-pi/pi-coding-agent)
v18.14.2Compare Source
Added
task.perCallModel(offby default,eval,on) so a task item or an evalagent()/workpool()call can run on one exact model the operator already names: a chat role from your own (non-project) settings, the selected agent's own model, or the parent's current model. Glob values (anthropic/*) never approve a model.task.perCallModelAllownarrows that list,task.maxEffortcaps the worker's effort, and the worker never switches to another model. Project settings can only narrow this: they never turn it on or approve a model (#12229 by @Xytronix)Settings.reloadFromDisk({ includeParents: true }), which reloads the persisted settings behind an overlay while keeping the overlay's own overrides (#12229 by @Xytronix)Changed
modelis now declared in every task schema: a task call, evalagent()orworkpool()that passes a model the operator's configuration does not allow is refused with an error (#12229 by @Xytronix)omp statsshows the dashboard in place of the block it runs in, with a Close button (or Esc, or Ctrl+C) that stops it and brings the terminal back, and/statsopens it in a browser block beside omp, instead of the system browserbashtool commands now seePI_TOOL_CALL_ID, the id of the call running them, so a script the agent runs can point at that call in the session transcript (#17489 by @will-bogusz)judgment.attemptTimeoutMs) and briefly skip the timed-out route; without a configured fallback a slow judge is never cut off or replaced (#17465 by @Xytronix).Fixed
!or$command run while the agent works floating over the composer in Tern, where expanding its output covered the conversation; it now sits at the end of the conversationout://replies sent from an eval cell (tool.writetoout://, ortool.bashwith> out://) never appearing even though the write reported "Shown to the user."; they now draw as replies after the eval card, and are refused where nothing would show them (a backgrounded cell, a browser tab script)writetoout://(such asout://baselines.md) drawing as a Write card with line numbers instead of a reply streaming as proseratioorspeedupcolumn as a series beside the timings it was computed from, which read as "719× less" against the baselinereadof a directory hiding existingdist,build,node_modules,.git, and other dependency/build/cache subdirectories, which made them look absent (#17539)Configuration
📅 Schedule: (in timezone Europe/Warsaw)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.