Commit log

a98c648 debugger: Fix spawned debug adapters taking over Zed's shell (#29373)

Click to expand commit body
This fixes a bug where Zed wasn't closable via ctl-c in the shell it was
spawned in after starting a debug adapter

Release Notes:

- N/A

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

Anthony Eid and Conrad Irwin created

c147daa Terminal in debugger (#29328)

Click to expand commit body
- **debug-terminal**
- **Use terminal inside debugger to spawn commands**

Closes #ISSUE

Release Notes:

- N/A

Conrad Irwin created

d3911e3 editor: Move blame popover from `hover_tooltip` to editor prepaint (#29320)

Click to expand commit body
WIP!

In light of having more control over blame popover from editor.

This fixes: https://github.com/zed-industries/zed/issues/28645,
https://github.com/zed-industries/zed/issues/26304

- [x] Initial rendering
- [x] Handle smart positioning (edge detection, etc)
- [x] Delayed hovering, release, etc
- [x] Test blame message selection
- [x] Fix tagged issues

Release Notes:

- Git inline blame popover now dismisses when the cursor is moved, the
editor is scrolled, or the command palette is opened.

Smit Barmase created

87f85f1 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

1a4dab9 docs: Remove redundant word in "Configuring Zed" (#29364)

Click to expand commit body
Release Notes:

- N/A

Dan Dascalescu created

cd365b0 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

58604fb 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

b060927 ollama: Add DeepSeek v3 max token length (#29156)

Click to expand commit body
Add deepseek-v3 max token length for ollama

Release Notes:

- N/A

shenjack created

a17807d docs: Rust-analyzer example settings for alternate targets (#29353)

Click to expand commit body
Release Notes:

- N/A

Peter Tripp created

f81e65a 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

952fe34 anthropic: Remove list of supported countries (#29346)

Click to expand commit body
This PR removes the list of supported countries from the `anthropic`
crate, as it is no longer referenced in this repo.

Release Notes:

- N/A

Marshall Bowers created

f527df6 google_ai: Remove list of supported countries (#29348)

Click to expand commit body
This PR removes the list of supported countries from the `google_ai`
crate, as it is no longer referenced in this repo.

Release Notes:

- N/A

Marshall Bowers created

b54bbeb open_ai: Remove list of supported countries (#29347)

Click to expand commit body
This PR removes the list of supported countries from the `open_ai`
crate, as it is no longer referenced in this repo.

Release Notes:

- N/A

Marshall Bowers created

8bb7a1f Remove `linked_edits` issue description from Elm doc (#29350)

Click to expand commit body
The known issue with `linked_edits` seems to be fixed in this PR:
https://github.com/elm-tooling/elm-language-server/pull/1364. This PR
removes the section from Zeds documentation to avoid confusion.

Release Notes:

- Remove known issues section from Elm documentation.

Vojtěch Hořánek created

e70d8d4 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

ea5ce2a collab: Remove unused `RateLimiter` (#29343)

Click to expand commit body
This PR removes the `RateLimiter` from the collab codebase, as it is no
longer used.

Release Notes:

- N/A

Marshall Bowers created

fd8eeb5 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

92f21ee collab: Return current plan based on subscription status (#29341)

Click to expand commit body
This PR makes collab return the current plan based on subscription
status instead of based on the staff bit.

Release Notes:

- N/A

Marshall Bowers created

fcfeea4 Allow creating entries when nothing is selected in the project panel (#29336)

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

Release Notes:

- Allowed creating entries when nothing is selected in the project panel

Kirill Bulatov created

c0f8e0f Fix context_stack race in KeyContextView (#29324)

Click to expand commit body
cc @notpeter

Before this change we used our own copy of `cx.key_context()` when
matching.
This led to races where the context queried could be either before (or
after) the
context used in dispatching.

To avoid the race, gpui now passes out the context stack actually used
instead.

Release Notes:

- Fixed a bug where the Key Context View could show the incorrect
context,
  causing confusing results.

Conrad Irwin created

9d10489 Show diagnostic codes (#29296)

Click to expand commit body
Closes #28135
Closes #4388
Closes #28136

Release Notes:

- diagnostics: Show the diagnostic code if available

---------

Co-authored-by: Neo Nie <nihgwu@live.com>
Co-authored-by: Zed AI <ai+claude-3.7@zed.dev>

Conrad Irwin , Neo Nie , and Zed AI created

8836c6f 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

f125353 Add tree-sitter example to the eval (#29321)

Click to expand commit body
Interesting things about this example:
* It's a useful, non-trivial change I made with the agent in Tree-sitter
* It runs fast
* It frequently showcases edit file errors
* It occasionally completely errors out due to errors parsing tool call
input JSON

Release Notes:

- N/A

Max Brunsfeld created

fef2681 language_models: Count Google AI tokens through LLM service (#29319)

Click to expand commit body
This PR wires the counting of Google AI tokens back up.

It now goes through the LLM service instead of collab's RPC.

Still only available for Zed staff.

Release Notes:

- N/A

Marshall Bowers created

8b5835d 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

2124b7e 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

74442b6 collab: Remove `CountLanguageModelTokens` RPC message (#29314)

Click to expand commit body
This PR removes the `CountLanguageModelTokens` RPC message from collab.

We were only using this for Google AI models through the Zed provider
(which is only available to Zed staff).

For now we're returning `0`, but will bring back soon.

Release Notes:

- N/A

Marshall Bowers created

ba3d826 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

ecc600a collab: Remove code for embeddings (#29310)

Click to expand commit body
This PR removes the embeddings-related code from collab and the
protocol, as we weren't using it anywhere.

Release Notes:

- N/A

Marshall Bowers created

2184967 debugger: Add support for inline value hints (#28656)

Click to expand commit body
This PR uses Tree Sitter to show inline values while a user is in a
debug session.

We went with Tree Sitter over the LSP Inline Values request because the
LSP request isn't widely supported. Tree Sitter is easy for
languages/extensions to add support to. Tree Sitter can compute the
inline values locally, so there's no need to add extra RPC messages for
Collab. Tree Sitter also gives Zed more control over how we want to show
variables.

There's still more work to be done after this PR, namely differentiating
between global/local scoped variables, but it's a great starting point
to start iteratively improving it.

Release Notes:

- N/A

---------

Co-authored-by: Piotr Osiewicz <peterosiewicz@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Anthony <anthony@zed.dev>
Co-authored-by: Kirill <kirill@zed.dev>

Remco Smits , Piotr Osiewicz , Anthony Eid , Cole Miller , Anthony , and Kirill created

d095bab 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

f8c3fe7 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

aa16107 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

f11c749 VSCode Settings import (#29018)

Click to expand commit body
Things this doesn't currently handle:

- [x] ~testing~
- ~we really need an snapshot test that takes a vscode settings file
with all options that we support, and verifies the zed settings file you
get from importing it, both from an empty starting file or one with lots
of conflicts. that way we can open said vscode settings file in vscode
to ensure that those options all still exist in the future.~
- Discussed this, we don't think this will meaningfully protect us from
future failures, and we will just do this as a manual validation step
before merging this PR. Any imports that have meaningfully complex
translation steps should still be tested.
- [x] confirmation (right now it just clobbers your settings file
silently)
- it'd be really cool if we could show a diff multibuffer of your
current settings with the result of the vscode import and let you pick
"hunks" to keep, but that's probably too much effort for this feature,
especially given that we expect most of the people using it to have an
empty/barebones zed config when they run the import.
- [x] ~UI in the "welcome" page~
- we're planning on redoing our welcome/walkthrough experience anyways,
but in the meantime it'd be nice to conditionally show a button there if
we see a user level vscode config
- we'll add it to the UI when we land the new walkthrough experience,
for now it'll be accessible through the action
- [ ] project-specific settings
- handling translation of `.vscode/settings.json` or `.code-workspace`
settings to `.zed/settings.json` will come in a future PR, along with UI
to prompt the user for those actions when opening a project with local
vscode settings for the first time
- [ ] extension settings
- we probably want to do a best-effort pass of popular extensions like
vim and git lens
- it's also possible to look for installed/enabled extensions with `code
--list-extensions`, but we'd have to maintain some sort of mapping of
those to our settings and/or extensions
- [ ] LSP settings
- these are tricky without access to the json schemas for various
language server extensions. we could probably manage to do translations
for a couple popular languages and avoid solving it in the general case.
- [ ] platform specific settings (`[macos].blah`)
  - this is blocked on #16392 which I'm hoping to address soon
- [ ] language specific settings (`[rust].foo`)
  - totally doable, just haven't gotten to it yet
 
~We may want to put this behind some kind of flag and/or not land it
until some of the above issues are addressed, given that we expect
people to only run this importer once there's an incentive to get it
right the first time. Maybe we land it alongside a keymap importer so
you don't have to go through separate imports for those?~

We are gonna land this as-is, all these unchecked items at the bottom
will be addressed in followup PRs, so maybe don't run the importer for
now if you have a large and complex VsCode settings file you'd like to
import.

Release Notes:

- Added a VSCode settings importer, available via a
`zed::ImportVsCodeSettings` action

---------

Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Julia Ryan , Mikayla Maki , Kirill Bulatov , Mikayla Maki , and Marshall Bowers created

40b5a1b 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

2d43818 rust-analyzer: Fix for deserialization error of CargoRunnableArgs (#29291)

Click to expand commit body
Fix for error:

```log
2025-04-23T13:02:14-04:00 INFO  [lsp] starting language server process. binary path: "/Users/peter/Library/Application Support/Zed/languages/rust-analyzer/rust-analyzer-2025-04-21", working directory: "/Users/peter/zcode/zed", args: []
2025-04-23T13:02:16-04:00 ERROR [lsp] failed to deserialize response from language server: data did not match any variant of untagged enum RunnableArgs at line 1 column 199. response from language server: "[{\"label\":\"cargo check --workspace\",\"kind\":\"cargo\",\"args\":{\"cwd\":\"/Users/peter/zcode/zed/crates/gpui/src/platform/linux\",\"overrideCargo\":null,\"cargoArgs\":[\"check\",\"--workspace\"],\"executableArgs\":[]}}]"
2025-04-23T13:02:16-04:00 WARN  [project::lsp_store] LSP Runnables via rust-analyzer failed: failed to deserialize response
2025-04-23T13:02:16-04:00 ERROR [*unknown*] LSP Runnables via rust-analyzer failed: failed to deserialize response
```

Object is missing `environment`:
```json
[
  {
    "label": "cargo check --workspace",
    "kind": "cargo",
    "args": {
      "cwd": "/Users/peter/zcode/zed/crates/gpui/src/platform/linux",
      "overrideCargo": null,
      "cargoArgs": ["check", "--workspace"],
      "executableArgs": []
    }
  }
]
```

Follow-up to: https://github.com/zed-industries/zed/pull/28359

Release Notes:

- N/A

---------

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

Peter Tripp and Kirill Bulatov created

636c6e7 editor: Make `SelectNext` and `SelectPrevious` preserve cursor direction (#29293)

Click to expand commit body
Closes #27652

Now, if the last selection is reversed, subsequent `SelectNext` or
`SelectPrevious` selection will also be reversed.


https://github.com/user-attachments/assets/dff31abf-ac9e-4d35-bd2c-34e7b0f3ca23

Release Notes:

- Fixed an issue where `SelectNext` and `SelectPrevious` did not
preserve the last selection's cursor direction.

Smit Barmase created

45d3f51 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

8366cd0 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

f6774ae 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

92e810b language_models: Pass up `mode` for completion requests through Zed (#29294)

Click to expand commit body
This PR makes it so we pass up the `mode` for completion requests
through the Zed provider.

Release Notes:

- N/A

Marshall Bowers created

724c935 Highlight merge conflicts and provide for resolving them (#28065)

Click to expand commit body
TODO:

- [x] Make it work in the project diff:
  - [x] Support non-singleton buffers
  - [x] Adjust excerpt boundaries to show full conflicts
- [x] Write tests for conflict-related events and state management
- [x] Prevent hunk buttons from appearing inside conflicts
- [x] Make sure it works over SSH, collab
- [x] Allow separate theming of markers

Bonus:

- [ ] Count of conflicts in toolbar
- [ ] Keyboard-driven navigation and resolution
- [ ] ~~Inlay hints to contextualize "ours"/"theirs"~~

Release Notes:

- Implemented initial support for resolving merge conflicts.

---------

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

Cole Miller and Max Brunsfeld created

ef54b58 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

01bdd17 Bump Zed to v0.185 (#29287)

Click to expand commit body
Release Notes:

-N/A

Joseph T. Lyons created

4b9f4fe debugger: Fix stack frame list flickering (#29282)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Cole Miller and Anthony Eid 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