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
9bee765
ci: Fix typo (#29421)
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)
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)
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:  Release Notes: - N/A
Oleksiy Syvokon created
f106dfc
Avoid unnecessary DB writes (#29417)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
cc @maxbrunsfeld Release Notes: - N/A
Nathan Sobo created
720dfee
Treat invalid JSON in tool calls as failed tool calls (#29375)
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)
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)
- **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)
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)
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)
Release Notes: - N/A
Dan Dascalescu created
cd365b0
gemini: Fix issue when deserializing tool call (#29363)
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)
#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)
Add deepseek-v3 max token length for ollama Release Notes: - N/A
shenjack created
a17807d
docs: Rust-analyzer example settings for alternate targets (#29353)
Release Notes: - N/A
Peter Tripp created
f81e65a
agent: Do not create user messages for tool results in thread (#29354)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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