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
- 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
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
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
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>
- **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.
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)
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
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)