Commit log

255d8f7 agent: Overwrite files more cautiously (#30649)

Click to expand commit body
1. The `edit_file` tool tended to use `create_or_overwrite` a bit too
often, leading to corruption of long files. This change replaces the
boolean flag with an `EditFileMode` enum, which helps Agent make a more
deliberate choice when overwriting files.

With this change, the pass rate of the new eval increased from 10% to
100%.

2. eval: Added ability to run eval on top of an existing thread. Threads
can now be loaded from JSON files in the `SerializedThread` format,
which makes it easy to use real threads as starting points for
tests/evals.

3. Don't try to restore tool cards when running in headless or eval mode
-- we don't have a window to properly do this.

Release Notes:

- N/A

Oleksiy Syvokon created

22f76ac windows: Remove unneeded ranges for `replace_and_mark_text_in_range` (#30668)

Click to expand commit body
Release Notes:

- N/A

张小白 created

25cc05b Use `Vec` instead of `SmallVec` for `glyphs` field of `ShapedRun` (#30664)

Click to expand commit body
This glyphs field is usually larger than 8 elements, and SmallVec is not
efficient when it cannot store the value inline.

This change also adds precise glyphs run preallocation in some places
`ShapedRun` is constructed.

Release Notes:

- N/A

Michael Sloan created

a4766e2 Add tool result image support to Gemini models (#30647)

Click to expand commit body
Release Notes:

- Add tool result image support to Gemini models

Agus Zubiaga created

2f26a86 debugger: Fix focus nits (#30547)

Click to expand commit body
- Focus the console's query bar (if it exists) when focusing the console
- Fix incorrect focus handles used for the console and terminal at the
`Subview` level

Release Notes:

- N/A

Co-authored-by: Piotr <piotr@zed.dev>
Co-authored-by: Anthony <anthony@zed.dev>

Cole Miller , Piotr , and Anthony created

f1fe505 debugger: Show language icons in debug scenario picker (#30662)

Click to expand commit body
We attempt to resolve the language name in this order

1. Based on debug adapter if they're for a singular language e.g. Delve
2. File extension if it exists
3. If a language name exists within a debug scenario's label

In the future I want to use locators to also determine the language as
well and refresh scenario list when a new scenario has been saved

Release Notes:

- N/A

Anthony Eid created

9826b7b debugger: Add extensions support (#30625)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

---------

Co-authored-by: Anthony <anthony@zed.dev>

Piotr Osiewicz and Anthony created

6fc9036 Multi-glyph text runs on Linux (#30660)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

2b74163 context_editor: Allow copying entire line when selection is empty (#30612)

Click to expand commit body
Closes #27879

Release Notes:

- Allow copying entire line when selection is empty in text threads

Bennet Bo Fenner created

71ea7ae Misc optimization/cleanup of use of Cosmic Text on Linux (#30658)

Click to expand commit body
* Use cosmic_text `metadata` attr to write down the `FontId` from the
input run to avoid searching the list of fonts when laying out every
glyph.

* Instead of checking on every glyph if `postscript_name` is an emoji
font, just store `is_known_emoji_font`.

* Clarify why `font_id_for_cosmic_id` is used, and when its use is
valid.

Release Notes:

- N/A

Michael Sloan created

48b376f debugger: Fix nits (#30632)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Remco Smits and Anthony Eid created

f98c6fb Update panels serialization from global to per-workspace (#30652)

Click to expand commit body
Closes #27834

This PR changes project panel, outline panel and collab panel
serialization from global to per-workspace, so configurations are
restored only within the same workspace. Handles remote workspaces too.
Opening a new window will start with a fresh panel defaults e.g. width.

Release Notes:

- Improved project panel, outline panel, and collab panel to persist
width on a per-workspace basis. New windows will use the width specified
in the `default_width` setting.

Smit Barmase created

1ace5a2 editor: Fix signature hover popover incorrect width instead of adapting to its content (#30646)

Click to expand commit body
Before:
<img width="935" alt="Screenshot 2025-05-13 at 18 03 21"
src="https://github.com/user-attachments/assets/5320e559-7c60-4ad6-8ab6-99dcbcd1d42e"
/>

After:
<img width="349" alt="Screenshot 2025-05-13 at 18 45 21"
src="https://github.com/user-attachments/assets/98412e13-b879-490a-a1b4-88f97bb84774"
/>
----

Release Notes:

- Fixed issue where signature popover displayed at incorrect width
instead of adapting to its content.

----
cc @smitbarmase

Stanislav Alekseev created

dd65946 Add image input support for OpenAI models (#30639)

Click to expand commit body
Release Notes:

- Added input image support for OpenAI models

Agus Zubiaga created

68afe4f debugger: Add stack frame multibuffer (#30395)

Click to expand commit body
This PR adds the ability to expand a debugger stack trace into a multi
buffer and view each frame as it's own excerpt.

Release Notes:

- N/A

---------

Co-authored-by: Remco Smits <djsmits12@gmail.com>

Anthony Eid and Remco Smits created

6f29713 Fix docs on remote extensions (#30631)

Click to expand commit body
Closes #17021

This was implemented a while ago, but I never updated the docs. Sorry.

Release Notes:

- N/A

Conrad Irwin created

8fe134e Add a debugger issue template (#30638)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

7aabbb0 windows: Properly handle dead char (#30629)

Click to expand commit body
Release Notes:

- N/A

张小白 created

85c6a3d Always have Enter submit in the debug console (#30564)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

81dcc12 Remove request timeout from DAP (#30567)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

1fd8fbe Show tasks in debugger: start (#30584)

Click to expand commit body
- **Show relevant tasks in debugger: start**
- **Add history too**

Closes #ISSUE

Release Notes:

- N/A

---------

Co-authored-by: Cole <cole@zed.dev>
Co-authored-by: Anthony <anthony@zed.dev>

Conrad Irwin , Cole , and Anthony created

7eb226b docs: Add docs for `hover_popover_delay` and update hover delay (#30620)

Click to expand commit body
- Add docs for `hover_popover_delay`.
- Set `hover_popover_delay` to `300` from `350` which matches [VSCode's
hover
delay](https://github.com/microsoft/vscode/blob/ed48873ba23ae0a06a0eafb328ca1ce62b7d4b72/src/vs/editor/common/config/editorOptions.ts#L2219).

Release Notes:

- Added `hover_popover_delay` to settings which determines time to wait
in milliseconds before showing the informational hover box.

Smit Barmase created

9426caa windows: Implement `keyboard_layout_change` (#30624)

Click to expand commit body
Part of #29144

Release Notes:

- N/A

张小白 created

7cad943 agent: Remove unused max monthly spend reached error (#30615)

Click to expand commit body
This PR removes the code for showing the max monthly spend limit reached
error, as it is no longer used.

Release Notes:

- N/A

Marshall Bowers created

29da105 windows: Fix `ModifiersChanged` event (#30617)

Click to expand commit body
Follow-up #30574

Release Notes:

- N/A

张小白 created

8fdf309 Have read_file support images (#30435)

Click to expand commit body
This is very basic support for them. There are a number of other TODOs
before this is really a first-class supported feature, so not adding any
release notes for it; for now, this PR just makes it so that if
read_file tries to read a PNG (which has come up in practice), it at
least correctly sends it to Anthropic instead of messing up.

This also lays the groundwork for future PRs for more first-class
support for images in tool calls across more image file formats and LLM
providers.

Release Notes:

- N/A

---------

Co-authored-by: Agus Zubiaga <hi@aguz.me>
Co-authored-by: Agus Zubiaga <agus@zed.dev>

Richard Feldman , Agus Zubiaga , and Agus Zubiaga created

f01af00 Update nixpkgs, add direnv to gitignore (#30292)

Click to expand commit body
This also moves nixpkgs to use `channels.nixos.org` since those tarballs
are 30mb in size as compared to 45mb github ones

Release Notes:

- N/A 

----

cc @P1n3appl3

Stanislav Alekseev created

01488c4 Fix project search focus not toggling between query and results on ESC (#30613)

Click to expand commit body
Before:


https://github.com/user-attachments/assets/dc5b7ab3-b9bc-4aa3-9f0c-1694c41ec7e7

After:


https://github.com/user-attachments/assets/8087004e-c1fd-4390-9f79-b667e8ba874b


Release Notes:

- Fixed project search focus not toggling between query and results on
ESC

Kirill Bulatov created

18e9110 zed_extension_api: Fork new version of extension API (#30611)

Click to expand commit body
This PR forks a new version of the `zed_extension_api` in preparation
for new changes.

Release Notes:

- N/A

Marshall Bowers created

54c6d48 Remove the minimap from the debugger console (#30610)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/26893

Release Notes:

- N/A

Kirill Bulatov created

32c7fcd Fix panic double clicking on debugger resize handle (#30569)

Click to expand commit body
Closes #ISSUE

Co-Authored-By: Cole <cole@zed.dev>

Release Notes:

- N/A

Conrad Irwin created

fff349a debugger: Update new session modal custom view (#30587)

Click to expand commit body
Paths now assume that you're in the cwd if they don't start with a ~ or
/.

Release Notes:

- N/A

Anthony Eid created

90c2d17 Implement global settings file (#30444)

Click to expand commit body
Adds a `global_settings.json` file which can be set up by enterprises
with automation, enabling setting settings like edit provider by default
without interfering with user's settings files.

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Tristan Hume and Marshall Bowers created

c6e69fa Don't parse windows commandlines in debugger launch (#30586)

Click to expand commit body
Release Notes:

- N/A

Julia Ryan created

e5d497e editor: Improve snippet completion to show key inline in completion and description as aside (#30603)

Click to expand commit body
Closes #28028

Before:
<img width="742" alt="image"
src="https://github.com/user-attachments/assets/31723970-5420-40ea-a394-4ffa0038925c"
/>

After:
<img width="989" alt="image"
src="https://github.com/user-attachments/assets/0aebc317-a234-4e68-8304-cb479513af15"
/>


Release Notes:

- Improved snippet code completion to show key in completion menu and
description in aside.

Smit Barmase created

229f3da editor: Do not show document highlights when selection is spanned more than word (#30602)

Click to expand commit body
Closes #27743

This PR prevents document highlighting when selection start and
selection end do not point to the same word. This is useful in cases
when you select multiple lines or multiple words, in which case you
don't really care about these LSP-specific highlights. This is the same
behavior as VSCode.


https://github.com/user-attachments/assets/f80d6ca3-d5c8-4d7b-9281-c1d6dc6a6e7b

Release Notes:

- Fixed document highlight behavior so it no longer appears when
selecting multiple words or lines, making text selection and selection
highlights more clearer.

Smit Barmase created

67f9da0 editor: Fix code completions menu flashing due variable width (#30598)

Click to expand commit body
Closes #27631

We use `widest_completion_ix` to figure out completion menu width. This
results in flickering between frames as more information about
completion items, such as signatures, is populated asynchronously. There
is no way to know this width or which item will be widest beforehand.
While using a hardcoded value feels like a backward approach, it results
in a far smoother experience. VSCode also uses fixed width for
completion menu.

Before:


https://github.com/user-attachments/assets/0f044bae-fae9-43dc-8d4a-d8e7be8be6c4

After:


https://github.com/user-attachments/assets/21ab475c-7331-4de3-bb01-3986182fc9e4

Release Notes:

- Fixed issue where code completion menu would flicker while typing.

Smit Barmase created

ab455e1 Deny unknown keys in settings in JSON schema so user gets warnings but settings still parses (#30583)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Improved checking of Zed settings so that unrecognized keys show
warnings while editing them

Ben Kunkle created

986d271 Fix panic in linux text rendering + refactor to avoid similar errors (#30601)

Click to expand commit body
See #27808. `font_id_for_cosmic_id` was another path updated
`loaded_fonts_store` but did not push to `features_store`. Solution is
just to have one `Vec` with fields rather than relying on the indices
matching up

Release Notes:

- N/A

Michael Sloan created

98a18e0 Fix conflict indices (#30585)

Click to expand commit body
Release Notes:

- Fix a bug where python path could be corrupted

Conrad Irwin created

3ea86da Copilot fix o1 model (#30581)

Click to expand commit body
Release Notes:

- Fixed an issue where the `o1` model would not work when using Copilot
Chat

Bennet Bo Fenner created

3173f87 agent: Restore find path tool card after restart (#30580)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

6592314 editor: Trim indent guides at last non-empty line (#29482)

Click to expand commit body
Closes #26274

Adjust the end position of indent guides to prevent them from extending
through empty space.
Also corrected old test values ​​that seemed to have adapted to the
indentation's behavior.

Release Notes:

- Fixed indentation guides extending beyond the final scope in a file.

Ron Harel created

93b6fdb assistant_tools: Make terminal tool work on Windows (#30497)

Click to expand commit body
Release Notes:

- N/A

THELOSTSOUL created

e79d1b2 agent: Restore web search tool card after restart (#30578)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

1a0eedb Fix migrate banner not showing markdown on file changes (#30575)

Click to expand commit body
Fixes case where on file (settings/keymap) changes banner would appear
but markdown was not visible.
Regression caused by refactor happened in
https://github.com/zed-industries/zed/pull/30456.

Release Notes:

- N/A

Smit Barmase created

8db0333 Fix out-of-bounds panic in fuzzy matcher with Unicode/multibyte characters (#30546)

Click to expand commit body
This PR fixes a crash in the fuzzy matcher that occurred when handling
Unicode or multibyte characters (such as Turkish `İ` or `ş`). The issue
was caused by the matcher attempting to index beyond the end of internal
arrays when lowercased Unicode characters expanded into multiple
codepoints, resulting in an out-of-bounds panic.

#### Root Cause

The loop in `recursive_score_match` used an upper bound (`limit`)
derived from `self.last_positions[query_idx]`, which could exceed the
actual length of the arrays being indexed, especially with multibyte
Unicode input.

#### Solution

The fix clamps the loop’s upper bound to the maximum valid index for the
arrays being accessed:
```rust
let max_valid_index = (prefix.len() + path_lowercased.len()).saturating_sub(1);
let safe_limit = limit.min(max_valid_index);
for j in path_idx..=safe_limit { ... }
```
This ensures all indexing is safe and prevents panics.

Closes #30269 

Release Notes:

- N/A

---------

Signed-off-by: Umesh Yadav <git@umesh.dev>

Umesh Yadav created

a13c8b7 docs: Update the Text Threads page (#30576)

Click to expand commit body
We had some broken links and outdated content here.

Release Notes:

- N/A

Danilo Leal created

ddc649b agent: Don't rely only on color to communicate MCP server status (#30573)

Click to expand commit body
The MCP server item in the settings view has an indicator that used to
only use colors to communicate the connection status. From an
accessibility standpoint, relying on just colors is never a good idea;
there should always be a supporting element that complements color for
communicating a certain thing. In this case, I added a tooltip, when you
hover over the indicator dot, that clearly words out the status.

Release Notes:

- agent: Improved clarity of MCP server connection status in the
Settings view.

Danilo Leal created

33c896c windows: Fix `ctrl-click` open hovered URL (#30574)

Click to expand commit body
Closes #30452

Release Notes:

- N/A

张小白 created