Commit log

e8b8cd3 Manual no tool calls (#29745)

Click to expand commit body
Now instead of the model hallucinating tool calls, we get requests for
more context:

<img width="620" alt="Screenshot 2025-05-01 at 12 45 49 PM"
src="https://github.com/user-attachments/assets/847d5c14-82f6-4234-b85a-8cd2bc7ab11d"
/>

It still knows how to answer general questions:
<img width="624" alt="Screenshot 2025-05-01 at 12 47 44 PM"
src="https://github.com/user-attachments/assets/43ab0fc3-4cc8-452f-b26b-474b5d31919f"
/>

Release Notes:

- Fixed the model still trying to do tool calls when no tools selected
(e.g. in `Manual` profile).

---------

Co-authored-by: Ben <ben@zed.dev>
Co-authored-by: Michael <michael@zed.dev>

Richard Feldman , Ben , and Michael created

b4234fa Fix hiding editor toolbar and add `agent_review` setting (#29854)

Click to expand commit body
Closes #29836

The agent diff toolbar item was causing the editor toolbar to show even
when all the other elements were disabled via settings.

This PR fixes this by setting the location to
`ToolbarItemLocation::Hidden` in the states where it shouldn't show.

It also adds a new a `toolbar.agent_review` setting to hide the agent
review buttons altogether. However, if the other toolbar elements are
hidden and the file isn't under review, the editor toolbar will still be
hidden. So you only need to set this to `false` if you don't want them
to show up even under agent review.

Release Notes:

- N/A

Agus Zubiaga created

c41a0c0 agent: Add the `single_file_review` setting to the UI (#29859)

Click to expand commit body
Release Notes:

- agent: Add the `single_file_review` setting to the UI

Danilo Leal created

081edd6 feature_flags: Add a constant to control Agent-related feature flags (#29853)

Click to expand commit body
This PR adds a singular constant that controls the Agent-related feature
flags.

This way we can tweak this one value when we're ready to build the final
build for the launch.

Release Notes:

- N/A

Marshall Bowers created

1450f04 ui: Implement `ParentElement` for `Banner` (#29834)

Click to expand commit body
This PR implements the `ParentElement` trait for the `Banner` component
so that it can use the real children APIs instead of a bespoke one.

Release Notes:

- N/A

Marshall Bowers created

2c60192 agent: Show a notice when reaching consecutive tool use limits (#29833)

Click to expand commit body
This PR adds a notice when reaching consecutive tool use limits when
using normal mode.

Here's an example with the limit artificially lowered to 2 consecutive
tool uses:


https://github.com/user-attachments/assets/32da8d38-67de-4d6b-8f24-754d2518e5d4

Release Notes:

- agent: Added a notice when reaching consecutive tool use limits when
using a model in normal mode.

Marshall Bowers created

0158a2f agent: Add several UX improvements (#29828)

Click to expand commit body
Still a work in progress.

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Nathan Sobo <1789+nathansobo@users.noreply.github.com>
Co-authored-by: Cole Miller <53574922+cole-miller@users.noreply.github.com>

Danilo Leal , Bennet Bo Fenner , Nathan Sobo , Cole Miller , Nathan Sobo , and Cole Miller created

bbb364d Add support for queuing status updates in cloud language model provider (#29818)

Click to expand commit body
This sets us up to display queue position information to the user, once
our language model backend is updated to support request queuing.

The JSON returned by the LLM backend will need to look like this:

```json
{"queue": {"status": "queued", "position": 1}}
{"queue": {"status": "started"}}
{"event": {"THE_UPSTREAM_MODEL_PROVIDER_EVENT": "..."}} 
```

Release Notes:

- N/A

---------

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

Max Brunsfeld and Marshall Bowers created

5399aa3 agent: Refresh the profile selector and modal design (#29816)

Click to expand commit body
- [x] Separate MCP servers from tools in the profile customization modal
view
- [x] Group MCP tools in the MCP picker and add a heading
- [x] Separate bult-in profiles from custom ones in the dropdown
selector
- [x] Separate bult-in profiles from custom ones in the modal
- [ ] Enable looping through items via keybinding without opening the
dropdown (will be done on a follow-up PR)
- [ ] Stretch: Focus on the currently active item upon opening the
dropdown (will be done on a follow-up PR)

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>

Danilo Leal , Bennet Bo Fenner , Bennet Bo Fenner , and Bennet Bo Fenner created

c71e414 agent: Fix default cursor position on reviewing editors (#29825)

Click to expand commit body
The cursor wasn't always placed at the first hunk for review editors.

Release Notes:

- N/A

Agus Zubiaga created

550c3fb agent: Review edits in single-file editors (#29820)

Click to expand commit body
Enables reviewing agent edits from single-file editors in addition to
the multibuffer experience we already had.


https://github.com/user-attachments/assets/a2c287f0-51d6-43a1-8537-821498b91983


This feature can be turned off by setting `assistant.single_file_review:
false`.

Release Notes:

- agent: Review edits in single-file editors

Agus Zubiaga created

02f9df3 zed 0.185.4

Joseph T. Lyons created

5c3c2f5 Re-enable directory-related tools (#29809)

Click to expand commit body
Also `now` in `write` profile

Release Notes:

- Tools for manipulating directories no longer require confirmation, and
are enabled in the Write profile
- Enabled `now` and `list_directory` tools by default in Write profile

---------

Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Cole Miller <cole@zed.dev>

Richard Feldman , Cole Miller , and Cole Miller created

f4ac0cf Support @-mentions in inline assists and when editing old agent panel messages (#29734)

Click to expand commit body
Closes #ISSUE

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

Release Notes:

- Added support for context `@mentions` in the inline prompt editor and
when editing past messages in the agent panel.

---------

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

Cole Miller , Bennet Bo Fenner , and Ben Brandt created

1d7b296 agent: Add assistant panel width persistence (#28808)

Click to expand commit body
Previously, the assistant panel width was not persisted across sessions.
This meant that upon restarting the Zed editor, the panel would revert
to its default size, disrupting the user's preferred layout.

This pull request introduces persistence for the assistant panel width.
The width is now saved to the key-value store when the editor is closed
and restored on startup, ensuring a consistent UI experience across
different sessions.

Release Notes:

- agent: Add assistant panel width persistence

---------

Signed-off-by: Umesh Yadav <umesh4257@gmail.com>

Umesh Yadav created

184db01 Delete obsolete tools (#29808)

Click to expand commit body
Release Notes:

- Removed some obsolete tools: batch_tool, code_actions, code_symbols,
contents, symbol_info, rename

Co-authored-by: Cole Miller <m@cole-miller.net>

Richard Feldman and Cole Miller created

6f3b39b Add eval for open_tool (#29801)

Click to expand commit body
Also have its description say it should only be used on request

Release Notes:

- N/A

Richard Feldman created

acff230 agent: Ensure that web search tool is always available (#29799)

Click to expand commit body
Some changes in the LanguageModelRegistry caused the web search tool not
to show up, because the `DefaultModelChanged` event is not emitted at
startup anymore.

Release Notes:

- agent: Fixed an issue where the web search tool would not be available
after starting Zed (only when using zed.dev as a provider).

Bennet Bo Fenner created

31d6a4e Properly score fuzzy match queries with multiple chars in lower case (cherry-pick #29794) (#29798)

Click to expand commit body
Cherry-picked Properly score fuzzy match queries with multiple chars in
lower case (#29794)

Closes https://github.com/zed-industries/zed/issues/29526

Release Notes:

- Fixed file finder crashing for certain file names with multiple chars
in lowercase form

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

gcp-cherry-pick-bot[bot] and Kirill Bulatov created

f32e096 Standardize agent previews (#29790)

Click to expand commit body
This PR makes agent previews render like any other preview in the
component preview list & pages.

Page:

![CleanShot 2025-05-02 at 09 17
12@2x](https://github.com/user-attachments/assets/8b611380-b686-4fd6-9c76-de27e35b0b38)

List:

![CleanShot 2025-05-02 at 09 17
33@2x](https://github.com/user-attachments/assets/ab063649-dc3c-4c95-969b-c3795b2197f2)


Release Notes:

- N/A

Nate Butler created

a5087f5 Add Agent Preview trait (#29760)

Click to expand commit body
Like the title says

Release Notes:

- N/A

Nate Butler created

bc3b4c0 agent: Add animation in the edit file tool card until a diff is assigned (#29773)

Click to expand commit body
This PR prevents this edit card from being shown expanded but empty,
like this:

<img width="590" alt="Screenshot 2025-05-01 at 7 38 47 PM"
src="https://github.com/user-attachments/assets/147d3d73-05b9-4493-8145-0ee915f12cd9"
/>

Now, we will show an animation until it has a diff computed.


https://github.com/user-attachments/assets/52900cdf-ee3d-4c3b-88c7-c53377543bcf

Release Notes:

- N/A

---------

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

Max Brunsfeld and Danilo Leal created

887d6bf Fix tasks not being stopped on reruns (#29786)

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

* Tone down tasks' cancellation logging
* Fix task terminals' leak, disallowing to fully cancel the task by
dropping the terminal off the pane:

https://github.com/zed-industries/zed/blob/f619d5f02af100c34e286af294a42a01dcfb238c/crates/terminal_view/src/terminal_panel.rs#L1464-L1471

Release Notes:

- Fixed tasks not being stopped on reruns

Kirill Bulatov created

472b820 zed 0.185.3

Joseph T. Lyons created

7da1166 Allow `StreamingEditFileTool` to also create files (#29785)

Click to expand commit body
Refs #29733 

This pull request introduces a new field to the `StreamingEditFileTool`
that lets the model create or overwrite a file in a streaming way. When
one of the `assistant.stream_edits` setting / `agent-stream-edits`
feature flag is enabled, we are going to disable the `CreateFileTool` so
that the agent model can only use `StreamingEditFileTool` for file
creation.

Release Notes:

- N/A

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>

Antonio Scandurra , Ben Brandt , and Oleksiy Syvokon created

a329e67 agent: Make thread completion mode non-optional (#29772)

Click to expand commit body
This PR makes the thread completion mode non-optional.

Release Notes:

- N/A

Marshall Bowers created

cde6c2f agent: Do not render unnecessary lines in edit file tool card (#29766)

Click to expand commit body
This PR prevents any unnecessary lines from being rendered in the edit
file tool card in the case of small diffs.

I think this (hopefully) addresses the last remaining task from
https://github.com/zed-industries/zed/pull/29448.

| `main` | This PR |
| --- | --- |
| <img width="634" alt="main"
src="https://github.com/user-attachments/assets/7c06394e-957a-4d36-a484-5974687041e9"
/> | <img width="634" alt="PR"
src="https://github.com/user-attachments/assets/84206d5a-a93a-4a42-99ca-7cdebb0d91bb"
/> |

(The last empty line in the second image is an empty line present in the
file itself)

---

n the second commit I also preemtively disabled vertical overscrolling
for full mode editors which are sized by content. This is basically the
same fix as in https://github.com/zed-industries/zed/pull/28471.
Strictly speaking, this is not needed for the fix here, but I thought it
might be nice to have for the future to prevent any issues from occuring
due to overscroll.

Release Notes:

- agent: Improved rendering of small diffs for the edit file tool card.

Finn Evers created

40b51c2 agent: Add design adjustments to MCP config flow (#29765)

Click to expand commit body
Mostly somewhat small UI tweaks around the MCP extension config flow and
the settings section.

Release Notes:

- N/A

Danilo Leal created

7c56afd agent: Render the max mode toggle using a muted color (#29763)

Click to expand commit body
This PR updates the max mode toggle to use the muted color.

This makes it fit in more with the rest of the controls.

<img width="243" alt="Screenshot 2025-05-01 at 5 24 01 PM"
src="https://github.com/user-attachments/assets/57267d29-3c7b-4ea9-b6b9-81c42f6b7e1c"
/>

Release Notes:

- agent: Adjusted the color of the max mode toggle.

Marshall Bowers created

8e31309 Make context pills clickable while editing (#29740)

Click to expand commit body
Release Notes:

- Fixed a bug where clicking context pills switched into the "editing
message" state instead of clicking the pill.

Co-authored-by: Michael <michael@zed.dev>
Co-authored-by: Ben <ben@zed.dev>

Richard Feldman , Michael , and Ben created

990acdf Allow MIT-0 license in checks (#29748)

Click to expand commit body
Part of #29309

The license is on par with other licenses in the list:
https://github.com/aws/mit-0

Release Notes:

- N/A

Bennet Bo Fenner created

e4d7f98 zed 0.185.2

Joseph T. Lyons created

c8b456d Fix user rules ignored by agent (#29754)

Click to expand commit body
Closes #29753

The template contains an error: `has_default_user_rules` is always
undefined and should be `has_user_rules` instead.

Release Notes:

- Fixed default user rules ignored during prompt building.

Jonathan LEI created

6dbb356 agent: Remove unused `agent: chat mode` command palette action (#29741)

Click to expand commit body
We weren't using this one anymore. We used to use it for the switch that
toggled tools on, which doesn't exist anymore.

Release Notes:

- N/A

---------

Co-authored-by: Joseph T. Lyons <josephtlyons@gmail.com>

Danilo Leal and Joseph T. Lyons created

a6a94f7 context servers: Show configuration modal when extension is installed (#29309)

Click to expand commit body
WIP

Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>

Bennet Bo Fenner , Danilo Leal , Danilo Leal , Marshall Bowers , Cole Miller , Antonio Scandurra , and Oleksiy Syvokon created

9107473 Introduce a new `StreamingEditFileTool` (#29733)

Click to expand commit body
This pull request introduces a new tool for streaming edits. The
short-term goal is for this tool to replace the existing `EditFileTool`,
but we want to get this out the door as soon as possible so that we can
start testing it.

`StreamingEditFileTool` is mutually exclusive with `EditFileTool`. It
will be enabled by default for anyone who has the `agent-stream-edits`
feature flag, as well as people that set `assistant.stream_edits` to
`true` in their settings.

### Implementation

Streaming is achieved by requesting a completion while the `edit_file`
tool gets called. We invoke the model by taking the existing
conversation with the agent and appending a prompt specifically tailored
for editing. In that prompt, we ask the model to produce a stream of
`<old_text>`/`<new_text>` tags. As the model streams text in, we
incrementally parse it and start editing as soon as we can.

### Evals

Note that, as part of this pull request, I also defined some new evals
that I used to drive the behavior of the recursive LLM call. To run
them, use this command:

```bash
cargo test --package=assistant_tools --features eval -- eval_extract_handle_command_output
```

Or comment out the `#[cfg_attr(not(feature = "eval"), ignore)]` macro.

I recommend running them one at a time, because right now we don't
really have a way of orchestrating of all these evals. I think we should
invest into that effort once the new agent panel goes live.

Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>

Antonio Scandurra , Nathan Sobo , Bennet Bo Fenner , and Oleksiy Syvokon created

88bd4ee agent: Show nav dropdown close button only on hover (#29732)

Danilo Leal created

60acc3e zed 0.185.1

Joseph T. Lyons created

ec4dc95 Re-enable `open` tool (#29707)

Click to expand commit body
Release Notes:

- Added `open` tool for opening files or URLs.

Richard Feldman created

6030ecb agent: Allow adding/removing context when editing existing messages (#29698)

Click to expand commit body
Release Notes:

- agent: Support adding/removing context when editing existing message

---------

Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Cole Miller <cole@zed.dev>

Bennet Bo Fenner , Cole Miller , and Cole Miller created

a1f0dfc Fix potential subtraction overflow (#29697)

Click to expand commit body
I saw this come up in an eval, where the LLM provided a start line of 0.

Release Notes:

- N/A

Richard Feldman created

ad11646 Fix parsing of author name in git show output (#29704)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Fixed a bug causing incorrect formatting of git commit tooltips

Cole Miller created

87d1beb Use outline (#29687)

Click to expand commit body
## Before

![Screenshot 2025-04-30 at 10 56
36 AM](https://github.com/user-attachments/assets/3a435f4c-ad45-4f26-a847-2d5c9d03648e)

## After

![Screenshot 2025-04-30 at 10 55
27 AM](https://github.com/user-attachments/assets/cc3a8144-b6fe-4a15-8a47-b2487ce4f66e)

Release Notes:

- Context picker and `@`-mentions now work with very large files.

Richard Feldman created

cdcf035 v0.185.x preview

Joseph T. Lyons created

e4e455a Fix duplicate thread entries in agent navigation menu (#29672)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Cole Miller created

ff4900c Mitigate panic in merge conflict resolution (#29678)

Click to expand commit body
We have a report of a panic when indexing into
`BufferConflicts.block_ids` using the `old_range` from the
`ConflictsUpdated` event, indicating that the `block_ids` array can get
out of sync with the underlying `ConflictSet`. This PR adds a mitigation
so that we won't panic in this situation, as a stopgap until the bug can
be reproduced in a test and fixed at the root.

Release Notes:

- N/A

Cole Miller created

632f08d project: Check path extension first, then worktree's (#29671)

Click to expand commit body
This fixes a bug with opening images on worktrees that contain
"extension" in the dir name, like `zed.dev`


Release Notes:

- N/A

Oleksiy Syvokon created

5589e78 python: Do not look up venv path from source file path (#29676)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

128b7d2 agent: Improve edit file tool card (#29448)

Click to expand commit body
⚠️ Work in progress until all of the to-dos are knocked out:

- [x] Disable soft-wrapping
- [x] Make it foldable only after a certain number of lines
- [x] Display tool status errors
- [x] Fix horizontal scroll now that we've disabled soft-wrap
- [ ] Don't render unnecessary extra lines (will be added later, on a
follow-up PR)

Release Notes:

- N/A

---------

Co-authored-by: Agus Zubiaga <hi@aguz.me>
Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Danilo Leal , Agus Zubiaga , and Michael Sloan created

fbb0fe4 agent: Add small design tweaks (#29674)

Click to expand commit body
Mostly spacing and whatnot; tiny stuff here.

Release Notes:

- N/A

Danilo Leal created