Skip to content

chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.18.0 - #32

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/oh-my-pi
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/oh-my-pi

Conversation

@renovate

@renovate renovate Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@oh-my-pi/pi-coding-agent (source) 18.0.11 → 18.18.0 age confidence

Release Notes

can1357/oh-my-pi (@​oh-my-pi/pi-coding-agent)

v18.18.0

Compare Source

Fixed
  • Fixed transcript output freezing after provider restarts or switching sessions mid-stream (#​18358 by @​JustasMasiulis)
  • Bash tool cards for a command whose leading cd <dir> && / cd <dir>; was hoisted into the working directory show that cd again above the visualized command, with the separator the model wrote, instead of dropping where it ran
  • Bash commands starting with cd <dir>; ... now run in <dir> as their working directory when it exists, so its direnv environment loads and the directory shows on the tool card (#​18329 by @​harshaygadekar)
  • Task-file approvals show and keep the checked file target through dispatch, so retargeted symlinks cannot silently substitute another assignment; replaced files require a retry (#​18314 by @​iliaal).
  • Subagents receive task instructions with their blank lines, Markdown hard breaks, and table spacing intact, whether given inline or via taskFile.
  • Hindsight retain and learn memories are no longer lost when delivery fails or omp exits: they are kept on disk, retried, and delivered by the next session without duplicates (#​18176 by @​alphastorm)
  • Fixed the session crashing with Native shell returned an invalid execution trace when a bash command assigned a long value containing multi-byte characters such as Chinese text (#​18259)
  • grep -e and rg -e in the bash tool accept patterns that start with - (e.g. grep -e "--canary") instead of failing with an unknown-option error.
  • The bash execution visualization keeps updating, and saved traces still restore, after a command handles bytes that aren't valid UTF-8 (e.g. v=$(printf '\377'))
  • On Windows, grep, glob and isolated subagents no longer flash a console window when they query or start the ovnfs daemon.
  • A bash command containing a bare [ (e.g. a && [ while still streaming) no longer crashes omp in the Pseudo shell visualization (#​18320)
  • Fixed a prompt that mentions an internal-scheme URL with @ (e.g. @local://x, @vault://x) aborting the run with "uses internal scheme ... not as a filesystem path"; such a mention is now left as plain text (#​16071)
  • Fixed MCP OAuth login and token refresh failing with JSON Parse error: Unexpected identifier "access_token" against GitHub's token endpoint (#​18292)
  • MCP OAuth requests tokens for the MCP server's own resource (from its protected-resource metadata) instead of a different resource advertised by the authorization server, fixing 401 invalid_token after /mcp reauth on servers such as Firecrawl's hosted MCP (#​18315)
  • Concurrent subagent MCP calls now grant newly loaded tools to the session that made each call, even when providers reuse call IDs. (#​18324 by @​eggpeat)
  • LSP document symbols now show identifier lines, so those lines work with references, definition, and rename (#​18257).
  • Subagents on worker threads no longer fail with Cannot send … instance across threads when their model comes from an extension-registered provider with its own streamSimple (#​18310 by @​Dangerboi)
  • ⌘V in terminals with kitty enhanced paste (OSC 5522, e.g. Ghostty 1.4) now attaches macOS TIFF screenshots instead of reporting "Clipboard paste has no supported text or image data" (#​17696, #​18203 by @​roboomp)
  • Disabling display.shellVisualization now omits bash execution traces from tool updates and saved sessions, including in ACP (#​18267).
  • /quit and /exit no longer wait several seconds for an unresponsive OTLP telemetry collector (#​18255).
  • Cancelling a Python eval cell right as it starts now stops the cell cleanly instead of letting it run and killing the kernel (#​18242 by @​eggpeat)
  • Browser open now returns the same tab with a recovery notice when Chrome detaches the relay during navigation and omp successfully reattaches, instead of failing the open and closing newly opened tabs (#​18252 by @​will-bogusz)
  • tab.errors() keeps the fields of plain-object and other non-Error rejections, bounded like console arguments, instead of reporting only Object (#​16959) (#​18251 by @​Alex-Wengg)
  • An extension provider with authHeader: true keeps its cached fetchDynamicModels catalog when omp models refresh fails, instead of showing 0 models until the next successful forced refresh (#​18227)
  • A session whose request carries no titleable text of its own — an attached @brief.md, a greeting, a bare number — is now named once from the assistant's reading of it, instead of staying untitled until the next message that happens to be titleable (which, for an agent launched from one brief and left to run, never came) (#​18238 by @​sjawhar)
  • Prewalk no longer hands a subagent to its cheap model when the subagent messages its parent or another agent (write agent://…) before its first file edit (#​18322 by @​1vivy)

v18.17.0

Compare Source

Added
  • Bash commands, foreground and background, now show a live execution visualization in Raw or Python-like Pseudo view, with variable values and replay history; disable with display.shellVisualization (default on).
  • grep and glob inside an ovnfs checkout ask the ovnfs daemon to search the checkout in-process, avoiding per-file mount round trips; the daemon and its mount come from ovnfs --json status when the ovnfs binary is found. They fall back to the native search when the daemon is unavailable or rejects the request, and cancelling the tool cancels the daemon's search. ovnfs with admin protocol 5 is required.
  • Added skills.manualSkills glob patterns to hide skills from the model catalog while keeping them manually invocable (#​18114 by @​Shadorain)
  • Added Keenable web search (web/keenable), using KEENABLE_API_KEY or a stored keenable credential, or a keyless public endpoint when explicitly selected (#​17953 by @​KGKallasmaa)
  • web_search results list failed providers with reason and status code in details.failures (#​18124 by @​will-bogusz)
  • Added opt-in background auto-update (update.auto, offered in setup) that installs new releases via your install method and runs them next launch; skipped on Nix, source checkouts, and Tern.
  • omp update refuses to run while another update (including auto-update) is installing.
  • Added none to edit.mode (and PI_EDIT_VARIANT) to remove the edit tool; bash stays available even if bash.enabled is off.
  • Added default-off providers.openaiResponsesWebsockets to use WebSockets for supported standard Responses models (#​17354 by @​TatsukiMeng)
  • Pinned sessions show a pin beside their title; /unpin [session id] unpins a session (#​17848 by @​SuperUserA)
  • Extensions can draw tool calls and message/event blocks full, compact, or hidden via pi.registerTranscriptPresenter(), and redraw with ctx.ui.refreshTranscript(ids); enable with extensionRenderers.transcriptPresenters (default off) (#​17960 by @​materemias) (#​17997 by @​materemias)
  • Consecutive compact transcript blocks render as tight rows without blank gaps; extension renderers opt in via isTranscriptBlockCompact() (#​17997 by @​materemias)
  • Added a fullscreen link browser for links in scrollback: press Alt+O again (or Page Up) while link tags are shown (#​16476 by @​materemias)
  • Added a cache status-line segment (full/nerd presets) showing whether the next message hits the prompt cache; Tern and /session show why not and how much is resent (#​12677) (#​17496 by @​will-bogusz)
  • ^ model tags accept a :level suffix (e.g. ^openai-codex/gpt-6-astra:high) to set the subagent's effort (overriding task.maxEffort), with completion of each model's supported levels (#​17574 by @​a-glapinski)
  • Added the chillax magic keyword for brief, lowest-effort thinking on supported models; configure via magicKeywords.chillax
  • Added tui.colorfulMarkdown (on by default): replies color headings by level, bold and italic text, inline code and table headers from the theme's palette; turn it off for the previous single heading color and plain bold/italic
  • Added tui.motion (full/reduced/none), tui.spinnerInterval (0 = static) and tui.maxFps to control animation and repaint rate, also via --motion/--spinner-interval/--max-fps and PI_MOTION/PI_SPINNER_INTERVAL/PI_MAX_FPS; an explicit tui.spinnerInterval beats tui.motion, and keystroke echo keeps 30 fps (#​14240 by @​mccraigmccraig)
  • Added omp zsh, omp bash and omp sh to run omp's built-in shell engine directly, passing all arguments through and exiting with the shell's status.
  • omp zsh/omp bash keep shell history in your $HISTFILE, compatible with real zsh, including ! expansion, fc and history.
  • omp zsh runs interactively like zsh (line editor, bindkey, completion, job control, prompt hooks, common modules), so oh-my-zsh and powerlevel10k configs start.
  • RPC bash results report truncated output via elidedBytes/elidedLines and columnTruncated*/columnMax fields, decoded by the Go, Python and Rust SDKs (#​17957 by @​H4vC)
  • Added pi.getShortcutConflict(chord) so extensions can check whether a key chord is free or who holds it (#​17961 by @​materemias)
  • Exported unwrapHashlineHeaderPath from @oh-my-pi/pi-coding-agent to turn a [path#TAG] target into its plain path (#​17961 by @​materemias)
  • devin-cli login imports Devin CLI credentials, so the devin provider no longer requires DEVIN_API_KEY (#​13637 by @​pavel-kalmykov)
  • devin-windsurf login authenticates the devin provider with an existing Windsurf Enterprise account (#​13288 by @​pavel-kalmykov)
Changed
  • ovnfs turns on by itself when its binary is found (ovnfs.path, else ovnfs on PATH): agents get the separate-checkout guidance, and isolated subagents use ovnfs checkouts when isolation.backend is auto
  • Text Verbosity now defaults to low and applies to Codex too, matching the official Codex client: shorter answers that finish sooner; set textVerbosity to medium for the old length
  • A cost cap set on the main thread now applies to running subagents immediately
  • RPC wire protocol and task streaming have lower serialization overhead
  • Local Whisper speech-to-text, Parakeet/Nemotron speech, and the local tiny model install their runtimes on first use, shrinking installs; first use needs network access
  • wait with nothing new returns after 5s (backing off to 5m over repeated idle waits) instead of blocking up to 30 minutes, and nudges the agent toward other work
  • wait returns jobs finishing within 1.5s of each other in one result
  • Broadcasts and progress notes no longer cut short wait or interrupt bash/eval; a direct message still ends a wait and delivers every queued message
  • wait for a reply gives up after 5 minutes (was 30) and returns at once if the other agent is waiting on the user
  • In Tern, streamed assistant text and thinking are sent unpaced, cutting omp's CPU use; other terminals keep the smooth reveal
  • Source-checkout sessions start faster; existing build stamps remain readable
  • The agent's bash tool never touches your shell history or completion, and its zsh -i/bash -i skip .zshrc/.bashrc
  • Embedded Bash follows Bash 5.3 semantics and preserves supported aliases
  • CLI flags, session-only settings writes, and SDK overrides now outrank a setting's env var (PI_MOTION=none omp --motion full uses full motion); env vars still outrank settings files
  • JS and Python tool aborts now report the original abort reason
  • Many concurrent subagents now run in worker threads so they don't slow the TUI; new task.workerThreads caps workers (default 4; 0 keeps all on the main thread)
  • Interactive startup reaches the first frame ~75ms sooner when skills are listed in the system prompt
  • "What's New" release notes now appear just after the first frame; quitting before it keeps them for the next start
  • Subagents can no longer broadcast (write agent://all fails, pointing to a direct agent://<id> message) and are no longer told to announce shared-file edits; the main agent can still broadcast
  • Factory Droid Gemini 4 Argon sessions keep earlier turns intact across save and reload, with correct image clamping (#​17861 by @​will-bogusz)
Fixed
  • On macOS, the browser tool's headless Chromium keeps background tabs at normal CPU priority, so on a busy machine tab.traceStart(), opening a second tab, and other calls into background tabs no longer stall or time out
  • Subagents loading MCP tools (such as Kata's load_*) no longer change the main session's tools or system prompt
  • Mounting an MCP tool mid-session on prefix-bound models no longer changes the eval tool description, and the mount notice now reaches the model
  • Worker-thread subagents are faster: switching views on long transcripts no longer lags, wait no longer streams full transcripts, and they stall less on a busy main thread
  • Streaming a large batch task call no longer slows quadratically (about 80 ms → 2 ms for a 200 KB call)
  • computer from Eval now uses zoom for legible close-ups instead of cropping the downscaled screenshot (#​18158 by @​will-bogusz)
  • Python eval @tool definitions with type annotations now register on Python 3.9 (#​18143 by @​Winston-Hsiao)
  • read of an SEC EDGAR filing document or folder returns that document, not the company profile (#​18150 by @​will-bogusz)
  • read of a Read the Docs page no longer returns another repository's linked file (#​18162 by @​will-bogusz)
  • A browser click beside a direct tab.waitForDownload() now errors with a tab.run suggestion that actually catches the download (#​17615) (#​18155 by @​will-bogusz)
  • Browser open({ viewport }) now sizes relay tabs, app.cdp_url/app.path browsers, and headed Chromium on first open (#​18160 by @​will-bogusz)
  • Discarded empty, reasoning-only, or length-stop turns still count billed usage in session totals and omp stats (#​18178)
  • /extensions shows the active ~/.agents skill when a higher-priority ~/.claude copy is not opted in (#​18190)
  • Tool results whose details contain a throwing getter no longer silently stop all later session saves (#​18134 by @​MonsieurBarti)
  • write to a new ssh:// file no longer fails when the content ends with a read truncation notice (#​18154 by @​will-bogusz)
  • find returns verified hits as partial results when its 20 s budget runs out instead of failing (#​14809) (#​18161 by @​will-bogusz)
  • Background bash completion notices name the command, so parallel jobs are distinguishable (#​12607) (#​18166 by @​will-bogusz)
  • LSP results stay current for open files edited outside OMP, and files unused for 5 minutes are closed in the language server (#​18153 by @​will-bogusz)
  • Markdown edits no longer falsely warn that valid text (e.g. | a |||) fails to parse (#​18151 by @​will-bogusz)
  • Bash arguments like "skill:// external command" reach external commands as written instead of failing with exit 126 (#​18163 by @​will-bogusz)
  • Thin tool images are padded to the vision model's minimum size instead of causing a 400 (#​18081)
  • JSON query truncation notices report the 50KB read budget instead of the bytes shown (#​18022 by @​eggpeat)
  • Extension links, renderers, and ctx.ui.getLinkClicksAvailable() now work on every launch, not only the first after an edit (#​18116 by @​materemias)
  • Multi-line AST Grep captures show on one meta: row instead of splitting across rows (#​18105 by @​JustasMasiulis)
  • Extension shortcuts now match regardless of modifier order or spelling: reserved chords stay ignored and the last-loaded duplicate wins (#​17961 by @​materemias)
  • Building from source works again (#​18074 by @​Maziar123)
  • ./c continue no longer reports "Nothing to resume" after /handoff, compaction, or a /skill:-started session
  • omp bash and omp sh show a prompt when PS1 is unset
  • display.cacheMissMarker now flags turns that re-send most of the conversation (e.g. after an idle gap), even when the system prompt block was cached
  • A running session keeps its setting values when config.yml gains a value its omp version doesn't know, preserving tools and prompt cache
  • Forcing a queued message with Enter now reliably resumes the agent
  • Interrupting a Python eval cell blocked on top-level await cancels the cell and keeps the kernel and variables (#​18115 by @​Winston-Hsiao)
  • Apostrophes in slash-command and prompt-template arguments (e.g. /fix the user's login bug) now reach $ARGUMENTS and $1, $2, … intact (#​18008)
  • Bash output: middle truncation no longer splits lines and reports accurate line ranges; silent success returns (no output, exit code 0) (#​17957 by @​H4vC)
  • A new session's first frame always shows your configured default model and thinking level, not one from another session or folder
  • System-prompt skill listings show the compressed routing hint instead of a truncated description when it fits 160 characters; previously skipped skills are recompressed
  • Skill descriptions stop triggering background model requests once the session-tree cost cap is reached, and their spend counts toward the cap (#​18016)
  • The idle recap survives resume, restart, and transcript rebuilds, staying at the end until the conversation moves on (#​18113 by @​materemias)
  • Chat sessions on a web (or other model-kind) role model no longer fall back to web/* search providers and fail with Unhandled API in mapOptionsForApi: web-search (#​18056 by @​haesol-shin)
  • Grouped read rows naming a URL link the whole URL, not just its last path segment (#​18071 by @​iacore)
  • A second ask note on a later single-select question no longer replaces the previous question's note (#​17979)
  • The first run of a compiled binary after install or upgrade no longer fails omp --smoke-test with SubagentCodeChangedError or keeps subagents on the main thread (#​18060)
  • Retrying an aborted turn keeps the unsent composer draft (#​17977 by @​Shadorain)
  • The tts tool uses Grok Voice again instead of silently falling back to Kokoro, and sends language to xAI (auto-detected if omitted) (#​17992 by @​Mirceone)
  • Windows bash output on non-UTF-8 code pages (CJK) no longer turns into mojibake after one invalid byte; the byte shows as � (#​17947 by @​H4vC)
  • Hindsight no longer silently drops the last mental model (often User Preferences) from the prompt when over the render budget (#​17548, #​17955 by @​harshaygadekar)
  • Subagents woken by IRC, restored, revived, or rerun by a workpool keep their task.softRequestBudget guard; it and task.agentSoftRequestBudget resolve by agent name (e.g. scout), not task ID (#​17988 by @​sinhduc01, #​18121 by @​eggpeat)
  • A focused subagent's blocked indicator follows its own approval mode, tool policies, and grants instead of the main session's
  • Bash tool: exec >file, exec 2>/dev/null, or exec <file no longer redirects later commands in the session
  • Bash tool: an EXIT trap fires once at the end of its command, not after every later command
  • Bash tool: late output from a background job ((sleep 1; echo late) &) no longer appears in a later command's output
  • Bash tool: env -i no longer passes non-shell-name variables (A-B=1), and X=v env -i/X=v env -u X no longer pass an exported outer X
  • Bash tool: xargs reports a signal-killed command like GNU xargs: xargs: CMD: terminated by signal N, stopping with status 125
  • macOS: starting a bash tool session no longer briefly sets umask to 022, which could give new files wrong permissions
  • Bash tool: a shebang-less executable script run in the background from a FIFO (./script < fifo &) runs as bash instead of failing with Exec format error
  • Subagents no longer hang in an async Python @tool call waiting on an asyncio.Lock held by another subagent's call
  • Cancelling a subagent mid-call cancels its async Python @tool coroutine, releasing locks, and reports Python tool request was cancelled
  • Agent Hub no longer shows a previous session's subagents after creating or switching sessions
  • ast_grep and ast_edit detect languages for uppercase file extensions
  • snapcompact no longer treats incompatible older archives as reductions
  • computer window lookup and app opening work for app IDs, paths, and ~ paths, and survive Wayland permission timeouts
  • Embedded headless Chrome no longer outlives its host process, and computer/browser lifecycle works in SDK embeddings and local test runs
  • Out-of-credit provider errors now fail immediately instead of retrying for long periods; Retry works promptly once the account is funded.
  • DeepSeek-style *** End and *** End Patch markers are no longer written into files or truncate later edits
  • Composer prediction ghost text no longer vanishes when advisor messages arrive

v18.16.0

Compare Source

Added
  • With the Hindsight memory backend, retain and learn can now store a memory with scope: "global" so every project recalls it. It is opt-in through the new hindsight.globalScope setting (off by default) and needs global or per-project-tagged scoping (#​17706 by @​alphastorm, from #​15030 by @​kithawk).
  • Added btw.inject (off by default; /settings → Interaction → "/btw Steering Inject"): when you ask /btw for a steering prompt, it drafts one in an <inject> block shown behind a pink rail, and Alt+I (app.btw.inject) sends it to the main session (as a steer while the agent runs, else as a new turn) from the inline answer or the BTW history sheet, once per answer from the current run. Once sent, the block turns green with ➤ on each line and "Injected into main session" below it; if the main session drops or refuses the send, the block turns back to pending and the same key retries (#​17618 by @​apullin)
  • With OTLP metrics export configured (OTEL_EXPORTER_OTLP_METRICS_ENDPOINT), composer predictions export content-free omp.composer.prediction.* metrics by serving model: requests by outcome (offered, skipped, stale, cancelled, timeout, error) with their duration, predictions shown (counted on the first frame that paints them), shown predictions by whether they were accepted with Tab or Right, and the time from first display to acceptance (#​17739 by @​wolfiesch)
  • Bash results the output minimizer rewrote now keep which filter ran and the bytes before and after in the session, and the bash card shows them (Minimized: git 120.4KB → 3.2KB) (#​16586 by @​will-bogusz)
  • Eval completion handles expose attempts (JS await handle.attempts(), Python handle.attempts): each fallback candidate tried, in order, with the model, the reasoning effort sent, its outcome, and the error when it failed (#​17782 by @​xiangnan0811)
  • Added composer.predictionAlternatives (off by default; /settings → Interaction → "Prediction Alternatives", listed while Composer Predictions is on): the same single prediction request returns up to four different next messages, most likely first. Type a few letters to get ghost text for the first one that matches; after inserting one, press Tab again to pick another from a list. Prediction metrics carry how many alternatives were offered (omp.composer.prediction.choices), and an accepted prediction now resolves when it retires, with the rank of the alternative inserted last (omp.composer.prediction.rank) (#​17796 by @​wolfiesch)
  • /review and /annotate code-review work from a folder of checkouts: /review owner/repo#123 reviews a GitHub PR from anywhere; /review ./repo [#&#8203;123 | !7] [focus] reviews in that checkout (#N a GitHub PR, !N a GitLab MR); and outside any repository, the local and open-PR menu choices ask which child repository to use
Changed
  • /resume and omp --resume open at once on your titled sessions (read from ~/.omp/agent/history.db), then fill in prompts, status, and untitled sessions when the full scan finishes; the first scan saves older sessions' titles too, so later opens list them right away
  • With symbolPreset: ascii, status glyphs are three columns wide ([+], [-], [#], [ ]) and status spinners animate as [|] [/] [-] [\] (#​17732 by @​JustasMasiulis)
  • The subagent HUD marks each running agent with the running status glyph instead of a dot (#​17732 by @​JustasMasiulis)
Fixed
  • Browser: browser.close({ all: true }) from a subagent no longer closes its parent's tabs; it releases only the calling agent's tabs. Tabs now belong to the agent that opened them rather than its conversation id, so after /new, /resume, fork, or branch they are still frozen, idle-closed, released by close-all, and closed when the session ends instead of leaking (#​15975, #​16133 by @​harshaygadekar)
  • lsp request now sends payload: "null" as JSON null instead of substituting auto-built document params (#​17715).
  • A prompt rejected before a turn starts because its model or credential is missing returns to the editor for retry; ./c on an empty conversation reports that there is nothing to resume (#​17828).
  • Factory Droid requests keep attached images and snapcompact system-prompt frames when tools carry large runtime state (#​17819).
  • pr://<n>, issue://<n>, and repo-less github tool calls in a checkout whose upstream remote is not the fork parent of origin now resolve to origin instead of the upstream project; gh repo set-default still wins
  • omp -p text mode now prints each automatic retry with its error (for example "Couldn't reach api.anthropic.com … check your network") instead of showing only Working... while a turn retries (#​17529 by @​Mannan-Goyal)
  • omp --export and /export no longer fail with Error: Out of memory on large sessions with subagent transcripts, and use far less memory: the HTML is now streamed to disk instead of built as one string (#​17741)
  • A native security_scan with async.enabled on (the default) now waits for its background security-reviewer workers and publishes their findings, instead of ending partial with 0 findings and "The scan session ended without publishing a canonical result" (#​17788)
  • Browser (Chrome tabs): a click or drag cancelled before its final release now releases off-page instead of completing on its target, and the page sees no click from it (not even on the document root), a timed-out key combo sends no further key, and a call or run cut off mid-gesture releases the mouse button or keys it held instead of leaving them down in the tab. Input already dispatched to Chrome, including a target release, cannot be recalled and may still take effect after timeout (#​17778 by @​will-bogusz)
  • Relay mode: tab.waitForSelector, tab.evaluate and tab.goto no longer fail after 20 s when the page or server takes longer; like on a launched Chrome they now run to the call's own timeout, up to omp's 60 s protocol timeout, and a command Chrome never answers names itself and its tab (#​17778 by @​will-bogusz)
  • Fixed browser tab.click(selector, { button, count }) and frame.click ignoring their options and left-clicking once, so a right-click meant to open a context menu clicked the element instead; cmux tabs refuse buttons and counts they cannot press (#​17767 by @​will-bogusz)
  • Browser fill in Chrome no longer sometimes puts the new text in front of a Slate editor's old text when the machine is busy, and refuses a rich-text editor whose focus moves to a wrapper or the page instead of reporting success (#​17742 by @​will-bogusz)
  • Fixed a browser relay call working in a cross-site frame (an embedded sign-in form, say) failing with a bare Target closed when Chrome detached omp from the tab; it now says Chrome detached omp and whether the tab was reattached, as a call in the page itself does (#​17768 by @​will-bogusz)
  • Browser tabs omp opens with persist: true in your Chrome through the relay now stay open when the session ends (an omp -p run exits, a subagent finishes), so a page left for you is still there; other tabs omp opened still close, and an explicit close racing session cleanup still closes its page (#​17751 by @​will-bogusz)
  • Fixed keys you type in another app going into a page on macOS when omp's click in a relay tab opened a new tab or popup (#​16284 by @​will-bogusz)
  • Parked subagents keep their xd:// device mounts when woken after omp restarts, so they no longer lose their earlier Claude thinking (#​17746 by @​will-bogusz)
  • Fixed cancelling %pip in Python eval leaving the installer process behind in Linux containers and chroots without a usable /proc (#​16552 by @​will-bogusz)
  • Fixed numbered read pages of files with very long lines ending after a few KB: a line cut to tools.outputMaxColumns now counts the width shown, not its full length, against the page size, so paging no longer stops before such a line or refuses to step past it. When the first cut line is larger than a :raw read returns, the cut notice names that byte cap, and a multi-range read that the page size stops partway through a range says where to continue (#​16595 by @​will-bogusz)
  • Fixed write accepting the output of a read whose long lines were cut to tools.outputMaxColumns and overwriting the file with the cut lines; it now refuses it as an incomplete read, as it does for other truncated reads (#​16595 by @​will-bogusz)
  • Fixed a session resumed, or a parked subagent woken, on a later day resending its first message with that day's date, which made Claude drop all of its earlier thinking and missed the prompt cache; earlier messages now keep the date they were sent with (#​15343) (#​17622 by @​will-bogusz)
  • models.yml accepts tokenizer: cl100k on a custom model or override (#​17607 by @​will-bogusz)
  • Claude no longer receives the reasoning kept in a snapcompact archive whose summary an extension wrote without the reasoning legend, with or without image input, and reads that summary's own words instead of a generic one (#​17745 by @​will-bogusz)
  • Fixed ~/.omp/agent/agent.db getting corrupted (wiping stored logins) on Linux when grep, read, the bash tool, extensions or eval read it while omp has it open; write and tts now refuse to overwrite a database omp holds open (#​15586)

v18.15.0

Compare Source

Added
  • Long or multi-step background shell commands get a one-line caption saying what they do and when they end, written once per job by the widget model role when the job, after running 15 seconds, is shown in a live widget or listed by /jobs full; the jobs sheet and /jobs full show it under the job's purpose. It follows the Live Job Widgets setting (async.widgets), and CreateAgentSessionOptions.jobCaptionWriter replaces the model call (#​17649 by @​wolfiesch)
Changed
  • In a source checkout, the error for a missing HTML export viewer now names the script that builds it, packages/collab-web/scripts/build-export-viewer.ts, beside bun gen:export-viewer (#​17636 by @​sjawhar)
  • Fixed an eval cell running silently on a new kernel after the session's Python kernel or JS worker died between cells (a crash, a kill, an out-of-memory kill, or a cancelled JS cell): the first cell on the replacement now carries Kernel restarted: … state is unavailable. Re-run needed setup ahead of its own output, instead of failing with a bare NameError on a variable an earlier cell set (#​17595 by @​sjawhar)
  • Fixed a task worker messaged (write agent://<id>) while still starting up running on the shared context alone and never receiving its tasks[].task assignment; the message now waits for the assignment's turn (#​17587)
  • lsp reload now discovers Rust crates created after rust-analyzer started, so hover and other analysis work without restarting omp (#​17658).
  • A model without image input (GLM, DeepSeek, Grok Composer and the like) reads a snapcompact archive's full kept text instead of image-omitted placeholders for its frames, after a model switch, on resume and in side requests (#​17510 by @​will-bogusz)
  • Snapcompact no longer refuses a new archive as "would not reduce context" when it shrinks a session that already holds one (/compact snapcompact, idle and pre-prompt compaction) (#​17490 by @​will-bogusz)
  • A failed /compact snapcompact now reports its reason once instead of twice, and names the /compact mode to run instead (#​17490 by @​will-bogusz)
  • Background bash and eval jobs now carry the purpose the model gave for the call: /jobs, /jobs full, proc:// listings, wait and job results, and the jobs HUD hover lead with it ahead of the raw command line (#​17649 by @​wolfiesch)
  • The seance guidance in the task tool and the archive docs now say that a question about an earlier session is answered by the seance agent, and that reading the session's raw JSONL belongs to narrow mechanical checks only, so a consult is no longer duplicated by transcript reads and re-run checks (#​17523 by @​iacore)
Fixed
  • A prompt on a model whose provider has no usable credential (logged out, refresh token expired, or an auth broker holding none) now switches to the first retry.fallbackChains candidate that has one instead of failing with "No API key found", and switches back on the first prompt after the credential returns (#​17559 by @​wolfiesch)
  • Fixed background results arriving during manual /compact starting turns on stale history or disappearing from the saved session (#​17599).
  • Fixed isolated tasks on fuse-overlayfs leaving their overlay mounted and the fuse-overlayfs daemon running when the unmount hit a transient "Device or resource busy"; a failed unmount now reports fusermount's error and keeps the workspace for omp worktree clear instead of deleting its layers under the live mount (#​17644)
  • Usage-limit retries now count system sleep toward the quota-reset deadline instead of re-arming the remaining uptime delay after the countdown reaches zero (#​17606 by @​zhiland).
  • Fixed role assignments to a models.yml model whose id differs only by case from a bundled model of the same provider (such as xiaomi/MiMo-V2.6-Pro beside xiaomi/mimo-v2.6-pro) silently staying unset (#​17580)
  • Fixed Eval's direct browser wait helpers (tab.waitForSelector, tab.waitForText, …) giving up after 29 s when passed a longer { timeout }; the requested timeout is now honored up to the browser tool's 300 s cap ([#​17617](https://redirect.github.com/can1357/oh-my-pi/issues

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/Warsaw)

  • Branch creation
    • "before 6am on monday"
  • Automerge
    • At any time (no schedule defined)

🚦 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 this update again.


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

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from oritwoen as a code owner October 4, 2026 22:21
@renovate renovate Bot added the dependencies label Oct 4, 2026
@coldtea-pr-lens

Copy link
Copy Markdown

Note

renovate[bot] opened this pull request, so PR Lens left it undrawn. Comment @pr-lens draw to draw it

github.comment.notice: false in .github/pr-lens.yml turns this note off

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://renovate-oh-my-pi-agntn-tools.oritwoen.workers.dev (commit a0ea453)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://bf167df6-agntn-tools.oritwoen.workers.dev a0ea453 2026-10-10T09:31:54.623Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://14e00fd9-agntn-tools.oritwoen.workers.dev e0ca091 2026-10-10T00:48:58.886Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://396621ac-agntn-tools.oritwoen.workers.dev 514e42d 2026-10-09T14:30:25.600Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://5f3f9fe8-agntn-tools.oritwoen.workers.dev d74342c 2026-10-09T14:20:13.597Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://59541c9b-agntn-tools.oritwoen.workers.dev c307895 2026-10-07T17:23:53.920Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://a51bdaf4-agntn-tools.oritwoen.workers.dev 2b8f341 2026-10-06T23:38:41.872Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://2938bc40-agntn-tools.oritwoen.workers.dev b9a87ed 2026-10-06T14:23:50.412Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://cbc70df4-agntn-tools.oritwoen.workers.dev 87727ab 2026-10-06T02:15:14.026Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://a038b56b-agntn-tools.oritwoen.workers.dev 20bc5a0 2026-10-05T17:20:35.054Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://1993ed05-agntn-tools.oritwoen.workers.dev a3b6be6 2026-10-05T13:19:03.668Z Visit the dashboard ↗

View all previews: View all previews ↗

@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch 2 times, most recently from 9ee0b0e to 0a52b6f Compare October 5, 2026 02:40
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.4.9 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.4.10 Oct 5, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch 2 times, most recently from a3b6be6 to 20bc5a0 Compare October 5, 2026 17:18
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.4.10 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.4.12 Oct 5, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 20bc5a0 to 87727ab Compare October 6, 2026 02:12
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.4.12 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.5.0 Oct 6, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 87727ab to b9a87ed Compare October 6, 2026 14:21
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.5.0 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.5.1 Oct 6, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from b9a87ed to 2b8f341 Compare October 6, 2026 23:35
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.5.1 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.6.0 Oct 6, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 2b8f341 to c307895 Compare October 7, 2026 17:20
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.6.0 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.6.1 Oct 7, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from c307895 to d74342c Compare October 9, 2026 14:16
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.6.1 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.6.3 Oct 9, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch 2 times, most recently from 514e42d to e0ca091 Compare October 10, 2026 00:46
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.6.3 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.7.0 Oct 10, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from e0ca091 to a0ea453 Compare October 10, 2026 09:29
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.7.0 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.8.0 Oct 10, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from a0ea453 to 518dc09 Compare October 11, 2026 00:50
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.8.0 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.8.3 Oct 11, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 518dc09 to 353b50a Compare October 11, 2026 05:17
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.8.3 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.8.4 Oct 11, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 353b50a to ce0ec27 Compare October 11, 2026 20:39
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.9.2 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.10.1 Oct 15, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 792b8b6 to 7337b20 Compare October 15, 2026 16:52
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.10.1 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.10.2 Oct 15, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 7337b20 to 0096b45 Compare October 15, 2026 22:39
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.10.2 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.10.3 Oct 15, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 0096b45 to 86a7717 Compare October 17, 2026 02:35
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.10.3 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.10.4 Oct 17, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 86a7717 to 2c49266 Compare October 18, 2026 00:40
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.10.4 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.11.0 Oct 18, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 2c49266 to 42f11ad Compare October 18, 2026 16:38
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.11.0 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.11.1 Oct 18, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 42f11ad to 4c3694d Compare October 20, 2026 10:52
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.11.1 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.11.3 Oct 20, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 4c3694d to d1d0787 Compare October 20, 2026 19:59
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.11.3 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.0 Oct 20, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from d1d0787 to e3d6ebf Compare October 21, 2026 02:07
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.0 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.1 Oct 21, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from e3d6ebf to 37e2b8e Compare October 21, 2026 21:58
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.1 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.2 Oct 21, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 37e2b8e to 126e410 Compare October 22, 2026 21:45
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.2 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.3 Oct 22, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 126e410 to 5317adc Compare October 23, 2026 20:51
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.3 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.4 Oct 23, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 5317adc to c5388bd Compare October 24, 2026 04:29
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.4 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.5 Oct 24, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from c5388bd to 4ed9dad Compare October 25, 2026 01:56
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.5 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.6 Oct 25, 2026
@renovate
renovate Bot force-pushed the renovate/oh-my-pi branch from 4ed9dad to 7399aec Compare November 1, 2026 09:38
@renovate renovate Bot changed the title chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.12.6 chore(deps): update dependency @oh-my-pi/pi-coding-agent to v18.13.3 Nov 1, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants