# Roo Code 3.14.0 Release Notes (2025-04-23)
This release introduces Gemini prompt caching, improves several tools, and includes numerous bug fixes and enhancements across the extension.
## Apply Diff and Other Major File Edit Improvements
* Improve [`apply_diff`](/advanced-usage/available-tools/apply-diff) to work better with **Google Gemini 2.5** and other models
* Automatically close files opened by edit tools (`apply_diff`, `insert_content`, `search_and_replace`, `write_to_file`) after changes are approved. This prevents cluttering the editor with files opened by Roo and helps clarify context by only showing files intentionally opened by the user.
* Added the [`search_and_replace`](/advanced-usage/available-tools/search-and-replace) tool. This tool finds and replaces text within a file using literal strings or regex patterns, optionally within specific line ranges (thanks samhvw8!).
* Added the [`insert_content`](/advanced-usage/available-tools/insert-content) tool. This tool adds new lines into a file at a specific location or the end, without modifying existing content (thanks samhvw8!).
* Deprecated the `append_to_file` tool in favor of `insert_content` (use `line: 0`).
* Correctly revert changes and suggest alternative tools when [`write_to_file`](/advanced-usage/available-tools/write-to-file) fails on a missing line count
* Better progress indicator for [`apply_diff`](/advanced-usage/available-tools/apply-diff) tools (thanks qdaxb!)
* Ensure user feedback is added to conversation history even during API errors (thanks System233!).
* Prevent redundant 'TASK RESUMPTION' prompts from appearing when resuming a task (thanks System233!).
* Fix issue where error messages sometimes didn't display after cancelling an API request (thanks System233!).
* Preserve editor state and prevent tab unpinning during diffs (thanks seedlord!)
## Context Mentions
* Use material icons for files and folders in mentions (thanks elianiva!)
* Improvements to icon rendering on Linux (thanks elianiva!)
* Better handling of `aftercursor` content in context mentions (thanks elianiva!)
## Footgun Prompting
* **Context Variables:** Added the ability to interpolate context variables (`{{workspace}}`, `{{mode}}`, `{{language}}`, `{{shell}}`, `{{operatingSystem}}`) into custom system prompt override files, allowing for more dynamic prompts (thanks daniel-lxs!). See the [Footgun Prompting documentation](/features/footgun-prompting#using-context-variables) for details.
* **Override Warning:** Roo Code now displays a warning indicator in the chat input when a system prompt override is active for the current mode.
## MCP Tweaks
* Support injecting environment variables in MCP config (thanks NamesMT!)
* Fix MCP hub error when dragging extension to another sidebar
* Improve display of long MCP tool arguments
## Provider Updates
* Allow Amazon Bedrock Marketplace ARNs (thanks mlopezr!)
* Add prompt caching for `gemini-2.5-pro-preview-03-25` in the Gemini provider (Vertex and OpenRouter coming soon!)
* Improvements to Requesty model list fetching (thanks dtrugman!)
* Make the VS Code LM provider show the correct model information (thanks QuinsZouls!)
* Remove unnecessary calculation from VS Code LM provider (thanks d-oit!)
## Bug Fixes and General QOL Improvements and Misc.
* Make the [`list_files`](/advanced-usage/available-tools/list-files) tool more efficient and smarter about excluding directories like `.git/`
* Performance improvements to task size calculations
* Give better loading feedback on chat rows (thanks elianiva!)
* Use a more sensible task export icon
* Fix file drag and drop on Windows and when using SSH tunnels (thanks NyxJae!)
* Fix interpolation bug in the “add to context” code action (thanks elianiva!)
* Fix redundant ‘TASK RESUMPTION’ prompts (thanks System233!)
* Fix bug opening files when editor has no workspace root
* Don’t immediately show a model ID error when changing API providers
* Fixes to make the `focusInput` command more reliable (thanks hongzio!)
* Fix terminal carriage return handling for correct progress bar display (thanks Yikai-Liao!)
* Track tool use errors in evals
* Use path aliases in webview source files
* Better handling of FakeAI “controller” object (thanks wkordalski)