Commit log

c3570fb 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

3aa3130 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

5f9c91d danger: Update PR prefix pattern (#29432)

Click to expand commit body
This PR updates the Danger PR prefix pattern to allow underscores (`_`)
and spaces (` `) in the prefix.

Release Notes:

- N/A

Marshall Bowers created

6692bd9 Maybe fix panic (#29352)

Click to expand commit body
Since around the time we shipped block diagnostics, we've been seeing an
out of range panic in the editor.

Although the code is heavily inlined, so the stacktrace is missing, this
seems like a likely place that indexing may have gone wrong.

Release Notes:

- Fixed a rare panic in the editor

Conrad Irwin created

cc57bc7 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

c157b1c rules: How to run clippy (#29247)

Click to expand commit body
Tell model how to run clippy in `.rules`

Release Notes:

- N/A

Agus Zubiaga created

136e83e zlog: Fix incorrect assumption with filters (#29428)

Click to expand commit body
- **do not assume logs over LEVEL_ENABLED_MAX_STATIC (the static global
log level) are enabled**
- **make it so filters that are just module names get overridden by
submodule path filters**

Closes #ISSUE

Release Notes:

- N/A

Ben Kunkle created

b28756a eval: Use workspace dependencies (#29430)

Click to expand commit body
This PR updates the `eval` crate to use workspace dependencies.

Also did a bit of cleanup of the `Cargo.toml`.

Release Notes:

- N/A

Marshall Bowers created

65401d6 debugger: Make debug panes zoomable (#29365)

Click to expand commit body
- [x] Buttons
- [x] Make it keyboard-driven

Co-authored-by: Anthony <anthony@zed.dev>

Release Notes:

- N/A

---------

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

Cole Miller and Anthony Eid created

a5405fc eval: Add support for reading from a `.env` file (#29426)

Click to expand commit body
This PR adds support for the eval to read environment variables from a
`.env` file located in the `crates/eval` directory.

For instance, you can use it to set your Anthropic API key:

```
ANTHROPIC_API_KEY=<secret>
```

Release Notes:

- N/A

Marshall Bowers created

4f9cada Bump Danger's packages (#29422)

Click to expand commit body
https://github.com/zed-industries/zed/security/dependabot reports a
number of vulnerabilities, attempt to fix them with the dependency bump.

Release Notes:

- N/A

Kirill Bulatov created

7443f89 xtask: Ignore `workspace-hack` when checking for non-workspace dependencies (#29419)

Click to expand commit body
This PR makes it so `workspace-hack` is ignored by `cargo xtask
package-conformity` when looking for non-workspace dependencies.

Also added `zed_extension_api` to the exclude list.

Release Notes:

- N/A

Marshall Bowers created

9bee765 ci: Fix typo (#29421)

Click to expand commit body
This PR fixes a small typo in a comment added in #29420.

Release Notes:

- N/A

Marshall Bowers created

8c553ee ci: Add no-op job for "Run Agent Eval" workflow (#29420)

Click to expand commit body
This PR adds a no-op job for the "Run Agent Eval" workflow.

This aims to avoid marking the check as failed on a PR that does not
include the `run-eval` label.

Release Notes:

- N/A

Marshall Bowers created

3389327 eval: Add HTML overview for evaluation runs (#29413)

Click to expand commit body
This update generates a single self-contained .html file that shows an
overview of evaluation threads in the browser. It's useful for:

- Quickly reviewing results
- Sharing evaluation runs
- Debugging
- Comparing models (TBD)

Features:

- Export thread JSON from the UI
- Keyboard navigation (j/k or Ctrl + ←/→)
- Toggle between compact and full views

Generating the overview:

- `cargo run -p eval` will write this file in the run dir's root.
- Or you can call `cargo run -p eval --bin explorer` to generate it
without running evals.


Screenshot:

![image](https://github.com/user-attachments/assets/4ead71f6-da08-48ea-8fcb-2148d2e4b4db)


Release Notes:

- N/A

Oleksiy Syvokon created

f106dfc Avoid unnecessary DB writes (#29417)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/16472

* Adds debug logging to everywhere near INSERT/UPDATEs in the DB

So something like 
`env RUST_LOG=debug,wasmtime_cranelift=off,cranelift_codegen=off,vte=off
cargo run` could be used to view these (current zlog seems to process
the exclusions odd, so not sure this is the optimal RUST_LOG line) can
be used to debug any further writes.

* Removes excessive window stack serialization

Previously, it serialized unconditionally every 100ms.
Now, only if the stack had changed, which is now check every 500ms.

* Removes excessive terminal serialization

Previously, it serialized its `cwd` on every `ItemEvent::UpdateTab`
which was caused by e.g. any character output.
Now, only if the `cwd` has changed at the next event processing time.

Release Notes:

- Fixed more excessive DB writes

Kirill Bulatov created

37fa437 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

9be7bf7 language_models: Remove `language-models` feature flag (#29416)

Click to expand commit body
This PR removes the `language-models` feature flag.

This feature is already generally available, so we no longer need the
feature flag.

Release Notes:

- N/A

Marshall Bowers created

357e38b workspace: Add right border to pinned tabs only on scroll (#29405)

Click to expand commit body
Before (scrolled state, bug):
<img width="392" alt="before - with scroll"
src="https://github.com/user-attachments/assets/5f62f050-41e0-4740-8f90-9822348eaa4b"
/>

After (scrolled state, bug fixed):
<img width="344" alt="after - with scroll"
src="https://github.com/user-attachments/assets/33003358-0009-4748-8a6e-642158114b82"
/>

Before (without scrolled state, as it is):
<img width="541" alt="before - without scroll"
src="https://github.com/user-attachments/assets/42487d61-7f7c-49a7-a087-da7faf5a0a89"
/>

After (without scrolled state, as it is):
<img width="462" alt="after - without scroll"
src="https://github.com/user-attachments/assets/738a4d24-3a89-466b-8976-2bf47cfeb0f5"
/>

cc @danilo-leal 

Release Notes:

- N/A

Smit Barmase created

ae37f3c agent: Improve MCP tools compatibility with Gemini models (#29411)

Click to expand commit body
Release Notes:

- agent: Improve MCP tools compatibility with Gemini models

Bennet Bo Fenner created

49003d8 When hovering paths in terminal, search worktree entries for relative ones only (#29406)

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

Release Notes:

- N/A

Kirill Bulatov created

9386283 assistant: Fix issue when using inline assistant with Gemini models (#29407)

Click to expand commit body
Closes #29020

Release Notes:

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

Bennet Bo Fenner created

c39adc5 Select collab channel filter query upon focusing (#29383)

Click to expand commit body
In the process of implementing this I learned that you can also hit
escape to clear the query which is a decent workaround, but I think this
behavior more closely matches expectations. For example when you run the
"focus search" actions, those select the query.

Release Notes:

- N/A

Julia Ryan created

ebb39d9 Add "upstream" as a hardcoded remote name (#29382)

Click to expand commit body
The ideal solution here would be the ability to pick a default remote
the first time you click on a PR or commit link from a blame, and then
store that state in the repo or project and allow you to change it
somehow.

Because that's complicated, and because the vast majority of users
follow the convention of using `upstream` and `origin`, this change just
adds `upstream` as a possible remote that takes precedence for
generating links. I've sometimes seen `origin` and `fork` used for the
same purposes, which will still work fine with this change.

Here are some sources recommending the `upstream`/`origin` convention:
-
https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow
-
https://github.blog/open-source/git/git-2-5-including-multiple-worktrees-and-triangular-workflows/
- https://cli.github.com/manual/gh_repo_fork

The fact that the github cli renames them to those when you `gh repo
fork` is pretty strong evidence that it's worth supporting them even if
users can set arbitrary remote names or could actually want to open a PR
link on their fork.

Resolves #13511

Release Notes:

- Git blame links now prefer the `upstream` remote over `origin` if it
exists.

Julia Ryan created

187f851 feature_flags: Add `FeatureFlag` suffix to feature flag types (#29392)

Click to expand commit body
This PR adds the `FeatureFlag` suffix to the feature flag types that
were missing them.

This makes the names easier to search in the codebase.

Release Notes:

- N/A

Marshall Bowers created

a77db45 feature_flags: Remove `remoting` feature flag (#29390)

Click to expand commit body
This PR removes the `remoting` feature flag.

The feature is shipped, and we aren't referencing the flag anywhere
anymore.

Release Notes:

- N/A

Marshall Bowers created

6bb6be8 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

7d9a55d 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

57d8397 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

17ecf94 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

d492939 Back off the eval to once a day for now (#29378)

Click to expand commit body
cc @maxbrunsfeld 

Release Notes:

- N/A

Nathan Sobo created

720dfee 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

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