Skip to content

v16.5.2

Choose a tag to compare

@github-actions github-actions released this 14 Jul 22:35
7d02778

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

Fixed

  • Improved session deadline abort signals to carry structured cancellation reasons, enabling timeout-aware tools to correctly classify deadline cancellations.
  • Fixed an issue where completed tool executions were incorrectly marked as skipped (clobbering their actual results) if a user message was queued while the tool was in flight.

@oh-my-pi/pi-ai

Added

  • Added OpenAI Codex rate-limit response-header ingestion to proactively refresh account usage snapshots and rotate credentials before hitting 429 errors.

Changed

  • Optimized multi-account credential ranking to maximize quota utilization and prevent mid-session blocks by prioritizing expiring quota and demoting heavily used accounts.
  • Improved responsiveness of credential blocking by bypassing the usage-ingestion throttle immediately when an account is detected as exhausted.

Fixed

  • Fixed empty provider responses (such as from Cloud Code Assist API) being treated as non-retryable, allowing session retries and model-fallback chains to engage.
  • Fixed OpenAI Codex watchdog timeouts bypassing transport and session retries by ensuring each request attempt has an independent timeout signal.

@oh-my-pi/pi-catalog

Fixed

  • Fixed OpenCode Zen and Go discovery to replace stale bundled models with each provider's live model catalog.

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

Breaking Changes

  • Removed the separate selector parameters from read and grep; line ranges and read modes must now be appended to path.

Added

  • Added a generate_image.enabled setting (Settings › Tools › Generate Image) to allow toggling the image generation tool.

Changed

  • Expanded provider rate-limit response header ingestion to all supported providers with header parsers (previously Anthropic-only), enabling proactive account rotation for multi-account sessions before hitting 429 errors.
  • Restored CPU model metadata in workstation prompts on non-Linux hosts.

