Commit log

b6828e5 agent: Don't duplicate recommended models in all models list (#30692)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

78d3ce4 editor: Handle more completion sort cases (#30690)

Click to expand commit body
Adds 3 more test cases where local variable should be preferred over
method, and local method over library methods.

Before / After:

<img height="280" alt="before-rust"
src="https://github.com/user-attachments/assets/72b34ce8-89ff-4c2b-87dc-9e63f855d31e"
/>
<img height="280" alt="after-rust"
src="https://github.com/user-attachments/assets/8e23c9ca-576c-4dc5-8946-fa37554a19e0"
/>

Before / After:

<img height="280" alt="before-react"
src="https://github.com/user-attachments/assets/f7070413-e397-441a-a0c1-16d8ce25aa12"
/>
<img height="280" alt="after-react"
src="https://github.com/user-attachments/assets/7a095954-7844-4a3e-bf59-5420b7ffdb03"
/>

Release Notes:

- N/A

Smit Barmase created

d01559f Add setting for enabling/disabling feedback (#30448)

Click to expand commit body
This is useful for enterprises, especially in combination with #30444,
to ensure code never gets sent to Zed.

Release Notes:

- N/A

Tristan Hume created

645f662 workspace: Remove default keybindings for close active dock (#30691)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

d42cb11 agent: Fix tool use in Gemini (#30689)

Click to expand commit body
Thread doesn't run pending tools when `stop_reason` is not `ToolUse`.
Perhaps we should change that so that it always runs pending tools if
there are some, but for now this change just fixes setting `stop_reason`
for Google models.

Release Notes:

- N/A

Oleksiy Syvokon created

dce6e96 debugger: Tidy up dropdown menus (#30679)

Click to expand commit body
Before
![CleanShot 2025-05-14 at 13 22
44@2x](https://github.com/user-attachments/assets/c6c06c5c-571d-4913-a691-161f44bba27c)

After
![CleanShot 2025-05-14 at 13 22
17@2x](https://github.com/user-attachments/assets/0a25a053-81a3-4b96-8963-4b770b1e5b45)

Release Notes:

- N/A

Nate Butler created

4280bff Reapply "ui: Account for padding of parent container during scrollbar layout" (#30577)

Click to expand commit body
This PR reapplies #27402 which was reverted in
https://github.com/zed-industries/zed/pull/30544 due to the issue
@ConradIrwin reported in
https://github.com/zed-industries/zed/pull/27402#issuecomment-2871745132.
The reported issue is already present on main but not visible, see
https://github.com/zed-industries/zed/pull/27402#issuecomment-2872546903
for more context and reproduction steps.

The fix here was to move the padding for the hover popover up to the
parent container. This does not fix the underlying problem but serves as
workaround without any disadvantages until a better solution is found. I
would currently guess that the underlying issue might be related to some
rem-size calculations for small font sizes or something similar (e.g.
https://github.com/zed-industries/zed/pull/22732 could possibly be
somewhat related).

Notably, the fix here does not cause any difference in layouting (the
following screenshots are actually distinct images), yet fixes the
problem at hand.

### Default font size (`15px`) 

| `main` | This PR |
| --- | --- |
|
![main_large](https://github.com/user-attachments/assets/66d38827-9023-4f78-9ceb-54fb13c21e41)
|![PR](https://github.com/user-attachments/assets/7af82bd2-2732-4cba-8d4b-54605d6ff101)
|

### Smaller font size (`12px`)

| `main` | This PR |
| --- | --- |
|
![pr_large](https://github.com/user-attachments/assets/d43be6e6-6840-422c-baf0-368aab733dac)
|
![PR](https://github.com/user-attachments/assets/43f60b2b-2578-45d2-bcab-44edf2612ce2)
|

Furthermore, for the second scenario, the popover would be scrollable on
main. As there is no scrollbar in the second image for this PR, this no
longer happens with this branch.


Release Notes:

- N/A

Finn Evers created

ea5b289 docs: Fix up some invalid JSON in OpenAI configuration example (#30663)

Thomas David Baker created

0950333 project_settings: Fix default settings values for `DiagnosticsSettings` (#30686)

Click to expand commit body
Follow-up to #30565

This PR fixes the default settings values for the `DiagnosticsSettings`.
The issue here was that due to the `#[derive(Default)]`, `button` would
be false by default, which unintentionally hid the diagnostics button by
default. The `#[serde(default = `default_true`)]` would only apply iff
the diagnostics key was already present in the user's settings. Thus, if
you have

```json
{
    "diagnostics": {...}
}
```

in your settings, the button would show (given it was not disabled).
However, if the key was not present, the button was not shown: Due to
the derived default for the entire struct, the value would be false.

This PR fixes this by implementing the default instead and moving the
`#[serde(default)]` up to the level of the struct.
I also did the same for the inline diagnostics settings, which already
had a default impl and thus only needed the serde default on the struct
instead of on all the struct fields.

Lastly, I simplified the title bar settings, since the serde attributes
previously had no effect anyway (deserialization happened in the
`TitlebarSettingsContent`, so these attributes had no effect) and we can
remove the `TitlebarSettingsContent` as well as the attributes if we
implement a proper default implementation instead.

Release Notes:

- Fixed the diagnostics status bar button being hidden by default.

Finn Evers created

775370f Bump Zed to v0.188 (#30685)

Click to expand commit body
Release Notes:

-N/A

Joseph T. Lyons created

1077f27 debugger: Fix launch picker program arg not using relative paths (#30680)

Click to expand commit body
Release Notes:

- N/A

Anthony Eid created

f4eea0d debugger: Fix panics when debugging with inline values or confirming in console (#30677)

Click to expand commit body
The first panic was caused by an unwrap that assumed a file would always
have a root syntax node.

The second was caused by a double lease panic when clicking enter in the
debug console while there was a completion menu open

Release Notes:

- N/A

Anthony Eid created

ed361ff Rename debug: commands to dev: (#30675)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Breaking change: The actions used while developing Zed have been
renamed from `debug:` to `dev:` to avoid confusion with the new debugger
feature:
- - `dev::OpenDebugAdapterLogs`
- - `dev::OpenSyntaxTreeView`
- - `dev::OpenThemePreview`
- - `dev::OpenLanguageServerLogs`
- - `dev::OpenKeyContextView`

Conrad Irwin created

7f9a365 docs: Fix shfmt github url (#30667)

Click to expand commit body
Closes #30661 

Release Notes:

- N/A

Umesh Yadav created

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