05d44ca
agent: Fix agent panel header not updating when opening a history entry (#37189)
Click to expand commit body
Closes #37171
Release Notes:
- agent: Fixed a bug that caused the agent information in the panel
header to be incorrect when opening a thread from history.
Cole Miller
created
829ee03
acp: Fix issue with claude code /logout command (#37452)
Click to expand commit body
### First issue
In the scenario where you have an API key configured in Zed and you run
`/logout`, clicking on `Use Anthropic API Key` would show `Method not
implemented`.
This happened because we were only intercepting the `Use Anthropic API
Key` click if the provider was NOT authenticated, which would not be the
case when the user has an API key set.
### Second issue
When clicking on `Reset API Key` the modal would be dismissed even
though you picked no Authentication Method (which means you still would
be unauthenticated)
---
This PR fixes both of these issues
Release Notes:
- N/A
Bennet Bo Fenner
created
ff200db
Add onboarding banner for claude code support (#37443)
9a14ca8
acp: Fix handling of single-file worktrees (#37412)
Click to expand commit body
When the first visible worktree is a single-file worktree, we would
previously try to use the absolute path of that file as the root
directory for external agents, causing an error. This PR changes how we
handle this situation: we'll use the root of the first non-single-file
visible worktree if there are any, and if there are none, the parent
directory of the first single-file visible worktree.
Related to #37213
Release Notes:
- acp: Fixed being unable to run external agents when a single file (not
part of a project) was opened in Zed.
91a4d45
agent: Add CC item in the settings view (#37164)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
168ef57
agent2: Fix terminal tool call content not being shown once truncated (#37318)
Click to expand commit body
We render terminals as inline if their content is below a certain line
count, and scrollable past that point. In the scrollable case we weren't
setting a height for the terminal's container, causing it to be rendered
at height 0, which means no lines would be displayed. This PR fixes that
by setting an explicit height for the scrollable case, like we do in the
agent1 UI code.
Release Notes:
- agent: Fixed a bug that caused terminals in the panel to be empty
after their content reached a certain size.
cb0fa25
Add xAI to supported language model providers (#37206)
Click to expand commit body
After setting a `grok` model via the agent panel, the settings complains
that it doesn't recognize the language model provider:
<img width="1005" height="188" alt="SCR-20250829-tqqd"
src="https://github.com/user-attachments/assets/a25fc7e0-60f0-44fd-96d2-b1cb316d06b6"
/>
Also, sorted the list, in the follow-up commit.
Release Notes:
- N/A
Joseph T. Lyons
created
70a471b
Nice errors for unsupported ACP slash commands (#37393)
Click to expand commit body
If we get back slash-commands that aren't supported, tell the user that
this is the problem.
Release Notes:
- Improve error messages for unsupported ACP slash-commands
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Richard Feldman
and
Conrad Irwin
created
b0b7007
agent2: Only setup real client for real models (#37403)
Click to expand commit body
Before we were setting up lots of test setup regardless of if we were
actually going to be making real requests or not.
This will hopefully help with intermittent test errors we're seeing on
Windows in CI.
Release Notes:
- N/A
Ben Brandt
created
0858782
ci: Skip Nix for commits on release branches and tags (#37407)
Click to expand commit body
When doing stable/preview releases simultaneously there are two tags and
two branches pushed. Previously nix was attempting 1 job for each. Our
current mac parallelism is 4.
Can't easily test this. 🤷
Release Notes:
- N/A
Peter Tripp
created
5df6d44
agent: Fix cut off slash command descriptions (#37408)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
3b2bbef
Add option for code context menu items to have dynamic width (#37404)
Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/30598
This PR introduces the `display_options` field in the
`CompletionResponse`, allowing a code context menu width to be
dynamically dictated based on its larger item. This will allow us to
have the @-mentions and slash commands completion menus in the agent
panel not be bigger than it needs to be. It may also be relevant/useful
in the future for other use cases.
For now, we set all instances of code context menus to use a fixed
width, as defined in the PR linked above, which means this PR shouldn't
cause any visual change.
Release Notes:
- N/A
Co-authored-by: Michael Sloan <mgsloan+github@gmail.com>
Take 2: https://github.com/zed-industries/zed/pull/36709 but without the
very bad `cfg`-based approach for storing the RPC logs.
--------------
Enables LSP log tracing in both remote collab and remote ssh
environments.
Server logs and server RPC traces can now be viewed remotely, and the
LSP button is now shown in such projects too.
Closes https://github.com/zed-industries/zed/issues/28557
Co-Authored-By: Kirill <kirill@zed.dev>
Co-Authored-By: Lukas <lukas@zed.dev>
Release Notes:
- Enabled LSP log tracing in both remote collab and remote ssh
environments
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Lukas Wirth <lukas@zed.dev>
Kirill Bulatov
,
Ben Kunkle
, and
Lukas Wirth
created
d376483
Handle model refusal in ACP threads (#37383)
Click to expand commit body
If the model refuses a prompt, we now:
* Show an error if it was a user prompt (and truncate it out of the
history)
* Respond with a failed tool call if the refusal was for a tool call
<img width="607" height="260" alt="Screenshot 2025-09-02 at 5 11 45 PM"
src="https://github.com/user-attachments/assets/070b5ee7-6ad6-4a63-8395-f9a5093cc40e"
/>
<img width="607" height="265" alt="Screenshot 2025-09-02 at 5 11 38 PM"
src="https://github.com/user-attachments/assets/98862586-390b-494e-b1f8-71d8341c8d9d"
/>
Release Notes:
- Improve handling of model refusals in ACP threads
Richard Feldman
created
76e7c78
acp: Disable external agents over SSH (#37402)
Click to expand commit body
Follow-up to #37377
Show a clearer error here until SSH support is implemented.
Release Notes:
- N/A
Cole Miller
created
5d70933
Disable external agents over collab (#37377)
Click to expand commit body
Release Notes:
- Disable UI to boot external agents in collab projects (as they don't
work)
Conrad Irwin
created
4943d4d
acp: Enable claude code feature flag for everyone (#37390)
cee3c53
Fix race condition between feature flag and deserialization (#37381)
Click to expand commit body
Right now if you open Zed, and we deserialize an agent that's behind a
feature flag (e.g. CC), we don't restore it because the feature flag
check hasn't happened yet at the time we're deserializing (due to auth
not having finished yet).
This is a simple fix: assume that if you had serialized it in the first
place, you must have had the feature flag enabled, so go ahead and
reopen it for you.
Release Notes:
- N/A
Displays the slash command's argument hint while it hasn't been
provided:
https://github.com/user-attachments/assets/f3bb148c-247d-43bc-810d-92055a313514
Release Notes:
- N/A
---------
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Agus Zubiaga
and
Bennet Bo Fenner
created
288a2eb
acp: Add support for slash commands (#37304)
Click to expand commit body
Depends on
https://github.com/zed-industries/agent-client-protocol/pull/45
Release Notes:
- N/A
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Bennet Bo Fenner
,
Antonio Scandurra
, and
Agus Zubiaga
created
Exposes terminal support via ACP and migrates our agent to use it.
- N/A
---------
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Agus Zubiaga
and
Bennet Bo Fenner
created
cc5af08
Inject venv environment via the toolchain (#36576)
Click to expand commit body
Instead of manually constructing the venv we now ask the python
toolchain for the relevant information, unifying the approach of vent
inspection
Fixes https://github.com/zed-industries/zed/issues/27350
Release Notes:
- Improved the detection of python virtual environments for terminals
and tasks in remote projects.
Closes #37025
This PR fixes GitHub Copilot thread summary failures by removing the
unnecessary `noop` tool insertion logic. The code was originally added
as a workaround in https://github.com/zed-industries/zed/pull/30007 for
supposed GitHub Copilot API issues when tools were used previously in a
conversation but no tools are provided in the current request. However,
testing revealed that this scenario works fine without the workaround,
and the `noop` tool insertion was actually causing "Invalid schema for
function 'noop'" errors that prevented thread summarization from
working. Removing this logic eliminates the errors and allows thread
summarization to function correctly with GitHub Copilot models.
The best way to see if removing that part of code works is just
triggering thread summarisation.
Error Log:
```
2025-08-27T13:47:50-04:00 ERROR [workspace::notifications] "Failed to connect to API: 400 Bad Request {"error":{"message":"Invalid schema for function 'noop': In context=(), object schema missing properties.","code":"invalid_function_parameters"}}\n"
```
Release Notes:
- Fixed GitHub Copilot thread summary failures by removing unnecessary
noop tool insertion logic.
Umesh Yadav
created
c7080e4
language_models: Fix `grok-code-fast-1` support for Copilot (#37116)
Click to expand commit body
This PR fixes a deserialization issue in GitHub Copilot Chat that was
causing warnings when encountering xAI models from the GitHub Copilot
API and skipping the Grok model from model selector.
Release Notes:
- Fixed support for xAI models that are now available through GitHub
Copilot Chat.
4d01b76
agent: Re-add workaround for language model behavior with empty tool result (#37196)
Click to expand commit body
This is just copying over the same workaround here:
https://github.com/zed-industries/zed/blob/a790e514af4d6957aa1a14cc8190b2ff24a0484c/crates/agent/src/thread.rs#L1455-L1459
Into the agent2 code.
Release Notes:
- agent: Fixed an issue where some tool calls in the Zed agent could
return an error like "`tool_use` ids were found without `tool_result`
blocks immediately after"
Fixes #36866
- Updated internal naming for Claude 4 models to be consistent.
- Corrected max output tokens for Anthropic Bedrock models to match docs
Shoutout to @tlehn for noticing the bug, and finding the resolution.
Release Notes:
- bedrock: Fixed inference config errors causing Opus 4 Thinking and
Opus 4.1 Thinking to fail (thanks [@tlehn](https://github.com/tlehn) and
[@5herlocked](https://github.com/5herlocked])
- bedrock: Fixed an issue which prevented Rules / System prompts not
functioning with Bedrock models (thanks
[@tlehn](https://github.com/tlehn) and
[@5herlocked](https://github.com/5herlocked])
Shardul Vaidya
created
6967c17
Fix ACP permission request with new tool calls (#37182)
Click to expand commit body
Release Notes:
- Gemini integration: Fixed a bug with permission requests when
`always_allow_tool_calls` is enabled
Agus Zubiaga
created
92f4a15
acp: Improve error reporting and log more information when failing to launch gemini (#37178)
Click to expand commit body
In the case where we fail to create an ACP connection to Gemini, only
report the "unsupported version" error if the version for the found
binary is at least our minimum version. That means we'll surface the
real error in this situation.
This also fixes incorrect sorting of downloaded Gemini versions--as @kpe
pointed out we were effectively using the version string as a key. Now
we'll correctly use the parsed semver::Version instead.
Release Notes:
- N/A
50d7369
acp: Use the custom claude installation to perform login (#37169)
Click to expand commit body
Release Notes:
- N/A
---------
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: morgankrey <morgan@zed.dev>
Antonio Scandurra
,
Bennet Bo Fenner
,
Agus Zubiaga
,
Nathan Sobo
,
Cole Miller
, and
morgankrey
created
ffa9a78
Require authorization for MCP tools (#37155)
Click to expand commit body
Release Notes:
- Fixed a regression that caused MCP tools to run without requesting
authorization first.
Antonio Scandurra
created
a02e0d0
Always enable acp accept/reject buttons for now (#37121)
Click to expand commit body
We have a bug in our ACP implementation where sometimes the
Accept/Reject buttons are disabled (and stay disabled even after the
thread has finished). I haven't found a complete fix for this yet, so in
the meantime I'm putting out the fire by making it so those buttons are
always enabled. That way you're never blocked, and the only consequence
of the bug is that sometimes they should be disabled but are enabled
instead.
Release Notes:
- N/A
Richard Feldman
created
d304e04
acp: Support automatic installation of Claude Code (#37120)
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Closes #ISSUE
Release Notes:
- N/A
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Conrad Irwin
and
Antonio Scandurra
created
593c644
Disable Expert language server by default for Elixir (#37126)
Click to expand commit body
This PR updates the language server configuration for Elixir and HEEx to
not start the [Expert](https://github.com/elixir-lang/expert) language
server by default.
While Expert is the official Elixir language server, it is still early,
so we don't want to make it the default just yet.
Release Notes:
- Updated the default Elixir and HEEx language server settings to not
start the Expert language server.
Marshall Bowers
created
138b23b
acp: Install new versions of agent binaries in the background (#37141)
Click to expand commit body
Release Notes:
- acp: New releases of external agents are now installed in the
background.
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Cole Miller
and
Conrad Irwin
created
9a4a332
acp: Load agent panel even if serialized config is bogus (#37134)
e61e782
acp: Automatically install gemini under Zed's data dir (#37054)
Click to expand commit body
Closes: https://github.com/zed-industries/zed/issues/37089
Instead of looking for the gemini command on `$PATH`, by default we'll
install our own copy on demand under our data dir, as we already do for
language servers and debug adapters. This also means we can handle
keeping the binary up to date instead of prompting the user to upgrade.
Notes:
- The download is only triggered if you open a new Gemini thread
- Custom commands from `agent_servers.gemini` in settings are respected
as before
- A new `agent_servers.gemini.ignore_system_version` setting is added,
similar to the existing settings for language servers. It's `true` by
default, and setting it to `false` disables the automatic download and
makes Zed search `$PATH` as before.
- If `agent_servers.gemini.ignore_system_version` is `false` and no
binary is found on `$PATH`, we'll fall back to automatic installation.
If it's `false` and a binary is found, but the version is older than
v0.2.1, we'll show an error.
Release Notes:
- acp: By default, Zed will now download and use a private copy of the
Gemini CLI binary, instead of searching your `$PATH`. To make Zed search
your `$PATH` for Gemini CLI before attempting to download it, use the
following setting:
```
{
"agent_servers": {
"gemini": {
"ignore_system_version": false
}
}
}
```
Cole Miller
created
f98d1d6
Have ACP respect always_allow_tool_actions (#37104)
Click to expand commit body
Release Notes:
- ACP agents now respect the always_allow_tool_actions setting
Richard Feldman
created
25c8bb7
agent2: Fix model deduplication to use provider ID and model ID (#37088)
Click to expand commit body
Closes #37043
Previously claude sonnet 4 was missing from copilot as it was colliding
with zed's claude-sonnet-4 model id. Now we do deduplication based upon
model and provider id both.
| Before | After |
|--------|--------|
| <img width="784" height="950" alt="CleanShot 2025-08-28 at 18 31
28@2x"
src="https://github.com/user-attachments/assets/d49d5a17-7271-417d-bb5e-bc380071e810"
/> | <img width="720" height="876" alt="CleanShot 2025-08-28 at 18 31
42@2x"
src="https://github.com/user-attachments/assets/a5100c05-994e-4e19-ab20-34c0258b977c"
/> |
Release Notes:
- Fixed an issue where models with the same ID from different providers
(such as Claude Sonnet 4 from both Zed and Copilot) were incorrectly
deduplicated in the model selector—now all variants are shown.
Umesh Yadav
created
a5bb868
acp: Don't cancel editing when scrolling message out of view (#37020)
Click to expand commit body
Release Notes:
- agent: Fixed a bug that canceled editing when scrolling the user
message out of view.
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Antonio Scandurra
and
Bennet Bo Fenner
created
1c37b7e
acp: Add more logs to model selector to diagnose issue (#36997)
Click to expand commit body
Release Notes:
- N/A
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
Co-authored-by: Katie Geer <katie@zed.dev>
Bennet Bo Fenner
,
Antonio Scandurra
,
Cole Miller
,
Joseph T. Lyons
, and
Katie Geer
created
159c78a
language_models: Fix tool calling for `x-ai/grok-code-fast-1` model via OpenRouter (#37094)
Click to expand commit body
Closes #37022
Closes #36994
This update ensures all Grok models use the JsonSchemaSubset format for
tool schemas.
A previous fix for this issue was too specific, only targeting grok-4
models. This caused other variants, like grok-code-fast-1, to be missed.
We've now broadened the logic to correctly apply the setting to the
entire Grok model family.
Release Notes:
- Fix tool calling for `x-ai/grok-code-fast-1` model via OpenRouter.