Fixed

  • Fixed omp config list --json output truncation at 64 KiB when stdout is piped.
  • Fixed vim-style navigation (h/j/k/l) under the Kitty keyboard protocol.
  • Fixed /guided-goal throwing Model not found errors on websocket-only Codex models by routing the interview through the session's provider transport and reusing a single isolated side session.
  • Fixed tool_result extension handlers being unable to rewrite the model-visible content of a thrown tool failure.
  • Fixed intermittent Perplexity OAuth web search failures (401 errors) caused by transient transport drops on the ask endpoint.
  • Fixed the generate_image tool ignoring --no-tools and explicit tool whitelists.
  • Fixed markerless prose thinking preambles incorrectly becoming session titles when title models omit the <title> marker.
  • Fixed the agent recreating a todo list immediately after a user clears it with /todo rm.
  • Fixed internal-URL autocomplete (agent://, skill://, omp://, etc.) not triggering inside slash command arguments.
  • Fixed the browser tool hanging indefinitely during tab closure when the headless Chromium process is wedged on Windows.
  • Fixed history:// URLs failing to resolve for unregistered, released, or resumed subagents by falling back to scanning artifacts directories on disk.
  • Fixed eval cells treating timeout: 0 as a one-second deadline and reporting session-deadline cancellations as user aborts.
  • Fixed MCP OAuth dynamic client registration for pathful authorization-server issuers by preserving the discovered registration endpoint.
  • Fixed the launch tool failing to start Windows executables due to double-escaped PTY commands and arguments.
  • Fixed the built-in advisor warning Advisor unavailable for silent reviews: a content-less stop is a valid "nothing to add" outcome and is never retried or warned about, regardless of reported token usage (#5212 follow-up).
  • Fixed read, edit, and grep tools failing on paths with a stray leading colon emitted by some models.
  • Fixed git plugin re-installs retaining stale commits by fetching Bun's cached clone before updating the lockfile pin.
  • Fixed overlapping Bash timeout and interrupt cleanup to explicitly abort isolated shells instead of leaving child processes running.
  • Fixed a bug where generic provider aborts arriving as stopReason: "error" were not auto-retried.
  • Fixed switching from a vision model to a text-only model mid-session sending historical image blocks to the new provider.
  • Fixed inline images in Agent Hub transcripts by routing replayed images through the shared image budget and Kitty placeholder renderer.
  • Fixed OSC 5522 paste in direct API-key login prompts being routed to the hidden main chat editor instead of the focused credential field.
  • Fixed plugin installation failures when an ES module extension synchronously requires CommonJS helpers.
  • Fixed GitHub code search rejecting empty optional date placeholders.
  • Fixed /tree navigation onto a /skill: injection node landing on the incorrect entry.
  • Fixed interactive TUI sessions crashing with concurrent JS runtime errors when the JS eval worker falls back to the in-process inline path.
  • Fixed compaction aborting instead of trying an authenticated fallback model when Amazon Bedrock credential resolution fails.
  • Fixed full-context forks and /tan clones cold-missing OpenAI prompt caches by properly persisting and inheriting provider prompt-cache keys.
  • Fixed Codex advisor requests using local session labels as provider session IDs.
  • Fixed macOS stdio MCP servers launching in a detached session, allowing the TCC Apple Events permission prompt to trigger.
  • Fixed the ask tool timeout to auto-select the recommended option when the UI selector does not settle.
  • Fixed LSP workspace diagnostics for Go workspaces to correctly recognize go.work roots and include all used modules.
  • Fixed interactive OAuth login success messages waiting on background model discovery.
  • Fixed Windows bash tool crashes when an explicit timeout fires while a piped command is still streaming.
  • Fixed subagent yield tool calls being discarded when the soft request budget hard-aborted the same assistant turn.
  • Fixed --tools filtering in interactive sessions disabling deferred MCP tools.
  • Fixed kept-alive task subagents entering repeated provider-call loops after an IRC wake and terminal yield.
  • Fixed manual /compact with the snapcompact strategy hard-failing on text-only active models.
  • Fixed the empty-editor ←← gesture trapping input when opening the Agent Hub from persisted/parked subagents.
  • Fixed eval read() URI handling in Python and JS runtimes to correctly delegate URI reads and pass pagination arguments.
  • Fixed discovered plugin .mcp.json stdio servers launching relative command or cwd values against the session cwd instead of the plugin's config directory.
  • Fixed Model Hub DEFAULT role assignments with auto retaining a stale concrete reasoning suffix after restart.
  • Fixed configured retry.fallbackChains failing to engage on non-retryable provider errors.
  • Fixed backgrounded Bash blocks continuing to repaint with live output after completion.
  • Fixed --reasoning-slide-plan silently ending the run with no code written when the model answered with a text-only reply.
  • Fixed launch tool rendering issues, including stacked pending headers and confusing start/wait results when readiness timed out.
  • Fixed the in-process stat and other GNU-flavored shell builtins (such as date, sed, mktemp, tail, find, base64, and ln) mangling or failing on macOS/BSD-style invocations.

@oh-my-pi/pi-natives

Fixed

  • Fixed an issue where Windows PTY callers were forced through shell command re-quoting by supporting direct executable and argument launching.

@oh-my-pi/pi-tui

Fixed

  • Fixed animated Loader ANSI updates causing unnecessary text layout invalidation and re-wrapping on shimmer-only frames (#5230).
  • Fixed Ctrl+W (delete word backward) stopping at underscores in snake_case identifiers, treating them as single words (#4776).
  • Fixed automatic file completion incorrectly treating punctuation, trailing spaces, and slash-command text as paths, and improved autocomplete dismissal behavior (#5376).
  • Fixed Kitty graphics rendering under tmux, ensuring images correctly follow pane scrolling and reflow (#5381).
  • Fixed tmux sessions becoming unresponsive after terminal capability replies by falling back to legacy keyboard input mode when the Kitty protocol is unavailable (#5378).
  • Fixed PageUp and PageDown keys on an empty prompt editor incorrectly navigating prompt history instead of scrolling the editor viewport (#4754).

@oh-my-pi/pi-utils

Fixed

  • Improved CLI argument and flag validation error output to display a concise error message and command usage instead of a minified code frame.
  • Corrected required variadic positionals to render as MODELS... instead of [MODELS] in usage help.

What's Changed

  • fix(catalog): sync OpenCode models from live catalogs by @roboomp in #5409
  • fix(session): fall back to LLM compaction on manual /compact for text-only models by @roboomp in #5440
  • fix(todo): signal removal intent so agent stops rebuilding cleared todos by @roboomp in #5450
  • fix(tui): trigger internal-url autocomplete inside slash args by @roboomp in #5454
  • fix(mcp): preserve discovered registration endpoint by @roboomp in #5456
  • fix(browser): bound headless browser close to unblock tab cleanup by @roboomp in #5458
  • fix(coding-agent): reject prose thinking session titles by @roboomp in #5459
  • fix(tools): gate generate_image behind setting and tool whitelist by @roboomp in #5466
  • fix(cli): flush config JSON output before exit by @roboomp in #5467
  • fix(tui): handle Kitty vim navigation sequences by @roboomp in #5469
  • fix(coding-agent): route /guided-goal oneshot through Codex websocket transport by @roboomp in #5471
  • fix(ai): retry Codex pre-response watchdog timeouts by @roboomp in #5477
  • fix(web-search): stop Perplexity OAuth token leaking to the API-key endpoint by @roboomp in #5478
  • fix(discovery): resolve relative plugin MCP command/cwd against config dir by @roboomp in #5481
  • fix(tui): classify underscore as word char for Ctrl+W by @roboomp in #5487
  • fix(models): preserve auto role thinking across restart by @roboomp in #5491
  • fix(tui): hand editor tap state to agent hub on double-left open by @roboomp in #5492
  • fix(eval): delegate Python URI reads to host resolver by @roboomp in #5494
  • fix(tui): guard DynamicBorder against uninitialized module-level theme by @roboomp in #5495
  • fix(cli): print concise usage error instead of source dump by @roboomp in #5496
  • fix(tools): accept empty GitHub search date placeholders by @roboomp in #5498
  • fix(plugins): preserve native CommonJS helper loading by @roboomp in #5499
  • fix(tui): constrain automatic file completion triggers by @roboomp in #5501
  • fix(tui): keep tmux keyboard input in legacy mode by @roboomp in #5502
  • fix(session): land tree navigation on /skill: injection node by @roboomp in #5503
  • fix(prompt): restore non-Linux CPU model metadata by @roboomp in #5504
  • fix(plugins): refresh stale Bun git cache before reinstall by @roboomp in #5505
  • fix(session): auto-retry bare "Request was aborted" error-stop turns by @roboomp in #5506
  • fix(tui): cache loader layout across shimmer frames by @roboomp in #5509
  • fix(tui): anchor Kitty images through tmux by @roboomp in #5511
  • fix(tui): stop PageUp/PageDown stepping prompt history at idle by @roboomp in #5512
  • fix(agent): keep completed tool results from false "skipped" placeholder by @roboomp in #5513
  • fix(bash): abort isolated shells on cancellation by @roboomp in #5514
  • fix(auth): route OSC 5522 paste into login prompts by @roboomp in #5516
  • fix(agent): strip images for non-vision models mid-session by @roboomp in #5518
  • fix(launch): pass Windows PTY arguments directly by @roboomp in #5520
  • fix(coding-agent): accept silent advisor stops with output tokens by @roboomp in #5523
  • fix(tools): strip stray leading colon from tool paths by @roboomp in #5529
  • fix(eval): honor timeout zero and classify session deadlines by @roboomp in #5451
  • fix(internal-urls): serve history:// transcripts from disk fallback by @roboomp in #5455
  • fix(extensions): let tool_result rewrite thrown failure content by @roboomp in #5465

Full Changelog: v16.5.1...v16.5.2