Commit log

2bfac79 zed 0.184.5

Joseph T. Lyons created

a62a6c4 askpass: Shell escape Zed path in askpass script (cherry-pick #29447) (#29449)

Click to expand commit body
Cherry-picked askpass: Shell escape Zed path in askpass script (#29447)

Closes #29439

Add shell escaping as well as additional sanity check for Zed path when
used in askpass. This caused issues on preview and nightly as the
standard paths for those releases contain spaces which were not escaped
appropriately leading to erroneous "Permission denied" errors from SSH
when the askpass script failed

Release Notes:

- Fixed a missing shell-escape in askpass resulting in erroneous
"Permission denied" errors when trying to connect to a remote server
over ssh (effecting preview release v0.184.1 and nightly only)

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

gcp-cherry-pick-bot[bot] and Ben Kunkle created

d68df74 agent: Simplify elements of the thread design (#29533)

Click to expand commit body
Namely, this PR removes the layout shift when you click on a user
message to edit it and displays the feedback disclaimer only upon
hovering the thumbs up/down button container.

Release Notes:

- N/A

Danilo Leal created

17e2746 agent: Bring title editing back to text threads (#29425)

Click to expand commit body
This also fixes a little UI bug where the text thread title would push
the buttons away from the UI when there was still space.

Release Notes:

- agent: Made text thread titles editable again.

---------

Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Danilo Leal and Michael Sloan created

45ebaac agent tools: Make `read_file.end_line` inclusive (#29524)

Click to expand commit body
One motivation is that the outlines returned by `read_file` for large
files list line numbers assuming an inclusive `end_line`. As a result,
when the agent uses these outlines for `read_line` calls, it would
otherwise miss the last line.

Release Notes:

- N/A

Oleksiy Syvokon created

0f051dd Fix error when deserializing Gemini streams (#29470)

Click to expand commit body
Sometimes Gemini would report `Content` without a `parts` field.

Release Notes:

- Fixed a bug that would sometimes cause Gemini models to fail streaming
their response.

Antonio Scandurra created

18c2137 zed 0.184.4

Joseph T. Lyons created

d92de5e editor: Improve fuzzy match bucket logic for code completions (#29442)

Click to expand commit body
Add new test and improve fuzzy match bucket logic which results into far
better balance between LSP and fuzzy search.

Before:
<img width="500" alt="before"
src="https://github.com/user-attachments/assets/3e8900a6-c0ff-4f37-b88e-b0e3783b7e9a"
/>

After:
<img width="500" alt="after"
src="https://github.com/user-attachments/assets/738c074c-d446-4697-aac6-9814362e88db"
/>

Release Notes:

- N/A

Smit Barmase created

0078f67 editor: Add setting for snippet sorting behavior for code completion (#29429)

Click to expand commit body
Added `snippet_sort_order`, which determines how snippets are sorted
relative to other completion items. It can have the values `top`,
`bottom`, or `inline`, with `inline` being the default.

This mimics VS Code’s setting:
https://code.visualstudio.com/docs/editing/intellisense#_snippets-in-suggestions

Release Notes:

- Added support for `snippet_sort_order` to control snippet sorting
behavior in code completion menus.

Smit Barmase created

77f1609 ui: Add `inline_code` method to label (#29306)

Click to expand commit body
This makes it easy to have a label that looks like Markdown inline code
via the `inline_code(cx)` method.

Release Notes:

- N/A

Danilo Leal created

93302ab Fix inclusion of message when counting tokens from message editor (#29443)

Click to expand commit body
Accidentally omitted this in #29233

Release Notes:

- N/A

Michael Sloan created

7c93c8e agent: Render path search results with `ToolCard` (#28894)

Click to expand commit body
Implementing the `ToolCard` for the path_search tool. It also adds the
"jump to file" functionality if you expand the results.

Release Notes:

- N/A

---------

Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>

Danilo Leal , Richard Feldman , and Agus Zubiaga created

01d2066 agent: Make markdown code blocks uncollapsed by default (#29424)

Click to expand commit body
Seeing the markdown code stream in is actually more helpful than hiding
parts of it; parts that you may be interested in.

Release Notes:

- N/A

Danilo Leal created

dfea962 agent: Allow to explictly disable tools when using `enable_all_context_servers` (#29414)

Click to expand commit body
Previously, all MCP tools would be completed regardless if they were
disabled/enabled for the profile. This meant that the "Write" profile
was always using all MCP tools, even if you disabled them in the
settings.

Now, when `enable_all_context_servers` is set to `true`, we will enable
all tools from all MCP servers by default but disable the ones that are
explicitly disabled for the profile.

Also fixes an issue where the tools would not show up as enabled when
using `enable_all_context_servers: true`

Release Notes:

- agent: Fix an issue where MCP tools could not be enabled/disabled

Bennet Bo Fenner created

0f3c56f Bump to 0.184.3 for @bennetbo

Zed Bot created

1cbdce4 assistant: Fix issue when using inline assistant with Gemini models (cherry-pick #29407) (#29409)

Click to expand commit body
Cherry-picked assistant: Fix issue when using inline assistant with
Gemini models (#29407)

Closes #29020

Release Notes:

- assistant: Fix issue when using inline assistant with Gemini models

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

gcp-cherry-pick-bot[bot] and Bennet Bo Fenner created

745e7d6 language_models: Use `POST /completions` endpoint for Zed provider (#29389)

Click to expand commit body
This PR updates the Zed provider to use the `POST /completions`
endpoint.

There is no functional difference from `POST /completion`, but the
pluralized version reads better.

Release Notes:

- N/A

Marshall Bowers created

19de45c Bring back reload of agent context before sending message (#29385)

Click to expand commit body
Realized after merging #29233 that this behavior is desired

Release Notes:

- N/A

Michael Sloan created

f8c3a01 Remove unnecessary fields from the tool schemas (#29381)

Click to expand commit body
This PR removes two fields from JSON schemas (`$schema` and `title`),
which are not expected by any model provider, but were spuriously
included by our JSON schema library, `schemars`.

These added noise to requests and cost wasted input tokens.

### Old

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "FetchToolInput",
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "description": "The URL to fetch.",
      "type": "string"
    }
  }
}
```

### New:

```json
{
  "properties": {
    "url": {
      "description": "The URL to fetch.",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "type": "object"
}
```

- N/A

Max Brunsfeld created

08cb703 Restructure agent context (#29233)

Click to expand commit body
Simplifies the data structures involved in agent context by removing
caching and limiting the use of ContextId:

* `AssistantContext` enum is now like an ID / handle to context that
does not need to be updated. `ContextId` still exists but is only used
for generating unique `ElementId`.
* `ContextStore` has a `IndexMap<ContextSetEntry>`. Only need to keep a
`HashSet<ThreadId>` consistent with it. `ContextSetEntry` is a newtype
wrapper around `AssistantContext` which implements eq / hash on a subset
of fields.
* Thread `Message` directly stores its context.

Fixes the following bugs:

* If a context entry is removed from the strip and added again, it was
reincluded in the next message.
* Clicking file context in the thread that has been removed from the
context strip didn't jump to the file.
* Refresh of directory context didn't reflect added / removed files.
* Deleted directories would remain in the message editor context strip.
* Token counting requests didn't include image context.
* File, directory, and symbol context deduplication relied on
`ProjectPath` for identity, and so didn't handle renames.
* Symbol context line numbers didn't update when shifted

Known bugs (not fixed):

* Deleting a directory causes it to disappear from messages in threads.
Fixing this in a nice way is tricky. One easy fix is to store the
original path and show that on deletion. It's weird that deletion would
cause the name to "revert", though. Another possibility would be to
snapshot context metadata on add (ala `AddedContext`), and keep that
around despite deletion.

Release Notes:

- N/A

Michael Sloan created

43a04dc Treat invalid JSON in tool calls as failed tool calls (#29375)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Max <max@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Richard Feldman , Max , and Max Brunsfeld created

00e92e3 Rename "Prompt Library" to "Rules Library" (#29349)

Click to expand commit body
There's probably more to do to fully make the transition, and we'll
still debate a bit internally whether this is the name, but just opening
this PR up now for visibility.

Release Notes:

- N/A

Danilo Leal created

9e703ac gemini: Fix issue when deserializing tool call (#29363)

Click to expand commit body
Fixes a regression introduced in #29322

Release Notes:

- N/A

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

Bennet Bo Fenner and Agus Zubiaga created

44d5976 Introduce LanguageModelToolUse::raw_input (#29322)

Click to expand commit body
This is to enable alternative streaming solutions at the application
layer. I'm not sure we really should have performed parsing of the input
at this layer. Either way I want to experiment with streaming approaches
in a separate crate on a branch, and this will help.

/cc @maxdeviant @bennetbo @rtfeldman

Closes #ISSUE

Release Notes:

- N/A

Nathan Sobo created

44fc004 agent: Do not reuse assistant message across generations (#29360)

Click to expand commit body
#29354 introduced a bug where we would append tool uses to the last
assistant message even if it was from a previous request.

Release Notes:

- N/A

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Agus Zubiaga and Bennet Bo Fenner created

c60b731 zed 0.184.2

Joseph T. Lyons created

b85bfba agent: Do not create user messages for tool results in thread (#29354)

Click to expand commit body
We used to insert empty user messages into the `Thread::messages` `Vec`
when tools finished running and then we would attach the results when
creating the request. This approach was very easy to mess up during
state handling, leading to empty user messages displayed in the
conversation and API failures.

Instead, we will no longer insert actual user messages for tool results
to the `Thread`, and will only do this on the fly when creating the
model request. This simplifies a lot of code and show fix the mentioned
errors.

Release Notes:

- agent: Improve reliability of LLM requests when including tool results

---------

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

Agus Zubiaga , Bennet Bo Fenner , and Oleksiy Syvokon created

f743cdc agent: Simplify user message design more (#29326)

Click to expand commit body
Follow-up to https://github.com/zed-industries/zed/pull/29165 where the
user message design is simplified even more. The edit button is not
visible anymore, and you can click on the whole message block to edit a
message.

Release Notes:

- N/A

Danilo Leal created

808d9c9 Fix ctrl-enter opening inline-assistant in assistant text threads (#29313)

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

This has been broken for a while on linux (at least since Feb 8th!) for Assistant1.
It is also broken for Text Threads in Assitant2 (on macos and linux).

This should fix both.

Potentially related:
- https://github.com/zed-industries/zed/pull/29107

Release Notes:

- Fix for `ctrl-enter` shortcut in Assistant text threads incorrectly
opening inline assist instead of triggering Send.

Co-authored-by: Conrad Irwin <conrad@zed.dev>

Peter Tripp and Conrad Irwin created

a53e561 agent: Improve initial file search quality (#29317)

Click to expand commit body
This PR significantly improves the quality of the initial file search
that occurs when the model doesn't yet know the full path to a file it
needs to read/edit.

Previously, the assertions in file_search often failed on main as the
model attempted to guess full file paths. On this branch, it reliably
calls `find_path` (previously `path_search`) before reading files.

After getting the model to find paths first, I noticed it would try
using `grep` instead of `path_search`. This motivated renaming
`path_search` to `find_path` (continuing the analogy to unix commands)
and adding system prompt instructions about proper tool selection.

Note: I know the command is just called `find`, but that seemed too
general.

In my eval runs, the `file_search` example improved from 40% ± 10% to
98% ± 2%. The only assertion I'm seeing occasionally fail is "glob
starts with `**` or project". We can probably add some instructions in
that regard.

Release Notes:

- N/A

Agus Zubiaga created

80bac1c eval: New `add_arg_to_trait_method` example (#29297)

Click to expand commit body
Release Notes:

- N/A

---------

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

Agus Zubiaga and Richard Feldman created

4171bbb agent: Encourage model to include displayed fields first (#29308)

Click to expand commit body
Instructs the model to include the fields that we display first in the
input object, so that e.g the user can see the path of a file while the
model generates the content.

Release Notes:

- N/A

Agus Zubiaga created

2a88867 agent: Read the user's plan from the `UserStore` (#29305)

Click to expand commit body
This PR updates the Agent panel to read the user's plan from the
`UserStore` instead of hard-coding it.

Release Notes:

- N/A

Marshall Bowers created

9d420ae agent: Add "copy to clipboard" button to error message popups (#29299)

Click to expand commit body
This change makes agent errors copy-able to clipboard:


![image](https://github.com/user-attachments/assets/bd34a3f2-ecd4-4092-9b3b-960953ed1879)



Release Notes:

- N/A

Oleksiy Syvokon created

b431886 editor: Fix broken mouse scrolling on main (#29307)

Click to expand commit body
This PR is a quick follow-up to #29234 , which unfortunately broke
scrolling with the mouse in editors on main.

The linked PR introduced the possiblilty to completely disable scrolling
for editors. Unfortunately, it also disabled scrolling for editors by
default. This PR fixes this by re-enabling it by default.

This change also needs to be backported to v0.184.x. Otherwise, mouse
scrolling in the next preview release will not work!

Release Notes:

- N/A

Finn Evers created

43c99ad agent: Improve feedback text and buttons wrapping (#29302)

Click to expand commit body
Just a little UI improvement here.

Release Notes:

- N/A

Danilo Leal created

f802b56 agent: Render diffs for the edit file tool (#29234)

Click to expand commit body
This PR implements the `ToolCard` for the edit file tool, which allow us
to display an editor with a diff in the thread view with the changes
performed by the model.

- [x] Fix buffer sometimes displaying empty
- [x] Stop buffer from scrolling together with the thread
- [x] Fix multibuffer header sometimes appearing
- [x] Fix buffer height issue
- [x] Implement "full height" expand button
- [x] Add "Jump To File" functionality
- [x] Polish and refine styles

Release Notes:

- agent: Added diff preview cards in the thread view for edits performed
by the agent.

---------

Co-authored-by: João Marcos <marcospb19@hotmail.com>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Danilo Leal , João Marcos , Richard Feldman , Agus Zubiaga , and Conrad Irwin created

0c292b6 zed 0.184.1

Joseph T. Lyons created

8446005 More graceful invalid JSON handling (#29295)

Click to expand commit body
Now we're more tolerant of invalid JSON coming back from the model
(possibly because it was incomplete and we're streaming), plus if we do
end up with invalid JSON once it has all streamed back, we report what
the malformed JSON actually was:

<img width="444" alt="Screenshot 2025-04-23 at 1 49 14 PM"
src="https://github.com/user-attachments/assets/480f5da7-869b-49f3-9ffd-8f08ccddb33d"
/>

Release Notes:

- N/A

Richard Feldman created

5b028ac Fix relative paths not properly resolved in the terminal during cmd-click (#29289)

Click to expand commit body
Closes https://github.com/zed-industries/zed/pull/28342
Closes https://github.com/zed-industries/zed/issues/28339
Fixes
https://github.com/zed-industries/zed/pull/29274#issuecomment-2824794396

Release Notes:

- Fixed relative paths not properly resolved in the terminal during
cmd-click

Kirill Bulatov created

57d0276 v0.184.x preview

Joseph T. Lyons created

19fb1e1 Fix workspace bottom obscured when bottom dock is full height (#27689)

Click to expand commit body
When dragging the pane separator of the bottom dock to full window
height, the contents at the bottom of the dock and workspace window
overflowed the screen, becoming obscured. This happened because setting
a new size in resize_bottom_dock(...) was not taking in consideration
the top bounds of the workspace window, which caused the bottom bounds
of both dock and workspace to overflow. The issue was fixed by
subtracting the workspace.bounds.top() value to the dock's new size.

Closes #12966

Release Notes:

- N/A

Bibiana André created

f2cb6d6 collab: Add `head_commit_details` column to `project_repositories` (#29284)

Click to expand commit body
This PR adds the `head_commit_details` column to the
`project_repositories` table, since it was missed in
https://github.com/zed-industries/zed/pull/29007.

Release Notes:

- N/A

Marshall Bowers created

822b6f8 agent: Expose web search tool to beta users (#29273)

Click to expand commit body
This gives all beta users access to the web search tool

Release Notes:

- agent: Added `web_search` tool

Bennet Bo Fenner created

09db312 Fix panic when copying smart quotes in MarkdownElement (#29285)

Click to expand commit body
Release Notes:

- Fixed a panic that could sometimes happen when copying text in the
agent.

Antonio Scandurra created

a320d32 Fix shift-y on empty line in vim mode (#29253)

Click to expand commit body
Release Notes:

- Fixes a regression where `shift-v up` on an empty line would appear to
have selected the line after (though in reality it did not)

Conrad Irwin created

266c41e collab: Add `can_use_web_search_tool` to LLM token claims (#29278)

Click to expand commit body
This PR adds a `can_use_web_search_tool` field to the LLM token claims.

Currently anyone in the `assistant2` feature flag will have access to
the web search tool.

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

Release Notes:

- N/A

Marshall Bowers created

4f4bbf2 theme_importer: Handle comma-separated token scopes (#27740)

Click to expand commit body
This PR allows the `theme-importer` utility to handle comma-separated
token scopes.

Normally, a token in a VS Code theme is defined as either a string or a
string array:
```json
    {
      "scope": "token.debug-token",
      "settings": {
        "foreground": "#d55fde"
      }
    },
    {
      "name": "String interpolation",
      "scope": [
        "punctuation.definition.template-expression.begin",
        "punctuation.definition.template-expression.end",
        "punctuation.section.embedded"
      ],
      "settings": {
        "foreground": "#d55fde"
      }
    },
```

However, [some
themes](https://github.com/tal7aouy/theme/blob/ac85540d6494cf3b7dffd6adc8a06af6c1dd4b0d/src/variants/TokenColors.ts#L1771-L1777)
seem to use comma-separated values in a single scope string which VS
Code seems to accept as well:
```json
    {
      "name": "Comments",
      "scope": "comment, punctuation.definition.comment",
      "settings": {
        "foreground": "#7f848e"
      }
    },
```

This PR handles these definitions by splitting scopes by commas before
trying to match them with the scopes that match Zed syntax tokens.

Release Notes:

- N/A

Variant9 created

990ca48 docs: Update macOS development instructions (#27611)

Click to expand commit body
Updating macOS development readme with some gotchas that I ran into
while getting setup.
- Linked to collab readme because that contained the steps to setup the
postgres database so integration tests pass
- Added section under troubleshooting. Recommending `cargo-nextest`
since the CI uses it and it got me past the failures I was seeing.

Release Notes:

- N/A

---------

Co-authored-by: KyleBarton <kjbarton4@gmail.com>

Peter Finn and KyleBarton created

f69aeb6 Do not log unfinished tools use that are in the middle of streaming (#29275)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created