Skip to content

Releases: badlogic/pi-mono

v0.70.0

23 Apr 23:03

Choose a tag to compare

New Features

  • Searchable auth provider login flow: the /login provider selector now supports fuzzy search/filtering, making it faster to find providers when many are configured. See docs/providers.md. (#3572 by @mitsuhiko)
  • GPT-5.5 Codex support: openai-codex/gpt-5.5 is available as a model option, including xhigh reasoning support and corrected priority-tier pricing.
  • Terminal progress indicators are now opt-in: OSC 9;4 progress reporting during streaming/compaction is off by default and can be toggled via terminal.showTerminalProgress in /settings (#3588)
  • --no-builtin-tools / createAgentSession({ noTools: "builtin" }) now correctly disables only built-in tools while keeping extension tools active. See docs/extensions.md and README.md (#3592)

Breaking Changes

  • Disabled OSC 9;4 terminal progress indicators by default. Set terminal.showTerminalProgress to true in /settings to re-enable (#3588)

Added

  • Added searchable auth provider login flow with fuzzy filtering in the provider selector (#3572 by @mitsuhiko)
  • Added GPT-5.5 Codex model
  • Added auth source labels in /login so provider entries can show when auth comes from --api-key, an environment variable, or custom provider fallback without exposing secrets.

Changed

  • Updated default model selection across providers to current recommended models.
  • Improved stale extension context errors after session replacement or reload to tell extension authors to avoid captured pi/command ctx and use withSession for post-replacement work.

Fixed

  • Fixed /model selector cancellation to request render instead of incorrectly triggering login selector.
  • Changed login, OAuth, and extension selectors for more consistent styling.
  • Added Amazon Bedrock setup guidance to /login and updated /model copy to refer to configured providers instead of only API keys.
  • Improved no-model and missing-auth warnings to point users to /login for OAuth or API key setup.
  • Fixed /quit shutdown ordering to stop the TUI before extension UI teardown can repaint, preserving the final rendered frame while still emitting session_shutdown before process exit.
  • Fixed SettingsManager.inMemory() initial settings being lost after reloads triggered by SDK resource loading (#3616)
  • Fixed models.json provider compatibility to accept compat.supportsLongCacheRetention, allowing proxies to opt out of long-retention cache fields when needed while long retention is enabled by default when requested (#3543)
  • Fixed --thinking xhigh for openai-codex gpt-5.5 so it is no longer downgraded to high.
  • Fixed git package installs with custom npmCommand values such as pnpm by avoiding npm-specific production flags in that compatibility path (#3604)
  • Fixed first user messages rendering without spacing after existing notices such as compaction summaries or status messages (#3613)
  • Fixed the handoff extension example to use the replacement-session context after creating a new session, avoiding stale ctx errors when it installs the generated prompt (#3606)
  • Fixed session replacement and /quit teardown ordering to run host-owned extension UI cleanup synchronously after session_shutdown handlers complete but before invalidating the old extension context, preventing stale extension UI from rendering against a disposed session (#3597 by @vegarsti)
  • Fixed crash on /quit when an extension registers a custom footer whose render() accesses ctx, by tearing down extension-provided UI before invalidating the extension runner during shutdown (#3595)
  • Fixed auto-retry to treat Bedrock/Smithy HTTP/2 transport failures like http2 request did not get a response as transient errors, so the agent retries automatically instead of waiting for a manual nudge (#3594)
  • Fixed the CLI/SDK tool-selection split so --no-builtin-tools and createAgentSession({ noTools: "builtin" }) disable only built-in default tools while keeping extension/custom tools enabled, instead of falling through to the same "disable everything" path as --no-tools (#3592)
  • Fixed remaining hardcoded pi / .pi branding to route through APP_NAME and CONFIG_DIR_NAME extension points, so SDK rebrands get consistent naming in /quit description, process.title, and the project-local extensions directory (#3583 by @jlaneve)
  • Fixed pi-coding-agent shipping uuid@11, which triggered npm audit moderate vulnerability reports for downstream installs; the package now depends on uuid@14 (#3577)
  • Fixed openai-completions streamed tool-call assembly to coalesce deltas by stable tool index when OpenAI-compatible gateways mutate tool call IDs mid-stream, preventing malformed Kimi K2.6/OpenCode tool streams from splitting one call into multiple bogus tool calls (#3576)
  • Fixed ctx.ui.setWorkingMessage() to persist across loader recreation, matching the behavior of ctx.ui.setWorkingIndicator() (#3566)
  • Fixed coding-agent fs.watch error handling for theme and git-footer watchers to retry after transient watcher failures such as EMFILE, avoiding startup crashes in large repos (#3564)
  • Fixed built-in kimi-coding model generation to attach the expected User-Agent header so direct Kimi Coding requests use the provider's expected client identity (#3586)
  • Fixed extension shortcut conflict diagnostics to display at startup instead of only on reload, so extension authors discover reserved keybinding conflicts immediately rather than discovering them later through user feedback (#3617)
  • Fixed models.json Anthropic-compatible provider configuration to accept compat.supportsEagerToolInputStreaming, allowing proxies that reject per-tool eager_input_streaming to use the legacy fine-grained tool streaming beta header instead (#3575)
  • Fixed startup banner extension labels to strip trailing index.js/index.ts suffixes (#3596 by @aliou)
  • Fixed OSC 9;4 terminal progress updates to stay alive in terminals such as Ghostty during long-running agent work (#3610)
  • Fixed OpenAI-compatible completion usage parsing to avoid double-counting reasoning tokens already included in completion_tokens (#3581)
  • Fixed openai-responses compatibility for strict OpenAI-compatible proxies by allowing models.json to disable the underscore-containing session_id header with compat.sendSessionIdHeader: false (#3579)
  • Fixed GPT-5.5 Codex capability handling to clamp unsupported minimal reasoning to low and apply the model's 2.5x priority service-tier pricing multiplier (#3618 by @markusylisiurunen)

v0.69.0

22 Apr 19:40

Choose a tag to compare

New Features

Breaking Changes

  • Migrated first-party coding-agent code, SDK/examples/docs, and package metadata from @sinclair/typebox 0.34.x to typebox 1.x. New extensions, SDK integrations, and pi packages should depend on and import from typebox. Legacy extension loading still aliases the root @sinclair/typebox package, but @sinclair/typebox/compiler is no longer shimmed. This migration also picks up the new @mariozechner/pi-ai TypeBox-native validator path, so tool argument validation now works in eval-restricted runtimes such as Cloudflare Workers instead of being skipped (#3112)
  • Session-replacement commands now invalidate captured pre-replacement session-bound extension objects after ctx.newSession(), ctx.fork(), and ctx.switchSession(). Old pi and command ctx references now throw instead of silently targeting the replaced session. Migration: if code needs to keep working in the replacement session after one of those calls, pass withSession to that same method and do the post-switch work there. In practice, move post-switch pi.sendUserMessage(), pi.sendMessage(), and command-ctx/session-manager access into withSession, and use only the ReplacedSessionContext passed to that callback for session-bound operations. Footguns: withSession runs after the old extension instance has already received session_shutdown, old cleanup may already have invalidated captured state, captured old pi / old command ctx are stale, and previously extracted raw objects such as const sm = ctx.sessionManager remain the caller's responsibility and must not be reused after the switch.

Added

  • Added support for terminating tool results via terminate: true, allowing custom tools to end the current tool batch without an automatic follow-up LLM call, plus a structured-output.ts extension example and extension docs showing the pattern (#3525)
  • Added OSC 9;4 terminal progress indicators during agent streaming and compaction, so terminals like iTerm2, WezTerm, Windows Terminal, and Kitty show activity in their tab bar
  • Added ctx.ui.addAutocompleteProvider(...) for stacking extension autocomplete providers on top of the built-in slash/path provider, plus a github-issue-autocomplete.ts example and extension docs (#2983)

Fixed

  • Fixed exported session HTML to sanitize markdown link URLs before rendering them into anchor tags, blocking javascript:-style payloads while preserving safe links in shared/exported sessions (#3532)
  • Fixed ctx.getSystemPrompt() inside before_agent_start to reflect chained system-prompt changes made by earlier before_agent_start handlers, and clarified the extension docs around provider-payload rewrites and what ctx.getSystemPrompt() does and does not report (#3539)
  • Fixed built-in google-gemini-cli model lists and selector entries to include gemini-3.1-flash-lite-preview, so Cloud Code Assist users no longer need manual --model fallback selection to use it (#3545)
  • Fixed extension session-replacement flows so ctx.newSession(), ctx.fork(), ctx.switchSession(), and imported-session replacements fully rebind before post-switch work runs, added withSession replacement callbacks with fresh ReplacedSessionContext helpers, and make stale pre-replacement pi / ctx session-bound accesses throw instead of silently targeting the wrong session (#2860)
  • Fixed models.json built-in provider overrides to accept headers without requiring baseUrl, so request-header-only overrides now load and apply correctly (#3538)

v0.68.1

22 Apr 00:16

Choose a tag to compare

New Features

Added

  • Added built-in Fireworks provider support, including FIREWORKS_API_KEY setup/docs and the default Fireworks model accounts/fireworks/models/kimi-k2p6 (#3519)

Fixed

  • Fixed interactive inline tool images to honor configurable terminal.imageWidthCells via /settings, so tool-output images are no longer hard-capped to 60 terminal cells (#3508)
  • Fixed sessionDir in settings.json to expand ~, so portable session-directory settings no longer require a shell wrapper (#3514)
  • Fixed parallel tool-call rows to leave the pending state as soon as each tool is finalized, while still appending persisted tool results in assistant source order (#3503)
  • Fixed exported session markdown to render Markdown while showing HTML-like message content such as <file name="...">...</file> verbatim, so shared sessions match the TUI instead of letting the browser interpret message text (#3484)
  • Fixed exported session HTML to render grep and find output through their existing TUI renderers and ls output through a native template renderer, avoiding missing formatting and spacing artifacts in shared sessions (#3491 by @aliou)
  • Fixed @ autocomplete fuzzy search to follow symlinked directories and include symlinked paths in results (#3507)
  • Fixed proxied agent streams to preserve the proxy-safe serializable subset of stream options, including session, transport, retry-delay, metadata, header, cache-retention, and thinking-budget settings (#3512)
  • Hardened Anthropic streaming against malformed tool-call JSON by owning SSE parsing with defensive JSON repair, replacing the deprecated fine-grained-tool-streaming beta header with per-tool eager_input_streaming, and updating stale test model references (#3175)
  • Fixed Bedrock runtime endpoint resolution to stop pinning built-in regional endpoints over AWS_REGION / AWS_PROFILE, restoring us.* and eu.* inference profile support after v0.68.0 while preserving custom VPC/proxy endpoint overrides (#3481, #3485, #3486, #3487, #3488)

v0.68.0

20 Apr 21:57

Choose a tag to compare

New Features

Breaking Changes

  • Changed SDK and CLI tool selection from cwd-bound built-in tool instances to tool-name allowlists. createAgentSession({ tools }) now expects string[] names such as "read" and "bash" instead of Tool[], --tools now allowlists built-in, extension, and custom tools by name, and --no-tools now disables all tools by default rather than only built-ins. Migrate SDK code from tools: [readTool, bashTool] to tools: ["read", "bash"] (#2835, #3452)
  • Removed prebuilt cwd-bound tool and tool-definition exports from @mariozechner/pi-coding-agent, including readTool, bashTool, editTool, writeTool, grepTool, findTool, lsTool, readOnlyTools, codingTools, and the corresponding *ToolDefinition values. Use the explicit factory exports instead, for example createReadTool(cwd), createBashTool(cwd), createCodingTools(cwd), and createReadToolDefinition(cwd) (#3452)
  • Removed ambient process.cwd() / default agent-dir fallback behavior from public resource helpers. DefaultResourceLoader, loadProjectContextFiles(), and loadSkills() now require explicit cwd/agent-dir style inputs, and exported system-prompt option types now require an explicit cwd. Pass the session or project cwd explicitly instead of relying on process-global defaults (#3452)

Added

  • Added extension support for customizing the interactive streaming working indicator via ctx.ui.setWorkingIndicator(), including custom animated frames, static indicators, hidden indicators, a new working-indicator.ts example extension, and updated extension/TUI/RPC docs (#3413)
  • Added systemPromptOptions (BuildSystemPromptOptions) to before_agent_start extension events, so extensions can inspect the structured inputs used to build the current system prompt (#3473 by @dljsjr)
  • Added /clone to duplicate the current active branch into a new session, while keeping /fork focused on forking from a previous user message (#2962)
  • Added ctx.fork() support for position: "before" | "at" so extensions and integrations can branch before a user message or duplicate the current point in the conversation; the interactive clone/fork UX builds on that runtime support (#3431 by @mitsuhiko)
  • Added configurable keybinding ids for scoped model selector actions and tree filter actions, so those interactive shortcuts can be remapped in keybindings.json (#3343 by @mpazik)
  • Added PI_OAUTH_CALLBACK_HOST support for built-in OAuth login flows, allowing local callback servers used by pi auth to bind to a custom interface instead of hardcoded 127.0.0.1 (#3409 by @Michaelliv)
  • Added reason and targetSessionFile metadata to session_shutdown extension events, so extensions can distinguish quit, reload, new-session, resume, and fork teardown paths (#2863)

Changed

  • Changed pi update to batch npm package updates per scope and run git package updates with bounded parallelism, reducing multi-package update time while preserving skip behavior for pinned and already-current packages (#2980)
  • Changed Bedrock session requests to omit maxTokens when model token limits are unknown and to omit temperature when unset, letting Bedrock use provider defaults and avoid unnecessary TPM quota reservation (#3400 by @wirjo)

Fixed

  • Fixed AgentSession system-prompt option initialization to avoid constructing an invalid empty BuildSystemPromptOptions, so npm run check passes after cwd became mandatory.
  • Fixed shell-path resolution to stop consulting ambient process.cwd() state during bash execution, so session/project-specific shellPath settings now follow the active coding-agent session cwd instead of the launcher cwd (#3452)
  • Fixed ctx.ui.setWorkingIndicator() custom frames to render verbatim instead of forcing the theme accent color, so extensions now own working-indicator coloring when they customize it (#3467)
  • Fixed pi update reinstalling npm packages that are already at the latest published version by checking the installed package version before running npm install <pkg>@latest (#3000)
  • Fixed @ autocomplete plain queries to stop matching against the full cwd/base path, so path fragments in worktree names no longer crowd out intended results such as @plan (#2778)
  • Fixed built-in tool wrapping to use the same extension-runner context path as extension tools, so built-in tools receive execution context and read can warn when the current model does not support images (#3429)
  • Fixed openai-completions assistant replay to preserve compat.requiresThinkingAsText text-part serialization, avoiding same-model follow-up crashes when previous assistant messages mix thinking and text (#3387)
  • Fixed direct OpenAI Chat Completions sessions to map sessionId and cacheRetention to prompt caching fields, sending prompt_cache_key when caching is enabled and prompt_cache_retention: "24h" for direct api.openai.com requests with long retention (#3426)
  • Fixed OpenAI-compatible Chat Completions sessions to optionally send aligned session_id, x-client-request-id, and x-session-affinity headers from sessionId via compat.sendSessionAffinityHeaders, improving cache-affinity routing for backends such as Fireworks (#3430)
  • Fixed threaded /resume session relationships and current-session detection to canonicalize symlinked session paths during selector comparisons, so shared session directories no longer break parent-child matching or active-session delete protection (#3364)
  • Fixed /session, Sessions docs, and CLI help to consistently document that session reuse supports both file paths and session IDs, and that /session shows the current session ID (#3390)
  • Fixed Windows pnpm global install detection to recognize \\.pnpm\\ store paths, so update notices now suggest pnpm install -g @mariozechner/pi-coding-agent instead of falling back to npm (#3378)
  • Fixed missing @sinclair/typebox runtime dependency in @mariozechner/pi-coding-agent, so strict pnpm installs no longer fail with ERR_MODULE_NOT_FOUND when starting pi (#3434)
  • Fixed xterm uppercase typing in the interactive editor by decoding printable modifyOtherKeys input and normalizing shifted letter matching, so Shift+letter no longer disappears in pi (#3436)
  • Fixed /compact to reuse the session thinking level for compaction summaries instead of forcing high, avoiding invalid reasoning-effort errors on github-copilot/claude-opus-4.7 sessions configured for medium thinking (#3438)
  • Fixed shared/exported plain-text tool output to preserve indentation instead of collapsing leading whitespace in the web share page (#3440)
  • Fixed exported share pages to use browser-safe T and O shortcuts with clickable header toggles for thinking and tool visibility instead of browser-reserved Ctrl+T / Ctrl+O bindings (#3374 by @vekexasia)
  • Fixed skill resolution to dedupe symlinked aliases by canonical path, so pi config no longer shows duplicate skill entries when ~/.pi/agent/skills points to ~/.agents/skills (#3417 by @rwachtler)
  • Fixed OpenRouter request attrib...
Read more

v0.67.68

17 Apr 23:34

Choose a tag to compare

Release v0.67.68

v0.67.67

17 Apr 21:08

Choose a tag to compare

New Features

  • Bedrock sessions can now authenticate with AWS_BEARER_TOKEN_BEDROCK, enabling Converse API access without local SigV4 credentials. See docs/providers.md#amazon-bedrock.

Added

  • Added Bedrock bearer-token authentication support via AWS_BEARER_TOKEN_BEDROCK, enabling coding-agent sessions to use Bedrock Converse without local SigV4 credentials (#3125 by @wirjo)

Fixed

  • Fixed /scoped-models Alt+Up/Down to stay a no-op in the implicit all enabled state instead of materializing a full explicit enabled-model list and marking the selector dirty (#3331)
  • Fixed Mistral Small 4 default thinking requests to use the model's supported reasoning control, avoiding 400 errors when starting sessions on mistral-small-2603 and mistral-small-latest (#3338)
  • Fixed Qwen chat-template thinking replay to preserve prior thinking across turns, so affected OpenAI-compatible models keep multi-turn tool-call arguments instead of degrading to empty {} payloads (#3325)
  • Fixed exported HTML transcripts so text selection no longer triggers click-based expand/collapse toggles (#3332 by @xu0o0)
  • Fixed flaky git package update notifications by waiting for captured git command stdio to fully drain before comparing local and remote commit SHAs (#3027)
  • Fixed system prompt dates to use a stable YYYY-MM-DD format instead of locale-dependent output, keeping prompts deterministic across runtimes and locales (#2814)
  • Fixed auto-retry transient error detection to treat Network connection lost. as retryable, so dropped provider connections retry instead of terminating the agent (#3317)
  • Fixed compact interactive extension startup summaries to disambiguate package extensions and repeated local index.ts entries by using package-aware labels and the minimal parent path needed to make local entries unique (#3308)
  • Fixed git package dependency installation to use production installs (npm install --omit=dev) during both install and update flows, so extension runtime dependencies must come from dependencies and not devDependencies (#3009)
  • Fixed tool_result / afterToolCall extension handling for error results by forwarding details and isError overrides through AgentSession instead of dropping them when isError was already true (#3051)
  • Fixed missing root exports for RpcClient and RPC protocol types from @mariozechner/pi-coding-agent, so ESM consumers can import them from the main package entrypoint (#3275)
  • Fixed OpenAI Codex service-tier cost accounting to trust the explicitly requested tier when the API echoes the default tier in responses, keeping session cost displays aligned with the selected tier (#3307 by @markusylisiurunen)
  • Fixed parallel tool-call finalization to convert afterToolCall hook throws into error tool results instead of aborting the remaining tool batch (#3084)
  • Fixed Bun binary asset path resolution to honor PI_PACKAGE_DIR for built-in themes, HTML export templates, and interactive bundled assets (#3074)
  • Fixed user-message turn spacing in interactive mode by restoring an inter-message spacer before user turns (except the first user message), preventing assistant and user blocks from rendering flush together.
  • Fixed interactive /import handling to support quoted JSONL paths with spaces, route missing JSONL files through the non-fatal SessionImportFileNotFoundError path, and document the importFromJsonl() exceptions (SessionImportFileNotFoundError, MissingSessionCwdError).

v0.67.6

16 Apr 21:28

Choose a tag to compare

New Features

  • Prompt templates support an argument-hint frontmatter field that renders before the description in the / autocomplete dropdown, using <angle> for required and [square] for optional arguments. See docs/prompt-templates.md#argument-hints.
  • New after_provider_response extension hook lets extensions inspect provider HTTP status codes and headers immediately after each response is received and before stream consumption begins. See docs/extensions.md.
  • Compact interactive startup header with a comma-separated view of loaded AGENTS.md files, prompt templates, skills, and extensions. Press Ctrl+O to toggle the expanded listing.
  • Markdown links in assistant output now render as OSC 8 hyperlinks on terminals that advertise support; unknown terminals and tmux/screen default to plain text so URLs are never silently dropped.

Added

  • Added argument-hint frontmatter field for prompt templates, displayed before the description in the autocomplete dropdown (#2780 by @andresvi94)
  • Added after_provider_response extension hook so extensions can inspect provider HTTP status codes and headers after each provider response is received and before stream consumption begins (#3128)
  • Added OSC 8 hyperlink rendering for markdown links when the terminal advertises support (#3248 by @ofa1)

Changed

  • Changed interactive startup header to a compact, comma-separated view of loaded AGENTS.md files, prompt templates, skills, and extensions, with Ctrl+O to toggle the expanded listing (#3267)
  • Tightened hyperlink capability detection to default hyperlinks: false for unknown terminals and force it off under tmux/screen (including nested sessions), preventing markdown link URLs from disappearing on terminals that silently swallow OSC 8 sequences (#3248)

Fixed

  • Fixed --verbose startup output to begin with expanded startup help and loaded resource listings after the compact startup header change (#3147)
  • Fixed find tool returning no results for path-based glob patterns such as src/**/*.spec.ts or some/parent/child/** by switching fd into full-path mode and normalizing the pattern when it contains a / (#3302)
  • Fixed find tool applying nested .gitignore rules across sibling directories (e.g. rules from a/.gitignore hiding matching files under b/) by dropping the manual --ignore-file collection and delegating to fd's hierarchical .gitignore handling via --no-require-git (#3303)
  • Fixed OpenAI Responses prompt caching for non-api.openai.com base URLs (OpenAI-compatible proxies such as litellm, theclawbay) by sending the session_id and x-client-request-id cache-affinity headers unconditionally when a sessionId is provided, matching the official Codex CLI behavior (#3264 by @vegarsti)
  • Fixed the preset example extension to snapshot the active model, thinking level, and tool set on the first preset application and restore that state when cycling back to (none), instead of falling back to a hardcoded default tool list (#3272 by @stembi)

v0.67.5

16 Apr 18:08

Choose a tag to compare

Fixed

  • Fixed Opus 4.7 adaptive thinking configuration across Anthropic and Bedrock providers by recognizing Opus 4.7 adaptive-thinking support and mapping xhigh reasoning to provider-supported effort values (#3286 by @markusylisiurunen)
  • Fixed Zellij Shift+Enter regressions by reverting the Zellij-specific Kitty keyboard query bypass and restoring the previous keyboard negotiation behavior (#3259)

v0.67.4

16 Apr 15:58

Choose a tag to compare

New Features

  • --no-context-files (-nc) disables automatic AGENTS.md / CLAUDE.md discovery when you need a clean run without project context injection. See README.md#context-files.
  • loadProjectContextFiles() is now exported as a standalone utility for extensions and SDK-style integrations that need to inspect the same context-file resolution order used by the CLI. See README.md#context-files.
  • New after_provider_response extension hook lets extensions inspect provider HTTP status codes and headers immediately after response creation and before stream consumption. See docs/extensions.md.

Added

  • Added --no-context-files (-nc) to disable AGENTS.md and CLAUDE.md context file discovery and loading (#3253)
  • Exported loadProjectContextFiles() as a standalone utility so extensions can discover project context files without instantiating a full DefaultResourceLoader (#3142)
  • Added after_provider_response extension hook so extensions can inspect provider HTTP status codes and headers after each provider response is received and before stream consumption begins (#3128)

Changed

  • Added claude-opus-4-7 model for Anthropic.
  • Changed Anthropic prompt caching to add a cache_control breakpoint on the last tool definition, so tool schemas can be cached independently from transcript updates while preserving existing cache retention behavior (#3260)

Fixed

  • Fixed markdown strikethrough parsing in interactive rendering and HTML export to require strict double-tilde delimiters (~~text~~) with non-whitespace boundaries.
  • Fixed shutdown handling to kill tracked detached bash tool child processes on exit signals, preventing orphaned background processes.
  • Fixed flaky edit-tool-no-full-redraw TUI tests by waiting for asynchronous preview and preflight error rendering instead of relying on fixed render ticks.
  • Fixed kimi-coding default model selection to use kimi-for-coding instead of kimi-k2-thinking (#3242)
  • Fixed ctrl+z on native Windows to avoid crashing interactive mode, disable the default suspend binding there, and show a status message when suspend is invoked manually (#3191)
  • Fixed find tool cancellation and responsiveness on broad searches by making .gitignore discovery and fd execution fully abort-aware and non-blocking (#3148)
  • Fixed grep broad-search stalls when context=0 by formatting match lines from ripgrep JSON output instead of doing synchronous per-match file reads (#3205)

v0.67.3

15 Apr 21:42

Choose a tag to compare

New Features

  • renderShell: "self" for custom and built-in tool renderers so tools can own their outer shell instead of the default boxed shell. Useful for stable large previews such as edit diffs. See docs/extensions.md#custom-rendering.
  • Interactive auto-retry status now shows a live countdown during backoff instead of a static retry delay message.

Added

  • Added renderShell: "self" for custom and built-in tool renderers so tools can own their outer shell instead of using the default boxed shell. This is useful for stable large previews such as edit diffs (#3134)

Fixed

  • Fixed edit diff previews to stay visible during edit permission dialogs and session replay without reintroducing large-result redraw flicker (#3134)
  • Fixed /reload to render a static reload status box instead of an animated spinner, avoiding redraw instability during interactive reloads.
  • Fixed the plan-mode example extension to allow eza in the read-only bash allowlist instead of the deprecated exa command (#3240 by @rwachtler)
  • Fixed google-vertex API key resolution to treat gcp-vertex-credentials as an Application Default Credentials marker instead of a literal API key, so marker-based setups correctly fall back to ADC (#3221 by @deepkilo)
  • Fixed RPC prompt to wait for prompt preflight success before emitting its single authoritative response, while still treating handled and queued prompts as success (#3049)
  • Fixed Alt keybindings inside Zellij by skipping the Kitty keyboard protocol query there and enabling xterm modifyOtherKeys mode 2 directly (#3163)
  • Fixed /scoped-models reordering to propagate into the /model scoped tab, preserving the user-defined scoped model order instead of re-sorting it (#3217)
  • Fixed session_shutdown to fire on SIGHUP and SIGTERM in interactive, print, and RPC modes so extensions can run shutdown cleanup on those signal-driven exits (#3212)
  • Fixed screenshot path parsing to handle lower case am/pm in macOS screenshot filenames (#3194 by @jay-aye-see-kay)
  • Fixed interactive auto-retry status updates to show a live countdown during backoff instead of a static retry delay message (#3187)