chore(deps): update dependency can1357/oh-my-pi to v18.13.2 #241

Merged
renovate-bot merged 2 commits from renovate/can1357-oh-my-pi-18.x into main 2026-10-27 19:16:33 +00:00
Collaborator

This PR contains the following updates:

Package Update Change
can1357/oh-my-pi patch 18.13.1 → 18.13.2

⚠️ Warning

Some dependencies could not be looked up. Check the warning logs for more information.


Release Notes

can1357/oh-my-pi

v18.13.2

Compare Source

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

Added
  • AgentTool gained the optional handlesToolInterrupt flag: an interruptible tool that sets it (such as wait) still runs, without blocking, when a loop-owned interrupt is already queued, so it can drain the queued wake event instead of being skipped; user cancellation still skips it (#​17174 by @​alphastorm)

@​oh-my-pi/pi-ai

Fixed
  • Fixed OAuth logins shared by several processes being disabled with invalid_grant when they refreshed at the same time or one of them quit mid-refresh (#​17128 by @​sjawhar)
  • Fixed transient Google 429 rate-limit and capacity responses retrying in place without blocking or rotating credentials, while daily caps and zero-entitlement limits still rotate (#​17127 by @​GTanger)
  • Fixed Aliyun DashScope's multimodal gateway failing a turn on its intermittent InvalidParameter 400s for valid inline images ("provided URL does not appear to be valid", "Download multimodal file timed out"); they are now retried (#​17101 by @​shuairongzeng)
  • Fixed a revoked or rejected GitHub Copilot credential continuing to show its last cached usage quota instead of being dropped (#​17081)
  • Fixed Devin requests compressing the request body on the UI thread, which briefly froze the TUI on long conversations; requests under 1 KiB are now sent uncompressed

@​oh-my-pi/pi-catalog

Added
  • Added LM Studio decision models to discovery: models LM Studio reports as type: "decision" are listed as judge models served over its /v1/decisions endpoint, alongside its chat models (#​17169 by @​richiestanaway)

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

Added
  • Extensions in the interactive TUI can read and directly switch plan, vibe, goal, and loop modes with ctx.sessionModes and observe changes with the mode_changed event, without submitting slash commands; extensionHandlers.modeControl: false turns off extension-driven mode changes (#​15753 by @​Shadorain)
  • RPC hosts can capture draft-only speech-to-text with live previews when speech input is enabled, without submitting an agent turn; slow flushes have adjustable deadlines, and failed transcription does not block a session change after capture closes (#​17158 by @​felipe-santos-aya).
  • Added discovery.advertisedReasoning to let a custom provider opt out of the reasoning ladder its /v1/models rows advertise (default true); discovery: proxy now reads that ladder, its none off-switch, and an explicit reasoning: false instead of building every model's thinking surface from the bundled catalog reference alone (#​15255, #​17077 by @​Youwenqwq)
  • WATCHDOG.yml advisor entries now accept scope (main, subagent, or all, default all) to attach an advisor only to the top-level session or only to advised subagents, and includeReasoning: false to omit primary assistant _thinking:_ blocks from advisor review deltas (#​17058 by @​trukhinyuri)
  • Added session.worktreeScope to keep the resume picker scoped to one directory (#​17061 by @​Dante-dan).
  • LM Studio decision models can now serve the judge role (modelRoles.judge: lm-studio/<model>); they answer over LM Studio's /v1/decisions endpoint instead of being offered as chat models (#​17169 by @​richiestanaway)
  • Extensions' getAllTools() now reports mcpServerName, mcpToolName and mcpReadOnlyHint for MCP-backed tools, so an extension can tell read-only connector tools from ones that change things (#​17120 by @​cfpperche)
  • RPC: navigate_tree (move the leaf in the same session file, optionally summarizing the abandoned branch), abort_branch_summary and set_label, with matching RpcClient methods (#​17138 by @​andrebrait)
  • RPC: delta message_update frames (messageUpdates: "delta") now carry the block on start/end events and the message on a restart, so a client can rebuild the streaming message from deltas alone (#​17137 by @​andrebrait)
  • ctx.ui.input now accepts { secret: true } to mask typed characters as bullets in the TUI, forward an optional secret host hint on RPC extension_ui_request frames, and refuse plaintext form elicitation in ACP mode (#​17080 by @​GTanger)
  • Added opt-in gc.autoCompress (default off): interactive launches start a detached, low-priority omp gc --compress --apply at most once a day, so idle sessions are stored compressed without running the command; volumes where compression does not shrink a probe file (e.g. macOS 27) are skipped, and the latest run's output or skip reason is in gc-auto-compress.log in the agent dir (#​17189 by @​wolfiesch)
  • Added withFatLto to the Nix package: omp.override { withFatLto = false; } links pi-natives with thin LTO for faster builds (#​13752 by @​n3oney)
Changed
  • Bundled scout subagents now include ast_grep in their default tool list, matching the agent prompt's AST-search directive; scout stays read-only, so lsp (which can rename and apply code actions) is not added (#​17151 by @​sinhduc01)
  • Clearing a draft now brings back the idle recap and idle compaction it held off, a subagent view you return to gets the recap it still owed, and prompts, turn-starting messages and IRC wakes that arrive during idle compaction wait for it to finish; SDK owners can opt a session in with AgentSession.enableIdleMaintenance({ isBlocked, scheduledTurn, onRecap }) and refreshIdleMaintenance() (#​17136 by @​andrebrait)
  • TTSR interrupts include a bounded excerpt of the text that matched the rule, quoted as untrusted data with harness tags escaped; excerpts are retained once per stream, preserved alongside AST matches, and omitted for zero-width matches (#​17099 by @​shgew)
  • Sessions that load several provider-registering extensions into a shared model registry (subagents, /tan, SDK hosts) start faster: the model catalog is rebuilt once instead of once per extension (#​17088 by @​Delije4)
  • Qwen 3.8 models (for example Qwen3.8-Flash-Next served locally) now get the replace edit tool instead of hashline, like Kimi, DeepSeek and GLM 5.3 Flash; an explicit edit.mode, edit.modelVariants, PI_EDIT_VARIANT or PI_STRICT_EDIT_MODE still wins (#​17096 by @​ianderse)
  • ACP clients now receive each tool's name on tool_call, so tools without a specific ACP kind (task, wait, ask, …) show their own name instead of a generic "tool" label (#​17162 by @​epk)
  • /context now opens an interactive, read-only viewer of the active prompt, tools, messages, and thinking with estimated token usage and per-tool output, instead of the static usage report (#​16160 by @​C-W-Z).
  • Nix builds cache Rust dependencies and the native addon in separate derivations, so Rust edits no longer recompile every dependency and TypeScript edits reuse the addon (#​13752 by @​n3oney)
Fixed
  • Fixed ask questions being unanswerable while the prompt held a draft: Up/Down now hand the keyboard to the question (typing still goes to the draft until then), and the untouched draft is back in the prompt once the question is answered or cancelled (#​17215 by @​H4vC)
  • Fixed the Agent Hub becoming unreachable after the last subagent finished: the people icon now stays (muted) while the session has subagents to inspect, and /subagents opens the hub as an alias of /hub (#​17215 by @​H4vC)
  • Fixed /goal pause leaving the goal tool active; pausing now restores the toolset from before the goal started (#​15753 by @​Shadorain)
  • Fixed /live flipping between listening and speaking at every pause in the assistant's speech; speaking now holds through short pauses (#​17114)
  • Fixed the workflowz notice showing Python call forms in JS-only sessions and describing keep-alive workers when eval.workpool.freshAgents is on (#​17152 by @​bigHippoZz)
  • Fixed the first request after midnight or a working-directory change rewriting the conversation's first message, which broke OpenAI response chaining and the provider prompt cache, when an extension context handler or secret obfuscation was active, when an extension inserted its own message afresh on every request (superpowers' bootstrap), or when requests from one or more advisors ran in between; the new date or directory is now appended after the earlier turns, and is repeated when a side question (/btw) or a branch left out the turn that carried it (#​17117 by @​sjawhar)
  • Fixed :auto on a retry fallback entry being ignored: a fixed-effort session now switches to auto thinking on that fallback instead of inheriting the failing turn's effort, and advisor fallbacks keep following the primary's effort without enabling unverified thinking (#​17100 by @​shgew)
  • Fixed ssh:// home-relative paths resolving against literal /~ instead of the remote account's home (#​17182 by @​alphastorm)
  • Fixed searches of ssh:// directories failing with unsupported directory scans (#​17182 by @​alphastorm)
  • Fixed clone-first worktrees carrying source-bound Python environments and CMake build trees, including self-ignored and nested directories (#​17181 by @​alphastorm)
  • Fixed clean cloned worktrees carrying files ignored only by the source checkout, while retaining caches ignored by the target (#​17181 by @​alphastorm)
  • Fixed glob patterns ending in / returning no directories or including matching files; directory-only constraints now work across local, URL, and multi-root searches (#​17180 by @​alphastorm)
  • Fixed recursive skill:// glob and find discovery skipping contained linked directories; linked resources keep their skill URLs and directory cycles terminate (#​17180 by @​alphastorm)
  • Fixed find treating nonempty linked files as empty and dropping them before judgment (#​17180 by @​alphastorm)
  • Fixed JSON selectors failing on BOM-prefixed input, backup and extensionless files, and modifier-only queries (#​17179 by @​alphastorm)
  • Fixed JSON selectors on ssh:// text files while preserving pagination and the remote read limit (#​17179 by @​alphastorm)
  • Fixed tool.apply_patch(...) being rejected as an unknown tool in JavaScript eval when apply-patch editing is enabled (#​17178 by @​alphastorm)
  • Fixed eval silently changing supplied cell deadlines without showing the requested and effective timeouts (#​17178 by @​alphastorm)
  • Fixed unavailable Python remaining in eval's advertised languages and corrected its interpreter setup guidance (#​17178 by @​alphastorm)
  • Fixed PDF archive members returning a binary-entry banner instead of converted text, with PDF selectors and page-image reads now supported (#​17175 by @​alphastorm)
  • Fixed github run_watch labeling unavailable or partial failed-job logs as full logs, and included bounded fetch-failure reasons (#​17173 by @​alphastorm)
  • Fixed github pr_create echoing large PR bodies in creation summaries and xd://github result details (#​17173 by @​alphastorm)
  • Fixed raw URL reads prepending transport headers and normalizing response whitespace; raw URL bodies, ranges, and artifacts now share source-body coordinates (#​17171 by @​alphastorm)
  • Fixed raw ranged reads adding elision rows, continuation notices for satisfied ranges, and conflict instructions to selected source text (#​17171 by @​alphastorm)
  • Fixed read replacing a valid HTML page with a stale or missing guessed .md page; alternate representations now report their actual source URL (#​16834)
  • Fixed implicit interactive autoResume failing every launch when a saved model cannot be restored and model fallback is disabled: startup now warns and opens a fresh session without carrying over the old history or cache identity, while preserving the original --max-time deadline. Saved-model diagnostics in the warning are sanitized and length-limited before display. Explicit resume and headless model-restoration restrictions remain unchanged (#​17163 by @​SAKANA-MOONLIGHT).
  • Fixed proc://<id>/mode reporting a known in-process job or agent as a missing service, and clarified that stdin and lifetime modes are services-only (#​17170 by @​alphastorm)
  • Fixed Rex and other OSC 7501 terminals losing the working or blocked indicator when omp redraws a user message during a run (#​17145)
  • Fixed hintless Google HTTP 429 model-capacity responses using the 45–75s model-capacity backoff instead of the short generic retry delay (#​17127 by @​GTanger)
  • Fixed skill:// reads, /skill: commands (terminal, ACP and RPC) and subagent autoload skills serving a plugin's old version, or failing with File not found, in a running session after omp plugin upgrade installed a new version; the session now rediscovers its skills and uses the upgraded files, whether or not the old version's directory was deleted (#​17027 by @​sjawhar)
  • Fixed Esc on a busy session (and RPC abort_and_restore_queue) silently discarding queued messages from extensions and agents, such as pi.sendMessage steer/follow-up cards and agent-attributed prompts; they now appear in the transcript without restarting the run and reach the model with your next prompt (#​17161 by @​sjawhar)
  • Fixed a failed delivery of messages typed during compaction discarding other queued messages, such as an extension's prompt; only the messages that delivery queued are taken back, and messages anything else queued before, during or after it stay queued (#​17161 by @​sjawhar)
  • Fixed a failed delivery of messages typed during compaction sending the first of them twice: once now and again with the retried batch (#​17161 by @​sjawhar)
  • Fixed --resume <file|id>, --continue, SessionManager.continueRecent(), the resume pickers and RPC open_session reviving an old copy of a conversation that had continued in a new file because omp could not keep writing the original (another omp process held it, or the file changed under it); resume now opens the copy with the newest turn, unless the original has turns of its own that copy lacks (for --resume, the pickers, and --continue or auto-resume of the terminal's last session), and says which file it picked; --continue and auto-resume without a record of the terminal's last session, and RPC open_session, take the copy with the newest turn among all linked copies, whichever one was written last. Copies saved before this fix are not linked and still resume as before (#​17159 by @​sjawhar)
  • Fixed a retry.fallbackChains entry naming another Claude model being skipped while the latest Claude turn carries signed thinking: the chain now moves to that entry when the failure is on another model, is not retried (an account-policy denial, a non-retryable error, or a wait past retry.maxDelayMs), or has spent its retries (#​17115 by @​sjawhar)
  • Anthropic composer predictions now cache the persisted conversation prefix; /btw follow-ups reuse stable topic history without caching regenerated image descriptions (#​17186)
  • Fixed wait returning a skipped-tool error for background completions, peer messages, or parent steering queued before execution (#​17174 by @​alphastorm)
  • Session-stop extensions now pass all continuation messages to the agent instead of silently discarding every message after the first; blocking decisions still take priority (#​17129 by @​aktanazat)
  • Fixed the crash and SIGTERM recovery hint offering omp --resume <id> for a session that was never saved to disk, which --resume cannot load; such a session now prints no resume command (#​17119 by @​sjawhar)
  • Fixed Ctrl+V over SSH pasting the server's clipboard when the client terminal forwards the key instead of pasting (e.g. Tern on Windows into a macOS host); omp now leaves the remote clipboard alone and points you to your terminal's paste shortcut (#​17149 by @​H4vC)
  • Fixed apply_patch committing unmatched old/context text or dropping numeric prefixes; matching now uses complete lines without changing other edit modes' fuzzy behavior (#​17184 by @​alphastorm)
  • Fixed context-free apply_patch line deletions leaving blank rows, including first, last and only lines (#​17184 by @​alphastorm)
  • Fixed apply_patch rejecting move-only updates and move-then-add envelopes; moves preserve source bytes and permissions and later sections see the ordered file state (#​17184 by @​alphastorm)
  • Fixed omp plugin commands applying changes under --dry-run: upgrade and omp update --plugins --check now preview, and actions without a preview reject the flag (#​17104 by @​sjawhar)
  • Turning off async.widgets mid-session now stops spec requests for already-shown job widgets and aborts any request in flight (#​17090 by @​yuzu-octopus)
  • Fixed learn not hot-registering a newly minted or updated managed skill in the active session (session.skills, skill://, and the system prompt), and fixed composeRecallQuery dropping prior user turns when an earlier turn repeated the latest prompt (#​17113 by @​GTanger)
  • Fixed @path file mentions skipping .pdf, .docx, .xlsx, .pptx, and .epub files as binary instead of converting them to Markdown with markit like CLI @file arguments and read (#​17193 by @​GTanger)
  • Fixed an automatic retry fallback (a hop down retry.fallbackChains or the Fireworks Fast degrade) re-rendering the system prompt for the new model, which made Anthropic write the whole cached conversation again on each hop; a hop now keeps the Model line and Delegation wording, and rebuilds only when the new model needs a different edit mode, tool-description handling, or tool set (#​17014 by @​sjawhar)
  • Fixed a live subagent's system prompt re-rendering its peer list, with each peer's current activity, on every rebuild, which made Anthropic write the whole cached conversation again; the list now updates only when a rebuild changes the rest of the prompt, and history:// lists the current peers (#​17014 by @​sjawhar)
  • SQLite row selectors now avoid shadowed ROWID aliases so reads, updates, and deletes target the intended single row. (#​16998, #​17001 by @​ai-yang)
  • Fixed composer predictions offering notes relayed in from other agents or sessions (for example an orchestrator's pasted status note) as the user's next message; predictions now cover only what the person at the keyboard would type (#​17185 by @​wolfiesch)
  • Fixed image descriptions using the first vision model in catalog order (such as claude-fable-5) when no vision model is configured; they now use the least expensive priced vision-capable model (#​17148, #​17196 by @​gcp)
  • Fixed wait results and background job deliveries naming a finished subagent only by a job id that differs from its agent id (e.g. Foo-2 for a messaged agent's new turn), where agent://Foo-2 and history://Foo-2 are not found; they now name history://Foo, plus agent://Foo when that turn published its output (#​17112 by @​sjawhar)
  • Fixed RpcClient.promptAndWait() hanging until its timeout when the agent process exits or the client stops after the prompt was acknowledged; it now rejects right away (#​17135 by @​andrebrait)
  • Fixed reading versioned Read the Docs pages serving the development branch's source file instead of the requested version's content when the page's Edit link targets another branch (#​17091 by @​yuzu-octopus)
  • Fixed RPC startup hanging when an extension opens a dialog during session_start: the client can now answer it, and other commands still wait for startup to finish, in order (#​17139 by @​andrebrait)
  • Fixed extension tools disappearing once the startup plan mode (plan.defaultOnStartup) was paused or its plan approved: tools of extensions that load after startup now stay, while built-ins that plan mode registered, such as its write transport, still go (#​17085 by @​appboypov)
  • Fixed a batch task call silently ignoring a model (or sourceSession) on a non-seance item while the seance agent is hidden, so the child ran on its own model; the call is now refused with the same error as a single-agent call (#​17107 by @​sjawhar)
  • Fixed an edit under an older [path#TAG] header, after another edit had changed the file, applying to lines that read never displayed, including a line it had cut at the column cap; such an edit now shows the anchored lines first, as it does under the file's current tag (#​16208, #​17033 by @​sjawhar)
  • Fixed omp gc --compress (and the gc.autoCompress background run) taking minutes on large session histories (#​17195 by @​H4vC)
  • Fixed omp gc --compress --apply spending time on every idle session where the filesystem does not actually compress files (e.g. macOS 27); it now reports compress skipped: <reason>, and gc.autoCompress no longer slows interactive startup with that check (#​17195 by @​H4vC)

@​oh-my-pi/pi-mnemopi

Fixed
  • Fixed local embeddings using one spinning CPU thread per core, so a single recall query cost several CPU-seconds on a many-core machine (#​17109 by @​sjawhar)

@​oh-my-pi/pi-natives

Added
  • Added opt-in, cycle-safe descendant-link traversal to native glob through followLinks, leaving default traversal unchanged (#​17180 by @​alphastorm)
Changed
Fixed
  • Fixed the built-in sort using many times its -S buffer size, or more memory than its container allows or the machine has available, on inputs of short lines, and ignoring timeout or a cancel while it sorts (#​17155 by @​sjawhar)
  • Fixed the built-in sort -m and sort -c splitting lines longer than their read buffer, and sort joining a file's unterminated last line to the next file's first line (#​17155 by @​sjawhar)
  • Fixed the built-in sort -S N% using the wrong buffer size: -S 50% gave 0 bytes and -S 100% a thousand times the machine's memory; it is now N percent of physical memory as in GNU sort (#​17155 by @​sjawhar)
  • Exited bash-tool & jobs are reaped without another command; wait still reports their status, and $! works inside pipelines, subshells, and command substitutions (#​17144).
  • On macOS, the bash tool's built-in ps includes other users' processes and unreaped zombies when selecting a PID (#​17144).
  • Fixed native glob file-type filters discarding target size and modification time for linked files (#​17180 by @​alphastorm)
  • Fixed leading UTF-8 BOMs causing embedded jq JSON input parse errors while preserving raw-input bytes (#​17179 by @​alphastorm)
  • Fixed the shell's timeout and tool aborts not stopping built-in commands that were still reading (cat /dev/zero, huge files, FIFOs with no writer) (#​17141 by @​sjawhar)
  • Fixed a tool abort leaving a background in-process command, such as cat /dev/zero > /dev/null &, running and keeping a core busy after its shell session was gone (#​17141 by @​sjawhar)
  • Fixed a shell redirect to or from a FIFO whose other end is a background job, such as echo hi > f & cat < f, hanging the command; a tool abort now also stops a write redirect to a FIFO that has no reader (#​17141 by @​sjawhar)
  • Fixed a background external command with a FIFO redirect, such as /bin/cat < f & echo hi > f, hanging the shell until the FIFO's other end opened; the command's own process now opens it, as in bash (#​17141 by @​sjawhar)
  • Fixed timeout printing error: interrupted when its limit stopped a built-in command; like GNU timeout, it now prints nothing of its own and exits 124 (#​17141 by @​sjawhar)
  • Fixed crackling in live voice playback: the assistant's speech now absorbs packet jitter without dropping out, short turns play without waiting for the next response, and lost packets no longer insert extra synthesized audio (#​17114)
  • Fixed the bash tool's rm -r and du crashing the whole session with a stack overflow on a directory tree thousands of levels deep; rm -r also removes such a tree without running out of file descriptors, and reports a directory that is its own ancestor instead of descending into it (#​17021 by @​sjawhar)
  • Fixed the bash tool's find panicking and writing a native panic report to ~/.omp/logs when the command reading its output exits early, as in find . -printf '%p\n' | head -1, or when its stderr is closed; it now stops quietly, and a failed -fprintf write is reported instead of find: internal error (#​17079 by @​trukhinyuri)
  • Fixed the shell's built-in grep and rg running the whole agent out of memory on a file with no line breaks, such as a large sparse file: a line over 256 MiB is now reported as not searched for that file and the search continues, and a -f pattern file over 256 MiB is refused with exit status 2 (#​17108 by @​sjawhar)
  • Fixed the embedded shell's globs keeping matches whose literal tail does not exist: ls -d DIR/*/ now lists only directories instead of passing every file as file/, and */name keeps only matches that contain name, as in bash (#​17110 by @​sjawhar)
  • Fixed the embedded shell ignoring shopt -s globstar: ** now matches any number of directory levels as in bash (**/*.rs finds files at every depth, also in compgen -G), and a timeout or interrupt stops a long ** expansion (#​17111 by @​sjawhar)

@​oh-my-pi/pi-tui

Added
  • Added a frame-write listener (TUI.addFrameWriteListener) for terminal integrations that need to react to emitted ANSI output, including resize paints (#​17145)
  • HookInputComponent (showHookInput) now accepts { secret: true } to mask typed characters as bullets (•) in input overlays (#​17080 by @​GTanger)
  • Added an ANSI and native /context viewer with category navigation, content inspection, token-usage and compaction estimates, and keyboard/mouse controls that adapt across Tern and other terminals (#​16160 by @​C-W-Z).
Fixed
  • Fixed AskDialogComponent's draft input guard holding the keyboard until the draft was cleared; Up/Down (or a pointer action) now release it so the question can be answered with the draft parked, and syncPresentation receives the effective blocked state (#​17215 by @​H4vC)
  • Fixed the prompt editor's autocomplete popup (e.g. emoji suggestions after :D) staying open and following the cursor after Shift/Ctrl/Alt+Enter inserted a newline, so the next Enter submitted past a stale list; newlines and cursor motion (arrows, Home/End, word jumps, character jumps) now close it (#​17215 by @​H4vC)
  • Fixed run_watch failed-job rows hiding why a job's logs are unavailable; multiline gh errors now stay on one row (#​17173 by @​alphastorm)
Removed
  • Removed the static context usage report (ContextUsageView, renderContextUsage, describeContextUsage), contextUsageHead(), and the glyph and color fields of ContextBreakdown categories; use ContextViewer (#​16160 by @​C-W-Z).
  • Fixed Markdown tables inside list items disappearing from the terminal transcript (#​17165).

@​oh-my-pi/pi-utils

Added
  • Added deadlineMs and waitMessage cleanup registration options: shutdown waits longer for that callback, but only while it is still pending, and says so on stderr once nothing else is left to wait for (#​17128 by @​sjawhar)
  • A process stopped by SIGTERM now prints its registered recovery commands after the terminal is handed back, so a stopped omp session shows omp --resume <id> instead of leaving its last frame above the shell prompt like a crash (#​17119 by @​sjawhar)
Fixed
  • Fixed plain TAR archives requiring a whole-container memory buffer to list entries or read a selected member (#​17175 by @​alphastorm)

What's Changed

New Contributors

Full Changelog: https://github.com/can1357/oh-my-pi/compare/v18.13.1...v18.13.2


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [can1357/oh-my-pi](https://github.com/can1357/oh-my-pi) | patch | `18.13.1` → `18.13.2` | --- > ⚠️ **Warning** > > Some dependencies could not be looked up. Check the warning logs for more information. --- ### Release Notes <details> <summary>can1357/oh-my-pi</summary> ### [`v18.13.2`](https://github.com/can1357/oh-my-pi/releases/tag/v18.13.2) [Compare Source](https://github.com/can1357/oh-my-pi/compare/v18.13.1...v18.13.2) #### [@&#8203;oh-my-pi/pi-agent-core](https://github.com/oh-my-pi/pi-agent-core) ##### Added - `AgentTool` gained the optional `handlesToolInterrupt` flag: an interruptible tool that sets it (such as `wait`) still runs, without blocking, when a loop-owned interrupt is already queued, so it can drain the queued wake event instead of being skipped; user cancellation still skips it ([#&#8203;17174](https://github.com/can1357/oh-my-pi/pull/17174) by [@&#8203;alphastorm](https://github.com/alphastorm)) #### [@&#8203;oh-my-pi/pi-ai](https://github.com/oh-my-pi/pi-ai) ##### Fixed - Fixed OAuth logins shared by several processes being disabled with `invalid_grant` when they refreshed at the same time or one of them quit mid-refresh ([#&#8203;17128](https://github.com/can1357/oh-my-pi/pull/17128) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed transient Google 429 rate-limit and capacity responses retrying in place without blocking or rotating credentials, while daily caps and zero-entitlement limits still rotate ([#&#8203;17127](https://github.com/can1357/oh-my-pi/pull/17127) by [@&#8203;GTanger](https://github.com/GTanger)) - Fixed Aliyun DashScope's multimodal gateway failing a turn on its intermittent `InvalidParameter` 400s for valid inline images ("provided URL does not appear to be valid", "Download multimodal file timed out"); they are now retried ([#&#8203;17101](https://github.com/can1357/oh-my-pi/pull/17101) by [@&#8203;shuairongzeng](https://github.com/shuairongzeng)) - Fixed a revoked or rejected GitHub Copilot credential continuing to show its last cached usage quota instead of being dropped ([#&#8203;17081](https://github.com/can1357/oh-my-pi/issues/17081)) - Fixed Devin requests compressing the request body on the UI thread, which briefly froze the TUI on long conversations; requests under 1 KiB are now sent uncompressed #### [@&#8203;oh-my-pi/pi-catalog](https://github.com/oh-my-pi/pi-catalog) ##### Added - Added LM Studio decision models to discovery: models LM Studio reports as `type: "decision"` are listed as `judge` models served over its `/v1/decisions` endpoint, alongside its chat models ([#&#8203;17169](https://github.com/can1357/oh-my-pi/pull/17169) by [@&#8203;richiestanaway](https://github.com/richiestanaway)) #### [@&#8203;oh-my-pi/pi-coding-agent](https://github.com/oh-my-pi/pi-coding-agent) ##### Added - Extensions in the interactive TUI can read and directly switch plan, vibe, goal, and loop modes with `ctx.sessionModes` and observe changes with the `mode_changed` event, without submitting slash commands; `extensionHandlers.modeControl: false` turns off extension-driven mode changes ([#&#8203;15753](https://github.com/can1357/oh-my-pi/pull/15753) by [@&#8203;Shadorain](https://github.com/Shadorain)) - RPC hosts can capture draft-only speech-to-text with live previews when speech input is enabled, without submitting an agent turn; slow flushes have adjustable deadlines, and failed transcription does not block a session change after capture closes ([#&#8203;17158](https://github.com/can1357/oh-my-pi/pull/17158) by [@&#8203;felipe-santos-aya](https://github.com/felipe-santos-aya)). - Added `discovery.advertisedReasoning` to let a custom provider opt out of the reasoning ladder its `/v1/models` rows advertise (default `true`); `discovery: proxy` now reads that ladder, its `none` off-switch, and an explicit `reasoning: false` instead of building every model's thinking surface from the bundled catalog reference alone ([#&#8203;15255](https://github.com/can1357/oh-my-pi/issues/15255), [#&#8203;17077](https://github.com/can1357/oh-my-pi/pull/17077) by [@&#8203;Youwenqwq](https://github.com/Youwenqwq)) - `WATCHDOG.yml` advisor entries now accept `scope` (`main`, `subagent`, or `all`, default `all`) to attach an advisor only to the top-level session or only to advised subagents, and `includeReasoning: false` to omit primary assistant `_thinking:_` blocks from advisor review deltas ([#&#8203;17058](https://github.com/can1357/oh-my-pi/pull/17058) by [@&#8203;trukhinyuri](https://github.com/trukhinyuri)) - Added `session.worktreeScope` to keep the resume picker scoped to one directory ([#&#8203;17061](https://github.com/can1357/oh-my-pi/pull/17061) by [@&#8203;Dante-dan](https://github.com/Dante-dan)). - LM Studio decision models can now serve the `judge` role (`modelRoles.judge: lm-studio/<model>`); they answer over LM Studio's `/v1/decisions` endpoint instead of being offered as chat models ([#&#8203;17169](https://github.com/can1357/oh-my-pi/pull/17169) by [@&#8203;richiestanaway](https://github.com/richiestanaway)) - Extensions' `getAllTools()` now reports `mcpServerName`, `mcpToolName` and `mcpReadOnlyHint` for MCP-backed tools, so an extension can tell read-only connector tools from ones that change things ([#&#8203;17120](https://github.com/can1357/oh-my-pi/pull/17120) by [@&#8203;cfpperche](https://github.com/cfpperche)) - RPC: `navigate_tree` (move the leaf in the same session file, optionally summarizing the abandoned branch), `abort_branch_summary` and `set_label`, with matching `RpcClient` methods ([#&#8203;17138](https://github.com/can1357/oh-my-pi/pull/17138) by [@&#8203;andrebrait](https://github.com/andrebrait)) - RPC: delta `message_update` frames (`messageUpdates: "delta"`) now carry the block on start/end events and the message on a restart, so a client can rebuild the streaming message from deltas alone ([#&#8203;17137](https://github.com/can1357/oh-my-pi/pull/17137) by [@&#8203;andrebrait](https://github.com/andrebrait)) - `ctx.ui.input` now accepts `{ secret: true }` to mask typed characters as bullets in the TUI, forward an optional `secret` host hint on RPC `extension_ui_request` frames, and refuse plaintext form elicitation in ACP mode ([#&#8203;17080](https://github.com/can1357/oh-my-pi/pull/17080) by [@&#8203;GTanger](https://github.com/GTanger)) - Added opt-in `gc.autoCompress` (default off): interactive launches start a detached, low-priority `omp gc --compress --apply` at most once a day, so idle sessions are stored compressed without running the command; volumes where compression does not shrink a probe file (e.g. macOS 27) are skipped, and the latest run's output or skip reason is in `gc-auto-compress.log` in the agent dir ([#&#8203;17189](https://github.com/can1357/oh-my-pi/pull/17189) by [@&#8203;wolfiesch](https://github.com/wolfiesch)) - Added `withFatLto` to the Nix package: `omp.override { withFatLto = false; }` links `pi-natives` with thin LTO for faster builds ([#&#8203;13752](https://github.com/can1357/oh-my-pi/pull/13752) by [@&#8203;n3oney](https://github.com/n3oney)) ##### Changed - Bundled `scout` subagents now include `ast_grep` in their default tool list, matching the agent prompt's AST-search directive; `scout` stays read-only, so `lsp` (which can rename and apply code actions) is not added ([#&#8203;17151](https://github.com/can1357/oh-my-pi/pull/17151) by [@&#8203;sinhduc01](https://github.com/sinhduc01)) - Clearing a draft now brings back the idle recap and idle compaction it held off, a subagent view you return to gets the recap it still owed, and prompts, turn-starting messages and IRC wakes that arrive during idle compaction wait for it to finish; SDK owners can opt a session in with `AgentSession.enableIdleMaintenance({ isBlocked, scheduledTurn, onRecap })` and `refreshIdleMaintenance()` ([#&#8203;17136](https://github.com/can1357/oh-my-pi/pull/17136) by [@&#8203;andrebrait](https://github.com/andrebrait)) - TTSR interrupts include a bounded excerpt of the text that matched the rule, quoted as untrusted data with harness tags escaped; excerpts are retained once per stream, preserved alongside AST matches, and omitted for zero-width matches ([#&#8203;17099](https://github.com/can1357/oh-my-pi/pull/17099) by [@&#8203;shgew](https://github.com/shgew)) - Sessions that load several provider-registering extensions into a shared model registry (subagents, `/tan`, SDK hosts) start faster: the model catalog is rebuilt once instead of once per extension ([#&#8203;17088](https://github.com/can1357/oh-my-pi/pull/17088) by [@&#8203;Delije4](https://github.com/Delije4)) - Qwen 3.8 models (for example `Qwen3.8-Flash-Next` served locally) now get the `replace` edit tool instead of hashline, like Kimi, DeepSeek and GLM 5.3 Flash; an explicit `edit.mode`, `edit.modelVariants`, `PI_EDIT_VARIANT` or `PI_STRICT_EDIT_MODE` still wins ([#&#8203;17096](https://github.com/can1357/oh-my-pi/pull/17096) by [@&#8203;ianderse](https://github.com/ianderse)) - ACP clients now receive each tool's name on `tool_call`, so tools without a specific ACP kind (`task`, `wait`, `ask`, …) show their own name instead of a generic "tool" label ([#&#8203;17162](https://github.com/can1357/oh-my-pi/pull/17162) by [@&#8203;epk](https://github.com/epk)) - `/context` now opens an interactive, read-only viewer of the active prompt, tools, messages, and thinking with estimated token usage and per-tool output, instead of the static usage report ([#&#8203;16160](https://github.com/can1357/oh-my-pi/pull/16160) by [@&#8203;C-W-Z](https://github.com/C-W-Z)). - Nix builds cache Rust dependencies and the native addon in separate derivations, so Rust edits no longer recompile every dependency and TypeScript edits reuse the addon ([#&#8203;13752](https://github.com/can1357/oh-my-pi/pull/13752) by [@&#8203;n3oney](https://github.com/n3oney)) ##### Fixed - Fixed `ask` questions being unanswerable while the prompt held a draft: Up/Down now hand the keyboard to the question (typing still goes to the draft until then), and the untouched draft is back in the prompt once the question is answered or cancelled ([#&#8203;17215](https://github.com/can1357/oh-my-pi/pull/17215) by [@&#8203;H4vC](https://github.com/H4vC)) - Fixed the Agent Hub becoming unreachable after the last subagent finished: the people icon now stays (muted) while the session has subagents to inspect, and `/subagents` opens the hub as an alias of `/hub` ([#&#8203;17215](https://github.com/can1357/oh-my-pi/pull/17215) by [@&#8203;H4vC](https://github.com/H4vC)) - Fixed `/goal pause` leaving the `goal` tool active; pausing now restores the toolset from before the goal started ([#&#8203;15753](https://github.com/can1357/oh-my-pi/pull/15753) by [@&#8203;Shadorain](https://github.com/Shadorain)) - Fixed `/live` flipping between `listening` and `speaking` at every pause in the assistant's speech; `speaking` now holds through short pauses ([#&#8203;17114](https://github.com/can1357/oh-my-pi/issues/17114)) - Fixed the `workflowz` notice showing Python call forms in JS-only sessions and describing keep-alive workers when `eval.workpool.freshAgents` is on ([#&#8203;17152](https://github.com/can1357/oh-my-pi/pull/17152) by [@&#8203;bigHippoZz](https://github.com/bigHippoZz)) - Fixed the first request after midnight or a working-directory change rewriting the conversation's first message, which broke OpenAI response chaining and the provider prompt cache, when an extension `context` handler or secret obfuscation was active, when an extension inserted its own message afresh on every request (superpowers' bootstrap), or when requests from one or more advisors ran in between; the new date or directory is now appended after the earlier turns, and is repeated when a side question (`/btw`) or a branch left out the turn that carried it ([#&#8203;17117](https://github.com/can1357/oh-my-pi/pull/17117) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed `:auto` on a retry fallback entry being ignored: a fixed-effort session now switches to auto thinking on that fallback instead of inheriting the failing turn's effort, and advisor fallbacks keep following the primary's effort without enabling unverified thinking ([#&#8203;17100](https://github.com/can1357/oh-my-pi/pull/17100) by [@&#8203;shgew](https://github.com/shgew)) - Fixed `ssh://` home-relative paths resolving against literal `/~` instead of the remote account's home ([#&#8203;17182](https://github.com/can1357/oh-my-pi/pull/17182) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed searches of `ssh://` directories failing with unsupported directory scans ([#&#8203;17182](https://github.com/can1357/oh-my-pi/pull/17182) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed clone-first worktrees carrying source-bound Python environments and CMake build trees, including self-ignored and nested directories ([#&#8203;17181](https://github.com/can1357/oh-my-pi/pull/17181) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed clean cloned worktrees carrying files ignored only by the source checkout, while retaining caches ignored by the target ([#&#8203;17181](https://github.com/can1357/oh-my-pi/pull/17181) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed glob patterns ending in `/` returning no directories or including matching files; directory-only constraints now work across local, URL, and multi-root searches ([#&#8203;17180](https://github.com/can1357/oh-my-pi/pull/17180) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed recursive `skill://` glob and find discovery skipping contained linked directories; linked resources keep their skill URLs and directory cycles terminate ([#&#8203;17180](https://github.com/can1357/oh-my-pi/pull/17180) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed find treating nonempty linked files as empty and dropping them before judgment ([#&#8203;17180](https://github.com/can1357/oh-my-pi/pull/17180) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed JSON selectors failing on BOM-prefixed input, backup and extensionless files, and modifier-only queries ([#&#8203;17179](https://github.com/can1357/oh-my-pi/pull/17179) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed JSON selectors on `ssh://` text files while preserving pagination and the remote read limit ([#&#8203;17179](https://github.com/can1357/oh-my-pi/pull/17179) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed `tool.apply_patch(...)` being rejected as an unknown tool in JavaScript eval when apply-patch editing is enabled ([#&#8203;17178](https://github.com/can1357/oh-my-pi/pull/17178) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed eval silently changing supplied cell deadlines without showing the requested and effective timeouts ([#&#8203;17178](https://github.com/can1357/oh-my-pi/pull/17178) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed unavailable Python remaining in eval's advertised languages and corrected its interpreter setup guidance ([#&#8203;17178](https://github.com/can1357/oh-my-pi/pull/17178) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed PDF archive members returning a binary-entry banner instead of converted text, with PDF selectors and page-image reads now supported ([#&#8203;17175](https://github.com/can1357/oh-my-pi/pull/17175) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed `github` `run_watch` labeling unavailable or partial failed-job logs as full logs, and included bounded fetch-failure reasons ([#&#8203;17173](https://github.com/can1357/oh-my-pi/pull/17173) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed `github` `pr_create` echoing large PR bodies in creation summaries and `xd://github` result details ([#&#8203;17173](https://github.com/can1357/oh-my-pi/pull/17173) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed raw URL reads prepending transport headers and normalizing response whitespace; raw URL bodies, ranges, and artifacts now share source-body coordinates ([#&#8203;17171](https://github.com/can1357/oh-my-pi/pull/17171) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed raw ranged reads adding elision rows, continuation notices for satisfied ranges, and conflict instructions to selected source text ([#&#8203;17171](https://github.com/can1357/oh-my-pi/pull/17171) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed `read` replacing a valid HTML page with a stale or missing guessed `.md` page; alternate representations now report their actual source URL ([#&#8203;16834](https://github.com/can1357/oh-my-pi/issues/16834)) - Fixed implicit interactive `autoResume` failing every launch when a saved model cannot be restored and model fallback is disabled: startup now warns and opens a fresh session without carrying over the old history or cache identity, while preserving the original `--max-time` deadline. Saved-model diagnostics in the warning are sanitized and length-limited before display. Explicit resume and headless model-restoration restrictions remain unchanged ([#&#8203;17163](https://github.com/can1357/oh-my-pi/pull/17163) by [@&#8203;SAKANA-MOONLIGHT](https://github.com/SAKANA-MOONLIGHT)). - Fixed `proc://<id>/mode` reporting a known in-process job or agent as a missing service, and clarified that stdin and lifetime modes are services-only ([#&#8203;17170](https://github.com/can1357/oh-my-pi/pull/17170) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed Rex and other OSC 7501 terminals losing the `working` or `blocked` indicator when omp redraws a user message during a run ([#&#8203;17145](https://github.com/can1357/oh-my-pi/issues/17145)) - Fixed hintless Google HTTP 429 model-capacity responses using the 45–75s model-capacity backoff instead of the short generic retry delay ([#&#8203;17127](https://github.com/can1357/oh-my-pi/pull/17127) by [@&#8203;GTanger](https://github.com/GTanger)) - Fixed `skill://` reads, `/skill:` commands (terminal, ACP and RPC) and subagent autoload skills serving a plugin's old version, or failing with `File not found`, in a running session after `omp plugin upgrade` installed a new version; the session now rediscovers its skills and uses the upgraded files, whether or not the old version's directory was deleted ([#&#8203;17027](https://github.com/can1357/oh-my-pi/pull/17027) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed Esc on a busy session (and RPC `abort_and_restore_queue`) silently discarding queued messages from extensions and agents, such as `pi.sendMessage` steer/follow-up cards and agent-attributed prompts; they now appear in the transcript without restarting the run and reach the model with your next prompt ([#&#8203;17161](https://github.com/can1357/oh-my-pi/pull/17161) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed a failed delivery of messages typed during compaction discarding other queued messages, such as an extension's prompt; only the messages that delivery queued are taken back, and messages anything else queued before, during or after it stay queued ([#&#8203;17161](https://github.com/can1357/oh-my-pi/pull/17161) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed a failed delivery of messages typed during compaction sending the first of them twice: once now and again with the retried batch ([#&#8203;17161](https://github.com/can1357/oh-my-pi/pull/17161) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed `--resume <file|id>`, `--continue`, `SessionManager.continueRecent()`, the resume pickers and RPC `open_session` reviving an old copy of a conversation that had continued in a new file because omp could not keep writing the original (another omp process held it, or the file changed under it); resume now opens the copy with the newest turn, unless the original has turns of its own that copy lacks (for `--resume`, the pickers, and `--continue` or auto-resume of the terminal's last session), and says which file it picked; `--continue` and auto-resume without a record of the terminal's last session, and RPC `open_session`, take the copy with the newest turn among all linked copies, whichever one was written last. Copies saved before this fix are not linked and still resume as before ([#&#8203;17159](https://github.com/can1357/oh-my-pi/pull/17159) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed a `retry.fallbackChains` entry naming another Claude model being skipped while the latest Claude turn carries signed thinking: the chain now moves to that entry when the failure is on another model, is not retried (an account-policy denial, a non-retryable error, or a wait past `retry.maxDelayMs`), or has spent its retries ([#&#8203;17115](https://github.com/can1357/oh-my-pi/pull/17115) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Anthropic composer predictions now cache the persisted conversation prefix; `/btw` follow-ups reuse stable topic history without caching regenerated image descriptions ([#&#8203;17186](https://github.com/can1357/oh-my-pi/issues/17186)) - Fixed `wait` returning a skipped-tool error for background completions, peer messages, or parent steering queued before execution ([#&#8203;17174](https://github.com/can1357/oh-my-pi/pull/17174) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Session-stop extensions now pass all continuation messages to the agent instead of silently discarding every message after the first; blocking decisions still take priority ([#&#8203;17129](https://github.com/can1357/oh-my-pi/pull/17129) by [@&#8203;aktanazat](https://github.com/aktanazat)) - Fixed the crash and SIGTERM recovery hint offering `omp --resume <id>` for a session that was never saved to disk, which `--resume` cannot load; such a session now prints no resume command ([#&#8203;17119](https://github.com/can1357/oh-my-pi/pull/17119) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed Ctrl+V over SSH pasting the server's clipboard when the client terminal forwards the key instead of pasting (e.g. Tern on Windows into a macOS host); omp now leaves the remote clipboard alone and points you to your terminal's paste shortcut ([#&#8203;17149](https://github.com/can1357/oh-my-pi/pull/17149) by [@&#8203;H4vC](https://github.com/H4vC)) - Fixed `apply_patch` committing unmatched old/context text or dropping numeric prefixes; matching now uses complete lines without changing other edit modes' fuzzy behavior ([#&#8203;17184](https://github.com/can1357/oh-my-pi/pull/17184) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed context-free `apply_patch` line deletions leaving blank rows, including first, last and only lines ([#&#8203;17184](https://github.com/can1357/oh-my-pi/pull/17184) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed `apply_patch` rejecting move-only updates and move-then-add envelopes; moves preserve source bytes and permissions and later sections see the ordered file state ([#&#8203;17184](https://github.com/can1357/oh-my-pi/pull/17184) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed `omp plugin` commands applying changes under `--dry-run`: `upgrade` and `omp update --plugins --check` now preview, and actions without a preview reject the flag ([#&#8203;17104](https://github.com/can1357/oh-my-pi/pull/17104) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Turning off `async.widgets` mid-session now stops spec requests for already-shown job widgets and aborts any request in flight ([#&#8203;17090](https://github.com/can1357/oh-my-pi/pull/17090) by [@&#8203;yuzu-octopus](https://github.com/yuzu-octopus)) - Fixed `learn` not hot-registering a newly minted or updated managed skill in the active session (`session.skills`, `skill://`, and the system prompt), and fixed `composeRecallQuery` dropping prior user turns when an earlier turn repeated the latest prompt ([#&#8203;17113](https://github.com/can1357/oh-my-pi/pull/17113) by [@&#8203;GTanger](https://github.com/GTanger)) - Fixed `@path` file mentions skipping `.pdf`, `.docx`, `.xlsx`, `.pptx`, and `.epub` files as binary instead of converting them to Markdown with `markit` like CLI `@file` arguments and `read` ([#&#8203;17193](https://github.com/can1357/oh-my-pi/pull/17193) by [@&#8203;GTanger](https://github.com/GTanger)) - Fixed an automatic retry fallback (a hop down `retry.fallbackChains` or the Fireworks Fast degrade) re-rendering the system prompt for the new model, which made Anthropic write the whole cached conversation again on each hop; a hop now keeps the Model line and Delegation wording, and rebuilds only when the new model needs a different edit mode, tool-description handling, or tool set ([#&#8203;17014](https://github.com/can1357/oh-my-pi/pull/17014) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed a live subagent's system prompt re-rendering its peer list, with each peer's current activity, on every rebuild, which made Anthropic write the whole cached conversation again; the list now updates only when a rebuild changes the rest of the prompt, and `history://` lists the current peers ([#&#8203;17014](https://github.com/can1357/oh-my-pi/pull/17014) by [@&#8203;sjawhar](https://github.com/sjawhar)) - SQLite row selectors now avoid shadowed ROWID aliases so reads, updates, and deletes target the intended single row. ([#&#8203;16998](https://github.com/can1357/oh-my-pi/issues/16998), [#&#8203;17001](https://github.com/can1357/oh-my-pi/pull/17001) by [@&#8203;ai-yang](https://github.com/ai-yang)) - Fixed composer predictions offering notes relayed in from other agents or sessions (for example an orchestrator's pasted status note) as the user's next message; predictions now cover only what the person at the keyboard would type ([#&#8203;17185](https://github.com/can1357/oh-my-pi/pull/17185) by [@&#8203;wolfiesch](https://github.com/wolfiesch)) - Fixed image descriptions using the first vision model in catalog order (such as `claude-fable-5`) when no vision model is configured; they now use the least expensive priced vision-capable model ([#&#8203;17148](https://github.com/can1357/oh-my-pi/issues/17148), [#&#8203;17196](https://github.com/can1357/oh-my-pi/pull/17196) by [@&#8203;gcp](https://github.com/gcp)) - Fixed `wait` results and background job deliveries naming a finished subagent only by a job id that differs from its agent id (e.g. `Foo-2` for a messaged agent's new turn), where `agent://Foo-2` and `history://Foo-2` are not found; they now name `history://Foo`, plus `agent://Foo` when that turn published its output ([#&#8203;17112](https://github.com/can1357/oh-my-pi/pull/17112) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed `RpcClient.promptAndWait()` hanging until its timeout when the agent process exits or the client stops after the prompt was acknowledged; it now rejects right away ([#&#8203;17135](https://github.com/can1357/oh-my-pi/pull/17135) by [@&#8203;andrebrait](https://github.com/andrebrait)) - Fixed reading versioned Read the Docs pages serving the development branch's source file instead of the requested version's content when the page's Edit link targets another branch ([#&#8203;17091](https://github.com/can1357/oh-my-pi/pull/17091) by [@&#8203;yuzu-octopus](https://github.com/yuzu-octopus)) - Fixed RPC startup hanging when an extension opens a dialog during `session_start`: the client can now answer it, and other commands still wait for startup to finish, in order ([#&#8203;17139](https://github.com/can1357/oh-my-pi/pull/17139) by [@&#8203;andrebrait](https://github.com/andrebrait)) - Fixed extension tools disappearing once the startup plan mode (`plan.defaultOnStartup`) was paused or its plan approved: tools of extensions that load after startup now stay, while built-ins that plan mode registered, such as its `write` transport, still go ([#&#8203;17085](https://github.com/can1357/oh-my-pi/pull/17085) by [@&#8203;appboypov](https://github.com/appboypov)) - Fixed a batch `task` call silently ignoring a `model` (or `sourceSession`) on a non-`seance` item while the `seance` agent is hidden, so the child ran on its own model; the call is now refused with the same error as a single-agent call ([#&#8203;17107](https://github.com/can1357/oh-my-pi/pull/17107) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed an edit under an older `[path#TAG]` header, after another edit had changed the file, applying to lines that read never displayed, including a line it had cut at the column cap; such an edit now shows the anchored lines first, as it does under the file's current tag ([#&#8203;16208](https://github.com/can1357/oh-my-pi/issues/16208), [#&#8203;17033](https://github.com/can1357/oh-my-pi/pull/17033) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed `omp gc --compress` (and the `gc.autoCompress` background run) taking minutes on large session histories ([#&#8203;17195](https://github.com/can1357/oh-my-pi/pull/17195) by [@&#8203;H4vC](https://github.com/H4vC)) - Fixed `omp gc --compress --apply` spending time on every idle session where the filesystem does not actually compress files (e.g. macOS 27); it now reports `compress skipped: <reason>`, and `gc.autoCompress` no longer slows interactive startup with that check ([#&#8203;17195](https://github.com/can1357/oh-my-pi/pull/17195) by [@&#8203;H4vC](https://github.com/H4vC)) #### [@&#8203;oh-my-pi/pi-mnemopi](https://github.com/oh-my-pi/pi-mnemopi) ##### Fixed - Fixed local embeddings using one spinning CPU thread per core, so a single recall query cost several CPU-seconds on a many-core machine ([#&#8203;17109](https://github.com/can1357/oh-my-pi/pull/17109) by [@&#8203;sjawhar](https://github.com/sjawhar)) #### [@&#8203;oh-my-pi/pi-natives](https://github.com/oh-my-pi/pi-natives) ##### Added - Added opt-in, cycle-safe descendant-link traversal to native `glob` through `followLinks`, leaving default traversal unchanged ([#&#8203;17180](https://github.com/can1357/oh-my-pi/pull/17180) by [@&#8203;alphastorm](https://github.com/alphastorm)) ##### Changed - Faster native line, word, and structured patch diffs on large edits ([#&#8203;17015](https://github.com/can1357/oh-my-pi/pull/17015) by [@&#8203;GTanger](https://github.com/GTanger)) ##### Fixed - Fixed the built-in `sort` using many times its `-S` buffer size, or more memory than its container allows or the machine has available, on inputs of short lines, and ignoring `timeout` or a cancel while it sorts ([#&#8203;17155](https://github.com/can1357/oh-my-pi/pull/17155) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed the built-in `sort -m` and `sort -c` splitting lines longer than their read buffer, and `sort` joining a file's unterminated last line to the next file's first line ([#&#8203;17155](https://github.com/can1357/oh-my-pi/pull/17155) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed the built-in `sort -S N%` using the wrong buffer size: `-S 50%` gave 0 bytes and `-S 100%` a thousand times the machine's memory; it is now N percent of physical memory as in GNU sort ([#&#8203;17155](https://github.com/can1357/oh-my-pi/pull/17155) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Exited bash-tool `&` jobs are reaped without another command; `wait` still reports their status, and `$!` works inside pipelines, subshells, and command substitutions ([#&#8203;17144](https://github.com/can1357/oh-my-pi/issues/17144)). - On macOS, the bash tool's built-in `ps` includes other users' processes and unreaped zombies when selecting a PID ([#&#8203;17144](https://github.com/can1357/oh-my-pi/issues/17144)). - Fixed native `glob` file-type filters discarding target size and modification time for linked files ([#&#8203;17180](https://github.com/can1357/oh-my-pi/pull/17180) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed leading UTF-8 BOMs causing embedded `jq` JSON input parse errors while preserving raw-input bytes ([#&#8203;17179](https://github.com/can1357/oh-my-pi/pull/17179) by [@&#8203;alphastorm](https://github.com/alphastorm)) - Fixed the shell's `timeout` and tool aborts not stopping built-in commands that were still reading (`cat /dev/zero`, huge files, FIFOs with no writer) ([#&#8203;17141](https://github.com/can1357/oh-my-pi/pull/17141) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed a tool abort leaving a background in-process command, such as `cat /dev/zero > /dev/null &`, running and keeping a core busy after its shell session was gone ([#&#8203;17141](https://github.com/can1357/oh-my-pi/pull/17141) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed a shell redirect to or from a FIFO whose other end is a background job, such as `echo hi > f & cat < f`, hanging the command; a tool abort now also stops a write redirect to a FIFO that has no reader ([#&#8203;17141](https://github.com/can1357/oh-my-pi/pull/17141) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed a background external command with a FIFO redirect, such as `/bin/cat < f & echo hi > f`, hanging the shell until the FIFO's other end opened; the command's own process now opens it, as in bash ([#&#8203;17141](https://github.com/can1357/oh-my-pi/pull/17141) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed `timeout` printing `error: interrupted` when its limit stopped a built-in command; like GNU `timeout`, it now prints nothing of its own and exits 124 ([#&#8203;17141](https://github.com/can1357/oh-my-pi/pull/17141) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed crackling in live voice playback: the assistant's speech now absorbs packet jitter without dropping out, short turns play without waiting for the next response, and lost packets no longer insert extra synthesized audio ([#&#8203;17114](https://github.com/can1357/oh-my-pi/issues/17114)) - Fixed the bash tool's `rm -r` and `du` crashing the whole session with a stack overflow on a directory tree thousands of levels deep; `rm -r` also removes such a tree without running out of file descriptors, and reports a directory that is its own ancestor instead of descending into it ([#&#8203;17021](https://github.com/can1357/oh-my-pi/pull/17021) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed the bash tool's `find` panicking and writing a native panic report to `~/.omp/logs` when the command reading its output exits early, as in `find . -printf '%p\n' | head -1`, or when its stderr is closed; it now stops quietly, and a failed `-fprintf` write is reported instead of `find: internal error` ([#&#8203;17079](https://github.com/can1357/oh-my-pi/pull/17079) by [@&#8203;trukhinyuri](https://github.com/trukhinyuri)) - Fixed the shell's built-in `grep` and `rg` running the whole agent out of memory on a file with no line breaks, such as a large sparse file: a line over 256 MiB is now reported as `not searched` for that file and the search continues, and a `-f` pattern file over 256 MiB is refused with exit status 2 ([#&#8203;17108](https://github.com/can1357/oh-my-pi/pull/17108) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed the embedded shell's globs keeping matches whose literal tail does not exist: `ls -d DIR/*/` now lists only directories instead of passing every file as `file/`, and `*/name` keeps only matches that contain `name`, as in bash ([#&#8203;17110](https://github.com/can1357/oh-my-pi/pull/17110) by [@&#8203;sjawhar](https://github.com/sjawhar)) - Fixed the embedded shell ignoring `shopt -s globstar`: `**` now matches any number of directory levels as in bash (`**/*.rs` finds files at every depth, also in `compgen -G`), and a timeout or interrupt stops a long `**` expansion ([#&#8203;17111](https://github.com/can1357/oh-my-pi/pull/17111) by [@&#8203;sjawhar](https://github.com/sjawhar)) #### [@&#8203;oh-my-pi/pi-tui](https://github.com/oh-my-pi/pi-tui) ##### Added - Added a frame-write listener (`TUI.addFrameWriteListener`) for terminal integrations that need to react to emitted ANSI output, including resize paints ([#&#8203;17145](https://github.com/can1357/oh-my-pi/issues/17145)) - `HookInputComponent` (`showHookInput`) now accepts `{ secret: true }` to mask typed characters as bullets (`•`) in input overlays ([#&#8203;17080](https://github.com/can1357/oh-my-pi/pull/17080) by [@&#8203;GTanger](https://github.com/GTanger)) - Added an ANSI and native `/context` viewer with category navigation, content inspection, token-usage and compaction estimates, and keyboard/mouse controls that adapt across Tern and other terminals ([#&#8203;16160](https://github.com/can1357/oh-my-pi/pull/16160) by [@&#8203;C-W-Z](https://github.com/C-W-Z)). ##### Fixed - Fixed `AskDialogComponent`'s draft input guard holding the keyboard until the draft was cleared; Up/Down (or a pointer action) now release it so the question can be answered with the draft parked, and `syncPresentation` receives the effective blocked state ([#&#8203;17215](https://github.com/can1357/oh-my-pi/pull/17215) by [@&#8203;H4vC](https://github.com/H4vC)) - Fixed the prompt editor's autocomplete popup (e.g. emoji suggestions after `:D`) staying open and following the cursor after Shift/Ctrl/Alt+Enter inserted a newline, so the next Enter submitted past a stale list; newlines and cursor motion (arrows, Home/End, word jumps, character jumps) now close it ([#&#8203;17215](https://github.com/can1357/oh-my-pi/pull/17215) by [@&#8203;H4vC](https://github.com/H4vC)) - Fixed `run_watch` failed-job rows hiding why a job's logs are unavailable; multiline `gh` errors now stay on one row ([#&#8203;17173](https://github.com/can1357/oh-my-pi/pull/17173) by [@&#8203;alphastorm](https://github.com/alphastorm)) ##### Removed - Removed the static context usage report (`ContextUsageView`, `renderContextUsage`, `describeContextUsage`), `contextUsageHead()`, and the `glyph` and `color` fields of `ContextBreakdown` categories; use `ContextViewer` ([#&#8203;16160](https://github.com/can1357/oh-my-pi/pull/16160) by [@&#8203;C-W-Z](https://github.com/C-W-Z)). - Fixed Markdown tables inside list items disappearing from the terminal transcript ([#&#8203;17165](https://github.com/can1357/oh-my-pi/issues/17165)). #### [@&#8203;oh-my-pi/pi-utils](https://github.com/oh-my-pi/pi-utils) ##### Added - Added `deadlineMs` and `waitMessage` cleanup registration options: shutdown waits longer for that callback, but only while it is still pending, and says so on stderr once nothing else is left to wait for ([#&#8203;17128](https://github.com/can1357/oh-my-pi/pull/17128) by [@&#8203;sjawhar](https://github.com/sjawhar)) - A process stopped by SIGTERM now prints its registered recovery commands after the terminal is handed back, so a stopped omp session shows `omp --resume <id>` instead of leaving its last frame above the shell prompt like a crash ([#&#8203;17119](https://github.com/can1357/oh-my-pi/pull/17119) by [@&#8203;sjawhar](https://github.com/sjawhar)) ##### Fixed - Fixed plain TAR archives requiring a whole-container memory buffer to list entries or read a selected member ([#&#8203;17175](https://github.com/can1357/oh-my-pi/pull/17175) by [@&#8203;alphastorm](https://github.com/alphastorm)) #### What's Changed - fix(coding-agent): keep composer predictions from echoing relayed agent notes by [@&#8203;wolfiesch](https://github.com/wolfiesch) in [#&#8203;17185](https://github.com/can1357/oh-my-pi/pull/17185) - feat(coding-agent): compress idle sessions in the background with gc.autoCompress by [@&#8203;wolfiesch](https://github.com/wolfiesch) in [#&#8203;17189](https://github.com/can1357/oh-my-pi/pull/17189) - fix(edit): ran the seen-line guard on the stale-tag recovery path by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17033](https://github.com/can1357/oh-my-pi/pull/17033) - fix(builtins): stop find quietly when its output or stderr pipe closes by [@&#8203;trukhinyuri](https://github.com/trukhinyuri) in [#&#8203;17079](https://github.com/can1357/oh-my-pi/pull/17079) - fix(coding-agent): keep extension tools registered while startup plan mode is on by [@&#8203;appboypov](https://github.com/appboypov) in [#&#8203;17085](https://github.com/can1357/oh-my-pi/pull/17085) - fix(coding-agent): only fetch ReadTheDocs raw source when ref matches version slug by [@&#8203;yuzu-octopus](https://github.com/yuzu-octopus) in [#&#8203;17091](https://github.com/can1357/oh-my-pi/pull/17091) - fix(task): refuse seance-only fields on batch items when seance is hidden by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17107](https://github.com/can1357/oh-my-pi/pull/17107) - fix(grep,rg): bound the line buffer and pattern files so one file cannot exhaust the host by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17108](https://github.com/can1357/oh-my-pi/pull/17108) - fix(shell): drop glob matches whose literal tail does not exist by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17110](https://github.com/can1357/oh-my-pi/pull/17110) - fix(coding-agent): name agent:// and history:// for task jobs whose id is not the agent id by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17112](https://github.com/can1357/oh-my-pi/pull/17112) - fix(rpc): reject acknowledged prompts when the client stops or the transport closes by [@&#8203;andrebrait](https://github.com/andrebrait) in [#&#8203;17135](https://github.com/can1357/oh-my-pi/pull/17135) - fix(rpc): answer startup dialogs while extensions start by [@&#8203;andrebrait](https://github.com/andrebrait) in [#&#8203;17139](https://github.com/can1357/oh-my-pi/pull/17139) - feat(coding-agent): make context content inspectable in /context by [@&#8203;C-W-Z](https://github.com/C-W-Z) in [#&#8203;16160](https://github.com/can1357/oh-my-pi/pull/16160) - nix packaging refactor by [@&#8203;n3oney](https://github.com/n3oney) in [#&#8203;13752](https://github.com/can1357/oh-my-pi/pull/13752) - fix(coding-agent): speed up gc --compress and move the compression probe into the gc run by [@&#8203;H4vC](https://github.com/H4vC) in [#&#8203;17195](https://github.com/can1357/oh-my-pi/pull/17195) - fix(coding-agent): avoid shadowed SQLite rowid aliases by [@&#8203;ai-yang](https://github.com/ai-yang) in [#&#8203;17001](https://github.com/can1357/oh-my-pi/pull/17001) - fix(ci): install floored bun to a writable dir when \~/.bun is read-only by [@&#8203;bse-ai](https://github.com/bse-ai) in [#&#8203;17076](https://github.com/can1357/oh-my-pi/pull/17076) - feat(acp): send the tool name on tool_call by [@&#8203;epk](https://github.com/epk) in [#&#8203;17162](https://github.com/can1357/oh-my-pi/pull/17162) - fix(coding-agent): stop plugin commands applying changes under --dry-run by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17104](https://github.com/can1357/oh-my-pi/pull/17104) - fix(builtins): walk rm -r and du with explicit stacks by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17021](https://github.com/can1357/oh-my-pi/pull/17021) - fix(coding-agent): keep the system prompt byte-stable across retry fallbacks and roster changes by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17014](https://github.com/can1357/oh-my-pi/pull/17014) - perf(tui): memoize the output pane's styled content per frame by [@&#8203;yuzu-octopus](https://github.com/yuzu-octopus) in [#&#8203;16779](https://github.com/can1357/oh-my-pi/pull/16779) - perf(ai): memoize schemaDefinesProperty per schema identity by [@&#8203;yuzu-octopus](https://github.com/yuzu-octopus) in [#&#8203;16780](https://github.com/can1357/oh-my-pi/pull/16780) - fix(apply-patch): require matching context and support move-only sections by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17184](https://github.com/can1357/oh-my-pi/pull/17184) - fix(coding-agent): use the cheapest vision model for image descriptions by [@&#8203;gcp](https://github.com/gcp) in [#&#8203;17196](https://github.com/can1357/oh-my-pi/pull/17196) - fix(coding-agent): convert markit-supported documents in [@&#8203;file](https://github.com/file) mentions by [@&#8203;GTanger](https://github.com/GTanger) in [#&#8203;17193](https://github.com/can1357/oh-my-pi/pull/17193) - fix(edit): use the replace edit tool for Qwen 3.8 models by [@&#8203;ianderse](https://github.com/ianderse) in [#&#8203;17096](https://github.com/can1357/oh-my-pi/pull/17096) - fix(coding-agent): stop Ctrl+V over SSH from pasting the remote host clipboard by [@&#8203;H4vC](https://github.com/H4vC) in [#&#8203;17149](https://github.com/can1357/oh-my-pi/pull/17149) - fix(ai): purged copilot usage when every endpoint rejects auth by [@&#8203;roboomp](https://github.com/roboomp) in [#&#8203;17086](https://github.com/can1357/oh-my-pi/pull/17086) - perf(coding-agent): rebuild the model catalog once when clearing several extension sources by [@&#8203;Delije4](https://github.com/Delije4) in [#&#8203;17088](https://github.com/can1357/oh-my-pi/pull/17088) - fix(coding-agent): stop job widget spec requests when async.widgets is disabled by [@&#8203;yuzu-octopus](https://github.com/yuzu-octopus) in [#&#8203;17090](https://github.com/can1357/oh-my-pi/pull/17090) - feat(coding-agent): support secret input masking on extension input dialogs by [@&#8203;GTanger](https://github.com/GTanger) in [#&#8203;17080](https://github.com/can1357/oh-my-pi/pull/17080) - fix(mnemopi): bound the local embedding session's onnxruntime threads by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17109](https://github.com/can1357/oh-my-pi/pull/17109) - fix(voice): buffered live playback against jitter and held speaking phase by [@&#8203;roboomp](https://github.com/roboomp) in [#&#8203;17125](https://github.com/can1357/oh-my-pi/pull/17125) - feat(utils): print recovery hints when SIGTERM stops the process by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17119](https://github.com/can1357/oh-my-pi/pull/17119) - feat(rpc): make delta message updates rebuildable by [@&#8203;andrebrait](https://github.com/andrebrait) in [#&#8203;17137](https://github.com/can1357/oh-my-pi/pull/17137) - feat(rpc): navigate the session tree and set labels over RPC by [@&#8203;andrebrait](https://github.com/andrebrait) in [#&#8203;17138](https://github.com/can1357/oh-my-pi/pull/17138) - fix(wait): consume queued wake events instead of skipping wait by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17174](https://github.com/can1357/oh-my-pi/pull/17174) - fix(coding-agent): reused persisted cache prefix for side turns by [@&#8203;roboomp](https://github.com/roboomp) in [#&#8203;17188](https://github.com/can1357/oh-my-pi/pull/17188) - fix(coding-agent): show matched text in TTSR interrupts by [@&#8203;shgew](https://github.com/shgew) in [#&#8203;17099](https://github.com/can1357/oh-my-pi/pull/17099) - fix(coding-agent): refresh session skills on learn and preserve recall query turn boundaries by [@&#8203;GTanger](https://github.com/GTanger) in [#&#8203;17113](https://github.com/can1357/oh-my-pi/pull/17113) - fix(coding-agent): let a chain reach a sibling Claude model after a signed-thinking turn by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17115](https://github.com/can1357/oh-my-pi/pull/17115) - fix(shell): stop in-process utilities reading when their command is cancelled by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17141](https://github.com/can1357/oh-my-pi/pull/17141) - fix(ai): keep a shared OAuth login alive when processes race to refresh it by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17128](https://github.com/can1357/oh-my-pi/pull/17128) - fix(session): resumed the newest copy of a session that continued in a sibling file by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17159](https://github.com/can1357/oh-my-pi/pull/17159) - fix(coding-agent): keep queued extension messages through an interrupt by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17161](https://github.com/can1357/oh-my-pi/pull/17161) - omp: preserve all stop continuation feedback by [@&#8203;aktanazat](https://github.com/aktanazat) in [#&#8203;17129](https://github.com/can1357/oh-my-pi/pull/17129) - fix(skills): keep plugin skills readable in running sessions after a plugin upgrade by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17027](https://github.com/can1357/oh-my-pi/pull/17027) - fix(ai): retry Aliyun multimodal gateway's flaky 400s by [@&#8203;shuairongzeng](https://github.com/shuairongzeng) in [#&#8203;17101](https://github.com/can1357/oh-my-pi/pull/17101) - feat(extensions): expose MCP server, tool name and readOnlyHint in ToolInfo by [@&#8203;cfpperche](https://github.com/cfpperche) in [#&#8203;17120](https://github.com/can1357/oh-my-pi/pull/17120) - fix(ai): classify Google RPC QuotaFailure, RetryInfo, and MODEL_CAPACITY_EXHAUSTED details by [@&#8203;GTanger](https://github.com/GTanger) in [#&#8203;17127](https://github.com/can1357/oh-my-pi/pull/17127) - fix(tui): restored program status after prompt redraws by [@&#8203;roboomp](https://github.com/roboomp) in [#&#8203;17147](https://github.com/can1357/oh-my-pi/pull/17147) - pi-ast: make tree-sitter wasm an opt-in feature (default on) by [@&#8203;ianks](https://github.com/ianks) in [#&#8203;17153](https://github.com/can1357/oh-my-pi/pull/17153) - fix(proc): distinguish service controls from in-process jobs by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17170](https://github.com/can1357/oh-my-pi/pull/17170) - fix(cli): start fresh when implicit auto-resume cannot restore its model by [@&#8203;SAKANA-MOONLIGHT](https://github.com/SAKANA-MOONLIGHT) in [#&#8203;17163](https://github.com/can1357/oh-my-pi/pull/17163) - feat(catalog): discover LM Studio decision models as judges by [@&#8203;richiestanaway](https://github.com/richiestanaway) in [#&#8203;17169](https://github.com/can1357/oh-my-pi/pull/17169) - fix(read): keep raw reads to the requested source bytes by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17171](https://github.com/can1357/oh-my-pi/pull/17171) - fix(github): keep run_watch and pr_create results truthful and concise by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17173](https://github.com/can1357/oh-my-pi/pull/17173) - fix(read): read pdf archive members and index large plain tars lazily by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17175](https://github.com/can1357/oh-my-pi/pull/17175) - fix(eval): keep eval's advertised contract in step with what runs by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17178](https://github.com/can1357/oh-my-pi/pull/17178) - fix(read): apply json selectors to bom, backup, modifier-only and ssh targets by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17179](https://github.com/can1357/oh-my-pi/pull/17179) - fix(tui): rendered tables inside list items by [@&#8203;roboomp](https://github.com/roboomp) in [#&#8203;17168](https://github.com/can1357/oh-my-pi/pull/17168) - fix(read): stop substituting guessed Markdown for valid HTML by [@&#8203;roboomp](https://github.com/roboomp) in [#&#8203;16838](https://github.com/can1357/oh-my-pi/pull/16838) - fix(glob): honor directory-only patterns and linked skill entries by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17180](https://github.com/can1357/oh-my-pi/pull/17180) - fix(worktree): keep source-only environments and ignored paths out of clones by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17181](https://github.com/can1357/oh-my-pi/pull/17181) - fix(ssh): resolve home-relative paths and search directory scopes by [@&#8203;alphastorm](https://github.com/alphastorm) in [#&#8203;17182](https://github.com/can1357/oh-my-pi/pull/17182) - fix(coding-agent): preserve auto thinking in retry fallback selectors by [@&#8203;shgew](https://github.com/shgew) in [#&#8203;17100](https://github.com/can1357/oh-my-pi/pull/17100) - feat(coding-agent): allow directory-scoped resume picker by [@&#8203;Dante-dan](https://github.com/Dante-dan) in [#&#8203;17061](https://github.com/can1357/oh-my-pi/pull/17061) - feat(advisor): add per-advisor session scope and includeReasoning in WATCHDOG.yml by [@&#8203;trukhinyuri](https://github.com/trukhinyuri) in [#&#8203;17058](https://github.com/can1357/oh-my-pi/pull/17058) - fix(coding-agent): trust a /v1/models row's own reasoning declaration by [@&#8203;Youwenqwq](https://github.com/Youwenqwq) in [#&#8203;17077](https://github.com/can1357/oh-my-pi/pull/17077) - fix(shell): reaped background jobs and preserved nested pid by [@&#8203;roboomp](https://github.com/roboomp) in [#&#8203;17146](https://github.com/can1357/oh-my-pi/pull/17146) - fix(sort): bound the in-process sort's memory by its buffer and stop it on cancel by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17155](https://github.com/can1357/oh-my-pi/pull/17155) - fix(shell): make `shopt -s globstar` match `**` recursively by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17111](https://github.com/can1357/oh-my-pi/pull/17111) - fix(coding-agent): keep the date/cwd reminder append-only when turns are re-allocated by [@&#8203;sjawhar](https://github.com/sjawhar) in [#&#8203;17117](https://github.com/can1357/oh-my-pi/pull/17117) - feat(session): move idle maintenance to a session-owned scheduler by [@&#8203;andrebrait](https://github.com/andrebrait) in [#&#8203;17136](https://github.com/can1357/oh-my-pi/pull/17136) - fix(coding-agent): render the workflowz notice for the session's eval runtimes and workpool mode by [@&#8203;bigHippoZz](https://github.com/bigHippoZz) in [#&#8203;17152](https://github.com/can1357/oh-my-pi/pull/17152) - feat(rpc): expose native dictation to RPC hosts by [@&#8203;felipe-santos-aya](https://github.com/felipe-santos-aya) in [#&#8203;17158](https://github.com/can1357/oh-my-pi/pull/17158) - feat(coding-agent): expose lsp and ast_grep on bundled scout agent by [@&#8203;sinhduc01](https://github.com/sinhduc01) in [#&#8203;17151](https://github.com/can1357/oh-my-pi/pull/17151) - perf(diff): replace Rc<Component> linked list with flat arena in myers_diff by [@&#8203;GTanger](https://github.com/GTanger) in [#&#8203;17015](https://github.com/can1357/oh-my-pi/pull/17015) - feat(extensions): direct control of built-in session modes by [@&#8203;Shadorain](https://github.com/Shadorain) in [#&#8203;15753](https://github.com/can1357/oh-my-pi/pull/15753) - fix(tui): close stale autocomplete, answerable ask with draft, reachable agent hub by [@&#8203;H4vC](https://github.com/H4vC) in [#&#8203;17215](https://github.com/can1357/oh-my-pi/pull/17215) #### New Contributors - [@&#8203;ai-yang](https://github.com/ai-yang) made their first contribution in [#&#8203;17001](https://github.com/can1357/oh-my-pi/pull/17001) - [@&#8203;epk](https://github.com/epk) made their first contribution in [#&#8203;17162](https://github.com/can1357/oh-my-pi/pull/17162) - [@&#8203;gcp](https://github.com/gcp) made their first contribution in [#&#8203;17196](https://github.com/can1357/oh-my-pi/pull/17196) - [@&#8203;GTanger](https://github.com/GTanger) made their first contribution in [#&#8203;17193](https://github.com/can1357/oh-my-pi/pull/17193) - [@&#8203;ianderse](https://github.com/ianderse) made their first contribution in [#&#8203;17096](https://github.com/can1357/oh-my-pi/pull/17096) - [@&#8203;Delije4](https://github.com/Delije4) made their first contribution in [#&#8203;17088](https://github.com/can1357/oh-my-pi/pull/17088) - [@&#8203;shuairongzeng](https://github.com/shuairongzeng) made their first contribution in [#&#8203;17101](https://github.com/can1357/oh-my-pi/pull/17101) - [@&#8203;cfpperche](https://github.com/cfpperche) made their first contribution in [#&#8203;17120](https://github.com/can1357/oh-my-pi/pull/17120) - [@&#8203;ianks](https://github.com/ianks) made their first contribution in [#&#8203;17153](https://github.com/can1357/oh-my-pi/pull/17153) - [@&#8203;SAKANA-MOONLIGHT](https://github.com/SAKANA-MOONLIGHT) made their first contribution in [#&#8203;17163](https://github.com/can1357/oh-my-pi/pull/17163) - [@&#8203;richiestanaway](https://github.com/richiestanaway) made their first contribution in [#&#8203;17169](https://github.com/can1357/oh-my-pi/pull/17169) - [@&#8203;Youwenqwq](https://github.com/Youwenqwq) made their first contribution in [#&#8203;17077](https://github.com/can1357/oh-my-pi/pull/17077) - [@&#8203;felipe-santos-aya](https://github.com/felipe-santos-aya) made their first contribution in [#&#8203;17158](https://github.com/can1357/oh-my-pi/pull/17158) - [@&#8203;sinhduc01](https://github.com/sinhduc01) made their first contribution in [#&#8203;17151](https://github.com/can1357/oh-my-pi/pull/17151) **Full Changelog**: <https://github.com/can1357/oh-my-pi/compare/v18.13.1...v18.13.2> </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xOTAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE5MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
chore(deps): update dependency can1357/oh-my-pi to v18.13.2
All checks were successful
Update hashes / update-hashes (pull_request) Successful in 1m54s
7661572399
renovate-bot scheduled this pull request to auto merge when all checks succeed 2026-10-27 19:05:51 +00:00
renovate-bot deleted branch renovate/can1357-oh-my-pi-18.x 2026-10-27 19:16:33 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mandlm/omp-nix!241
No description provided.