- Added
/voicedictation, which transcribes speech straight into the prompt; pressf5or run/voiceto start and stop it, and use themic-servesubcommand to forward a local microphone to a CLI running on another machine over SSH. Only one live dictation stream is allowed per account, and a second one now says so instead of reporting an exhausted quota. - Added a
costfield to the status line data model, exposing the unrounded estimated cost of the current session so a custom status line can display running token spend. - Improved the agent's code search by running an embedded
ripgrepbinary instead of shelling out to whatever the machine provides, so searches are faster and behave identically on systems with noripgrepinstalled. - Improved the
always-proceedpermission mode to auto-approve MCP tool calls and page reads as well, which kept prompting even though the mode exists to run without interruptions. - Improved allow-always permission suggestions for script runners such as
npm run,yarn,pnpmandcargo runby pinning the specific script name, so approvingnpm run devno longer grants every script in the project. - Improved conversation titles by generating them automatically when a conversation is created, so the resume picker shows a meaningful name instead of a placeholder from the first message.
- Improved the error shown when an MCP server configured for Google credentials cannot find Application Default Credentials.
- Fixed corrupted edits to files containing non-ASCII text such as CJK characters, accented letters or emoji, where an inexact match was spliced at the wrong offset and produced invalid UTF-8.
- Fixed the session stalling mid-response when a tool result or file diff contained invalid UTF-8, which broke the agent state stream and left the interface waiting indefinitely.
- Fixed a file write being reported as a failure after the content had already been written to disk, which sent the agent into unnecessary retries on large files such as notebooks.
- Fixed explicitly configured skill and plugin paths losing to customizations discovered automatically nearby, so a path you set in your configuration now wins a name collision.