Commit log

19b6c44 zeta: Do not show usage for copilot/supermaven (#30563)

Click to expand commit body
Follow up to #29952

Release Notes:

- Fix an issue where zeta usage would show up when using Copilot as an
edit prediction provider

Bennet Bo Fenner created

8e39281 docs: Document `context_servers` setting (#30570)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

8294981 debugger: Improve saving scenarios through new session modal (#30566)

Click to expand commit body
- A loading icon is displayed while a scenario is being saved
- Saving a scenario doesn't take you to debug.json unless a user clicks
on the arrow icons that shows up after a successful save
- An error icon where show when a scenario fails to save
- Fixed a bug where scenario's failed to save when there was no .zed
directory in the user's worktree


Release Notes:

- N/A

Anthony Eid created

a3105c9 Allow to hide more buttons with the settings (#30565)

Click to expand commit body
* project search button in the status bar
```jsonc
"search": {
  "button": false
},
```

* project diagnostics button in the status bar
```jsonc
"diagnostics": {
  "button": false
}
```

* project name and host buttons in the title bar
```jsonc
"title_bar": {
    "show_project_items": false
}
```

* git branch button in the title bar
```jsonc
"title_bar": {
    "show_branch_name": false
}
```

Before:
<img width="1728" alt="before"
src="https://github.com/user-attachments/assets/4b13b431-3ac1-43b3-8ac7-469e5a9ccf7e"
/>

After:
<img width="1728" alt="after"
src="https://github.com/user-attachments/assets/baf2765a-e27b-47a3-8897-89152b7a7c95"
/>


Release Notes:

- Added more settings to hide buttons from Zed UI

Kirill Bulatov created

a6c3d49 language_models: Add vision support for Copilot Chat models (#30155)

Click to expand commit body
Problem Statement:
Support for image analysis (vision) is currently restricted to Anthropic
and Gemini models. This limits users who wish to leverage vision
capabilities available in other models, such as Copilot, for tasks like
attaching image context within the agent message editor.

Proposed Change:
This PR extends vision support to include Copilot models that are
already equipped with vision capabilities. This integration will allow
users within VS Code to attach and analyze images using supported
Copilot models via the agent message editor.

Scope Limitation:

This PR does not implement controls within the message editor to ensure
that image context (e.g., through copy-paste or attachment) is
exclusively enabled or prompted only when a vision-supported model is
active. Long term the message editor should have access to each models
vision capability and stop the users from attaching images by either
greying out the context saying it's not support or not work through both
copy paste and file/directory search.

Closes #30076 

Release Notes:

- Add vision support for Copilot Chat models

---------

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>

Umesh Yadav and Bennet Bo Fenner created

5a38bbb vim: Add `:w <filename>` command (#29256)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/10920

Release Notes:

- vim: Adds support for `:w[rite] <filename>`

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

AidanV and Conrad Irwin created

196586e Fix deadlock loading node from the command line (#30561)

Click to expand commit body
Before this change the the load env task never completed, leading to the
node runtime lock being held permanently.

Release Notes:

- N/A

Conrad Irwin created

a1d8e50 bedrock: Fix Claude 3.5 Haiku support (#30560)

Click to expand commit body
This PR corrects a mistake introduced in
https://github.com/zed-industries/zed/pull/28523.

https://github.com/zed-industries/zed/pull/28523#issuecomment-2872369707

Release Notes:

- N/A

Marshall Bowers created

24bc9fd Fix completions in debugger panel (#30545)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

03f0280 Highlight shebang in TypeScript and JavaScript (#30531)

Click to expand commit body
After:

![image](https://github.com/user-attachments/assets/8ae1049d-96c7-45e2-b905-1f0fba7f862c)

Before:

![image](https://github.com/user-attachments/assets/56317b12-d745-45f4-a7b6-880507884bae)


Release Notes:

- Typescript and javascript highlight shebang-line

d1y created

41b0a5c agent: Add menu item in the panel menu for zooming in feature (#30554)

Click to expand commit body
Release Notes:

- agent: Added a menu item in the panel's menu for the zooming in/out
feature.

Danilo Leal created

739236e agent: Fix message editor expand binding (#30553)

Click to expand commit body
As of https://github.com/zed-industries/zed/pull/30504, we now can zoom
in the whole panel, which uses the `shift-escape` keybinding. We were
also using the same binding for the message editor expansion, which was
caused a conflict. Now, the message editor expansion requires an
additional key (`alt`) to work.

Release Notes:

- agent: Fixed conflicting keybinding between message editor and panel
zoom.

Danilo Leal created

f14e48d language_models: Dynamically detect Copilot Chat models (#29027)

Click to expand commit body
I noticed the discussion in #28881, and had thought of exactly the same
a few days prior.

This implementation should preserve existing functionality fairly well.

I've added a dependency (serde_with) to allow the deserializer to skip
models which cannot be deserialized, which could occur if a future
provider, for instance, is added. Without this modification, such a
change could break all models. If extra dependencies aren't desired, a
manual implementation could be used instead.

- Closes #29369 

Release Notes:

- Dynamically detect available Copilot Chat models, including all models
with tool support

---------

Co-authored-by: AidanV <aidanvanduyne@gmail.com>
Co-authored-by: imumesh18 <umesh4257@gmail.com>
Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Co-authored-by: Agus Zubiaga <hi@aguz.me>

Liam , AidanV , imumesh18 , Bennet Bo Fenner , and Agus Zubiaga created

634b275 gpui: Fix cosmic-text raster_bounds calculation (#30552)

Click to expand commit body
Closes #30526.

This PR makes the CacheKey used by raster_bounds and rasterize_glyph the
same, as they had not used the same sub pixel shift previously. Fixing
this resolves both the alignment and text-rendering issues introduced in
`ddf8d07`.

Release Notes:

- Fixed text rendering issues on Linux.

william341 created

8000151 zed: Reduce clones (#30550)

Click to expand commit body
A collection of small patches that reduce clones. Mostly by using owned
iterators where possible.

Release Notes:

- N/A

tidely created

f0f0a52 Revert "ui: Account for padding of parent container during scrollbar layout (#27402)" (#30544)

Click to expand commit body
This reverts commit 82a7aca5a6e81f6542b67c3cfc2444c958e7e827.

Release Notes:

- N/A

Conrad Irwin created

907b2f0 Parse env vars and args from debug launch editor (#30538)

Click to expand commit body
Release Notes:

- debugger: allow setting env vars and arguments on the launch command.

---------

Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Julia Ryan , Cole Miller , and Conrad Irwin created

0ad582e agent: Fix inline assistant focusing behavior for cursor placement (#29998)

Click to expand commit body
Ref: https://github.com/zed-industries/zed/pull/29919

This PR improves how inline assistants are detected and focused based on
cursor position.

### Problem
The current implementation has inconsistent behavior:
- When selecting text within an inline assistant's range, the assistant
properly focuses
- When placing a cursor on a line containing an assistant (without
selection), a new assistant is created instead of focusing the existing
one

### Solution
Enhanced the assistant detection logic to:
- Check if the cursor is anywhere within the line range of an existing
assistant
- Maintain the same behavior for both cursor placement and text
selection
- Convert both cursor position and assistant ranges to points for better
line-based comparison

This creates a more intuitive editing experience when working with
inline assistants, reducing the creation of duplicate assistants when
the user intends to interact with existing ones.


https://github.com/user-attachments/assets/55eb80d1-76a7-4d42-aac4-2702e85f13c4

Release Notes:

- agent: Improved inline assistant behavior to focus existing assistants
when cursor is placed on their line, matching selection behavior

---------

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>

Umesh Yadav and Bennet Bo Fenner created

58ed81b extension_host: Include more details about error messages (#30543)

Click to expand commit body
This PR makes it so the error messages surfaced to extensions will
contain more information.

Supersedes https://github.com/zed-industries/zed/pull/28491.

Release Notes:

- N/A

Marshall Bowers created

83319c8 agent: Fix instruction list item with multiple buttons not working (#30541)

Click to expand commit body
This was a particular problem in the Amazon Bedrock section (at least
for now) where there were multiple buttons and none of them actually
worked because they all had the same id.

Release Notes:

- agent: Fixed Amazon Bedrock settings link buttons not working.

Danilo Leal created

4deb8cc agent: Fix 10 line code blocks being expandable despite fitting (#30540)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

8d79226 bedrock: Add support for Mistral - Pixtral Large (#28274)

Click to expand commit body
Release Notes:

- AWS Bedrock: Added support for Pixtral Large 25.02 v1

---------

Co-authored-by: Peter Tripp <peter@zed.dev>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Shardul Vaidya , Peter Tripp , and Marshall Bowers created

5abca0f Fix codeblock expansion initial state + refactor (#30539)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

68945ac workspace: Add keyboard shortcuts to close active dock (#30508)

Click to expand commit body
Adds the normal close keybinding for the new Close Active Dock action.

Release Notes:

- N/A

Ben Brandt created

49887d6 Add no_tools_enabled eval (#30537)

Click to expand commit body
This is our first eval of the Minimal tool profile. Right now they're
all passing; the value of having it is to catch regressions in the
system prompt (which has special logic in it for the case where no tools
are enabled).

Release Notes:

- N/A

Richard Feldman created

d867897 bedrock: Support cross-region inference for US Claude 3.5 Haiku (#28523)

Click to expand commit body
Release Notes:

- Added Cross-Region inference support for US Claude 3.5 Haiku

Co-authored-by: Peter Tripp <peter@zed.dev>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Shardul Vaidya , Peter Tripp , and Marshall Bowers created

1f58ce8 bedrock: Support Amazon Nova Premier (#29720)

Click to expand commit body
Release Notes:

- Bedrock: Added support for Amazon Nova Premier.


https://aws.amazon.com/blogs/aws/amazon-nova-premier-our-most-capable-model-for-complex-tasks-and-teacher-for-model-distillation/

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

Shardul Vaidya and Marshall Bowers created

ed772e6 agent: Allow to collapse provider sections in the settings view (#30437)

Click to expand commit body
This is my first time contributing, so happy to make changes as needed.

## Problem

I found the LLM Provider settings to be pretty difficult to scan as I
was looking to enter my API credentials for a provider. Because all of
the provider configuration is exposed by default, providers that come at
the end of the list are pushed fairly far down and require scrolling. As
this list increases the problem only get worse.

## Solution

This is strictly a UI change.

* I put each provider configuration in a Disclosure that is closed by
default. This made scanning for my provider easy, and exposing the
configuration takes a single click. No scrolling is required to see all
providers on my 956px high laptop screen.
* I also added the success checkmark to authenticated providers to make
it even easier to find them to update a key or sign out.
* The `Start New Thread` had a class applied that was overriding the
default hover behavior of other buttons, so I removed it.

## Before
![CleanShot 2025-05-09 at 14 06
04@2x](https://github.com/user-attachments/assets/48d1e7ea-0dc8-4adc-845c-5227ec965130)

## After
![CleanShot 2025-05-09 at 14 33
23](https://github.com/user-attachments/assets/67e842a7-3251-46e5-ab18-7c4e600b84d8)

Release Notes:

- Improved Agent Panel settings view scannability by making each
provider block collapsible by default.

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Chris Kelly and Danilo Leal created

559725d bedrock: Support Writer Palmyra models (#29719)

Click to expand commit body
Release Notes:

- Added support for Writer Palmyra X4, and X5


https://writer.com/engineering/long-context-palmyra-x5/

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

Shardul Vaidya and Marshall Bowers created

f0da3b7 agent: Handle thread title generation errors (#30273)

Click to expand commit body
The title of a (text) thread would get stuck in "Loading Summary..."
when the request to generate it failed. We now handle this case by
falling back to the default title, and letting the user manually edit
the title or retry generating it.



https://github.com/user-attachments/assets/898d26ad-d31f-4b62-9b05-519d923b1b22



Release Notes:

- agent: Handle thread title generation errors

---------

Co-authored-by: Richard Feldman <oss@rtfeldman.com>

Agus Zubiaga and Richard Feldman created

cee9f4b Fix deprecation warning text being covered by right dock (#30456)

Click to expand commit body
Closes [#30378](https://github.com/zed-industries/zed/issues/30378)

Release Notes:

- Fixed deprecation warning text being covered by right dock

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

Sergei Kartsev and Smit Barmase created

ae31aa2 Fix apply buffer font features to completion tooltip (#30362) (#30519)

Click to expand commit body
Closes #30362

Release Notes:

- Fixed completion tooltip to respect custom font features set in
`buffer_font_features`

Sergei Kartsev created

82a7aca ui: Account for padding of parent container during scrollbar layout (#27402)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/23386

This PR updates the scrollbar-component to account for padding present
in the parent container.

Since the linked issue was opened,
https://github.com/zed-industries/zed/pull/25288 improved the behaviour
so that the scrollbar does allow scrolling the entire container, however
the scrollbar thumb still does not go the entire way to the bottom. This
can be seen here:


https://github.com/user-attachments/assets/89204355-e6b8-428b-9fa9-bb614051b6fa

This happens because during layouting of the scrollbar, padding of the
parent container is not taken into account. The scrollbar thumb size is
calculated as if no padding was present.

With this change, padding is now included in the calculation, which
resolves the issue:


https://github.com/user-attachments/assets/1d4c62e0-4555-4332-a9ab-4e114684b4b3

The change here is to store the calculated content size during prepaint
_including_ padding and use this for layouting the scrollbar. This
ensures that the actual scroll max and the content size are always in
sync. Furthermore, the existing `TODO`-comment is also resolved, as we
now no longer look at the size of the last child but the actual parent
size instead.

This also removes an existing panic of the scrollbar-component in cases
where the content size was 0, which was previously not accounted for
(this never happened in practice so far, for example because of the
padding added here:

https://github.com/zed-industries/zed/blob/43712285bfa8aa75bac1ca8a7eb5146dd36239be/crates/editor/src/hover_popover.rs#L802-L809
which prevented the container size from ever being 0).

---

Lastly, as I was wiring through the changes of the `content_size` I
noticed that some code was duplicated during the initial layouting as
well as in the click handlers. I refactored this in the second commit to
use `along` where possible as well as computing the new click offset in
one closure which can be passed to both event listeners. As always,
should any of these changes not be wanted, feel free to let me know and
I will revert these.

Looking forward to your feedback 😄 

Release Notes:

- Fixed scrollbars sometimes not scrolling all the way to the bottom.

Finn Evers created

b34f19a agent: Reduce allocations (#30220)

Click to expand commit body
Just a tiny patch to reduce allocations during context loading

Calling `.cloned()` on an iterator clones each element one by one, while
`into_iter().collect()` pre-allocates the resulting `Vec`

Release Notes:

- N/A

tidely created

09ace08 editor: Prevent vertical scrollbar from overlapping with buffer headers (#30477)

Click to expand commit body
Closes #16993

This PR fixes an issue where the vertical editor scrollbar was
overlaying with buffer headers. I fixed this by reserving space for the
scrollbar as needed which is provided by the recently introduced
`right_margin`.

Most of the diff consists of moving the `EditorMargins` creation out of
`render_block`, as the right margin is stored in this struct and moving
this out reduces the length of the parameter list of `render_blocks` by
one. I thought of this to be a small but nice side effect.

When it comes to the dividers, I decided against these considering the
margin as well, since it felt a bit off. However, I can see arguments
for these also considering the margins. I did include an image for
comparison in the list below. Happy to change this should it be
preferred the other way around.

| `main` |
![main](https://github.com/user-attachments/assets/1148a553-cf66-4ef7-b81a-9595e9b42308)
|
| --- | --- |
| PR |
![PR](https://github.com/user-attachments/assets/811c8385-0596-427f-8d09-f800cc8d7285)
|
| Fix with shortened divider |
![pr_line_shortened](https://github.com/user-attachments/assets/9938e27f-17a5-460f-99cf-47d1fab234ed)
|

Release Notes:

- Ensured that the vertical editor scrollbar no longer overlaps with
buffer headers.

Finn Evers created

49ba4ed Only include diagnostic instruction once (#29975)

Click to expand commit body
Instead of once per diagnostic error.

Release Notes:

- N/A

Max Nordlund created

06af031 markdown: Fix out of range panic in parser (#30510)

Click to expand commit body
For some reason `pulldown_cmark` treats \````` as a codeblock, meaning
that we could end up with an invalid range generated from
`extract_code_block_content_range` (`3..2`)

Closes #30495

Release Notes:

- agent: Fix an edge case where the editor would crash when model
generated malformed markdown

Bennet Bo Fenner created

1fa19c6 Agent panel: Zoom support (workspace::ToggleZoom) (#30504)

Click to expand commit body
Release Notes:

- Added support for zooming the agent panel via `workspace::ToggleZoom`.

Michael Sloan created

5ba1d3e chore: Move component_preview into zed (#30480)

Click to expand commit body
This improves our build times by ~0.2s

Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

e4525b8 docs: Suggest checking `zed_extension_api` compatibility (#30474)

Click to expand commit body
Or your extension might not work as expected. Or you have to downgrade
`zed_extension_api` later. Happened
[here](https://github.com/sectore/zed-just-ls/issues/2) or
[here](https://github.com/zed-extensions/ruby/commit/842b0cdb6995e692552645c0584ecc9991c589b1)
recently.

Release Notes:

- N/A

Jens Krause created

18a2a50 title_bar: Hide plans without a subscription period (#30478)

Click to expand commit body
This PR updates the plan display in the user menu in the title bar to
hide plans that do not have a subscription period.

Release Notes:

- Improved the displaying of the plan in the user menu.

Marshall Bowers created

172a475 editor: Fix multicursor indent edge case where few lines would indent incorrectly (#30461)

Click to expand commit body
This should have been part of [editor: Fix inconsistent relative indent
when using tab with multi
cursors](https://github.com/zed-industries/zed/pull/29519)

Before / After:


https://github.com/user-attachments/assets/b7ab0eef-2764-44dc-b51f-b96dccd5ecb3

Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>

Smit Barmase and Ben Kunkle created

471e02d Separate timeout and connection dropped errors out (#30457)

Kirill Bulatov created

39da721 agent: Make terminal command render with Markdown in the tool card (#30430)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/30411

Rendering as markdown gives us text selection and copying for free. In
the future, we may want to explore having these commands be actual
editors, allowing you to step in, change the command, and re-run it
right from there.

Release Notes:

- agent: Made the terminal command in the tool card selectable and
copyable.

Danilo Leal created

daa7774 collab: Push down plan changes to the client (#30447)

Click to expand commit body
This PR makes it so we push down plan updates from the server when the
user's subscription changes.

Release Notes:

- N/A

Marshall Bowers created

79ba226 debugger: Fix removal of running sessions when spawning a debug session (#30384)

Click to expand commit body
Fixed regression introduced in
https://github.com/zed-industries/zed/pull/29646/files#diff-85cbb0a26f1949431ec63870fc2d52b583227a5a00b6e10b64dcdb7fe7ef13afL314

Release Notes:

- N/A

Piotr Osiewicz created

074e783 docs: Update docs for viewing subscription invoices (#30443)

Click to expand commit body
This PR updates the docs for how to access the invoice history for your
account.

Release Notes:

- N/A

Marshall Bowers created

fbeee1f zeta: Update onboarding modal with subscription info (#30439)

Click to expand commit body
This PR updates the edit prediction onboarding modal with steps about
subscribing to a plan.

When the user is not subscribed to a plan, we display a link to the
account page to sign up for one:

<img width="612" alt="Screenshot 2025-05-09 at 6 04 05 PM"
src="https://github.com/user-attachments/assets/0300194a-c419-43d9-8214-080674d31e12"
/>

If the user is already subscribed to a plan we indicate which plan they
are on and how many edit predictions they get with it:

<img width="616" alt="Screenshot 2025-05-09 at 6 03 16 PM"
src="https://github.com/user-attachments/assets/e2506096-e499-41f2-ba1f-fca768cb48b9"
/>

<img width="595" alt="Screenshot 2025-05-09 at 5 46 18 PM"
src="https://github.com/user-attachments/assets/de82f8c2-cad8-45fb-8988-26606a8dc3e1"
/>

Release Notes:

- N/A

Marshall Bowers created

bff2597 docs: Redirect `docs/ai` to `docs/ai/overview` (#30442)

Click to expand commit body
This PR adds a redirect from `zed.dev/docs/ai` to
`zed.dev/docs/ai/overview`.

Not 100% sure this will work, but want to give it a try.

Release Notes:

- N/A

Marshall Bowers created

6c5b9b4 zeta: Factor out `render_data_collection_explanation` (#30438)

Click to expand commit body
This PR factors out a `render_data_collection_explanation` method in the
`ZedPredictModal`.

This allows `rustfmt` to work inside of `render` once again.

Release Notes:

- N/A

Marshall Bowers created