This week's release includes top-down streaming for agent threads, channel favorites in the collab panel, automatic split-to-unified switching in the git diff view, and a native devcontainer implementation with Zed extension support.
Shipped by the Zed Guild 🛡️
- GPUI: Improved linear gradient rendering by adding dithering to eliminate visible banding in dark color ranges. (#51211; thanks iam-liam)
- GPUI: Fixed a bug where the scrollbar would disappear when using a bottom aligned list. (#51223; thanks feitreim)
- Fixed an issue where Gemini models would not work when using specific MCP servers. (#52670; thanks OmChillure)
- Fixed misleading "Max tokens reached" error by distinguishing between per-response output token limit and total context window limit. (#52724; thanks OmChillure)
- Fixed Outline Panel selection being off-by-one at Markdown heading boundaries. (#52673; thanks OmChillure)
- Fixed settings being overwritten when updating a single setting via UI while the settings file contains deprecated keys. (#52676; thanks OmChillure)
- Fixed SVG preview to render emojis consistently with the editor by prioritizing platform-specific color emoji fonts. (#51569; thanks alanpjohn)
- Fixed vim/helix's replace action to take into consideration grapheme count. (#51776; thanks feitreim)
- Added pinching gestures on all devices. (#51354; thanks MostlyKIGuess)
- Fixed agent panel
Allow,Always Allow, andRejectkeybindings not working when the message editor is focused on Linux. (#52672; thanks OmChillure)
Learn about the Zed Guild.
Features
AI
- Agent: Made the thread generation be top-down instead of bottom-up. Agent content now streams from the top and auto-scrolls as it goes beyond the viewport. (#52440)
- Agent: Reduced amount of tokens consumed by tool descriptions. (#52678)
- Agent: Changed to prefer the currently used agent per-project when creating a new thread. (#52888)
- Agent: Refined thinking block display, removing layout shift while still allowing it to be readable while it streams in. Added a
agent.thinking_displaysetting to control the behavior ("automatic","always_expanded","always_collapsed"). (#52608) - Agent: Made token usage display consistent between the models that support displaying split usage (input and output) and those that don't. (#52599)
- Agent: Improved auto-scroll of subagent content in preview cards, ensuring the content is always visible until the end. (#52719)
- Agent: Improved the experience of interacting with subagents waiting for confirmation. (#52460)
- Agent: Improved adding selection as context particularly for terminals, making them not depend on open buffers. (#52860)
- ACP: Added the ability to restart agent servers from the Agent Settings panel. (#52401)
Git
- Added automatic switching from split mode to unified mode in the git diff view when the pane is narrower than a configurable minimum column count. You can configure this via the new
minimum_split_diff_widthsetting. (#52781)
Languages
- Marked
.json.distas ajsonfile. (#52473; thanks williamdes) - Marked
.jshintrcas ajsoncfile. (#52474; thanks williamdes)
Vim / Helix
- Changed vim mode so that when search is triggered by the non-vim mode shortcut (cmd-f by default), enter will now behave as it does outside of vim mode. (#51073; thanks viveksjain)
Collaboration
Remote Development
- Replaced the Node-based devcontainer CLI with a native implementation, adding support for Zed extensions in
devcontainer.jsonviacustomizations.zed.extensions. (#52338; thanks KyleBarton)
Other
- Added a
wrap_aroundoption to bothpane::ActivatePreviousItemandpane::ActivateNextItemactions to optionally disable wrapping when cycling past the first or last tab. (#51253; thanks winzamark123) - Added file icon for EditorConfig (
.editorconfig). (#52705; thanks tzabbi) - Improved resolution speed of theme highlight capture names. This might change highlighting in some rare edge cases, but should overall make highlighting more predictable. Theme captures will now follow a strict prefix matching, so e.g.
function.call.decorator.jsxwill now be matched by onlyfunction,function.call,function.call.decoratorandfunction.call.decorator.jsxwith the most specific capture always taking precedence. (#52183) - Significantly reduced memory used to record internal profiling information. (#45197; thanks sourcefrog)
Bug Fixes
- Agent: Fixed copy button overlapping code block content in the Agent panel. (#52837; thanks Dnreikronos)
- Git: Fixed bad performance in large branch diffs. (#52582)
- Git: Fixed the worktree picker allowing deletion of the main worktree, which would always fail. (#52841)
- Helix: Fixed insert line above/below behavior when using selections. (#46492; thanks jrobsonchase)
- Fixed ACP log entries collapsing when clicking or dragging inside the log text to select it. (#50981; thanks cppcoffee)
- Fixed edit predictions being disabled when a comment or string contained
=======. (#52510; thanks Shiven0504) - Fixed hover descriptions for newtype wrapper settings. (#51705)
- Fixed terminal rename not working from context menu on inactive tabs. (#50031; thanks razeghi71)
- Fixed
editor: copy highlight JSONnot limiting to the current selection. (#46555; thanks ian-h-chamberlain) - Fixed
editor: switch source headerand other LSP extension commands not working when the cursor is at the very end of a file. (#52651; thanks florian-trehaut) - Fixed a bug that caused duplicate sticky header rows to appear if multiple outline items start on the same row. (#52844; thanks timvermeulen)
- Fixed a bug that caused git blame annotations to be hoverable from a different pane. (#52603; thanks timvermeulen)
- Fixed a bug where killing a terminal process in the agent panel would sometimes kill Zed itself. (#52542)
- Fixed a bug where middle-clicking a pinned tab would close it. (#50333; thanks austincummings)
- Fixed a crash that could occasionally occur when parsing files using certain language extensions. (#52856)
- Fixed agent chat input box not expanding after sending a message. (#52545; thanks Dnreikronos)
- Fixed agent rules files not being prioritized as described in docs. (#52495; thanks halvko)
- Fixed agent threads starting scrolled to the top when reopened after restarting Zed. (#52843)
- Fixed an issue in the Collab Panel where the UI appeared to log users out. Implemented improvements to properly differentiate between "Sign In" and "Connect," avoiding false authentication prompts when users are already logged in but not automatically connected to the servers. (#52486; thanks ruxwez)
- Fixed an issue where editing selections after
editor: select all matcheswould scroll to the last match. (#49232; thanks Ben-Vollrath) - Fixed an issue where Zed would enter an infinite retry loop when the backing file for a single-file worktree was deleted. (#49366; thanks dastrobu)
- Fixed branch picker in the Git panel stealing vim keystrokes (
i,j,k,x) when vim mode is enabled. (#52687; thanks saberoueslati) - Fixed bug that caused clicking on a sticky header to not always properly clear the previous selection. (#52636; thanks timvermeulen)
- Fixed cursor visibility issue in embedded terminal panels. (#52404; thanks anaslimem)
- Fixed default environment variable context for external agents. (#52763; thanks derekparker)
- Fixed ESLint server startup failures caused by reusing an incomplete or stale cached server install. (#52883)
- Fixed expanded symlinks not being searchable. (#51382; thanks AndreRoelofs)
- Fixed git submodules being incorrectly classified as linked worktrees, which could cause issues with worktree-related operations. (#52507)
- Fixed keymap editor showing no results when opening "Change Keybinding" from the command palette for actions with underscores in their namespace (e.g.
terminal_panel::Toggle,project_panel::ToggleFocus). (#50415; thanks davidalecrim1) - Fixed middle-click on a tab to close it also pasting into the editor on Linux. (#49305; thanks ArthurDEV44)
- Fixed missing right- and middle-mouse button drag on macOS. (#49637; thanks gustafj)
- Fixed multiple line paste behavior in terminal on middle click. (#52158; thanks bryanmehall)
- Fixed postfix snippets creating 2
undoactions instead of 1. (#52699; thanks HuaGu-Dragon) - Fixed screen-casting when building Zed with Nix. (#52690)
- Fixed space and other keys being swallowed when typing in the Git Panel branch picker. (#52779; thanks saberoueslati)
- Fixed swapped color channels when pasting SVG images from the clipboard. (#52641; thanks nakashima-hikaru)
- Fixed the expanded Agent Panel message editor so it no longer jitters while typing. (#52612; thanks Charlie-XIAO)
- Fixed workspace-absolute paths not resolving in markdown image previews. (#52708; thanks danielaalves01)
- Fixed undoing a paste sometimes also undoing edits right before the paste. (#52003)
- Fixed brackets being autoclosed in the project search. (#52553)
- Fixed
editor: format selectionsformatting the entire document instead of only the selected ranges when using Prettier. (#51593; thanks prertik) - Fixed terminal tab not closing when the shell exits with a non-zero code. (#52520; thanks Glenn Miao)
Breaking Changes and Notices
- Removed legacy Text Threads feature to help streamline the new agentic workflows in Zed. Thanks to all of you who were enthusiastic Text Thread users over the years ❤️! (#52757)