Commit log

983f660 zed 0.202.8

Peter Tripp created

6c5a764 acp: Pass project environment to external agent servers (#37568)

Click to expand commit body
Closes #37469 

Release Notes:

- agent: The project shell environment is now passed to external agent
processes.

Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Co-authored-by: Nia Espera <nia-e@haecceity.cc>

Cole Miller , Richard Feldman , and Nia Espera created

cb40d36 editor: Do not show edit prediction during in-progress IME composition (#37400)

Click to expand commit body
Closes #37249

We no longer show edit prediction when composing IME since it isn't
useful for unfinished alphabet.

Release Notes:

- Fixed edit predictions showing up during partial IME composition.

Smit Barmase created

1e38286 macos: Fix menu bar flickering (#37707)

Click to expand commit body
Closes #37526

Release Notes:

- Fixed menu bar flickering when using some IMEs on macOS.

张小白 created

6535a0c project: Consider all worktrees for activation script search (#37764)

Click to expand commit body
Should fix https://github.com/zed-industries/zed/issues/37734

Release Notes:

- Fixed venv not always activating correctly

Lukas Wirth created

a499c63 Add basic PyEnv and pixi support for python environments (#37156)

Click to expand commit body
cc https://github.com/zed-industries/zed/issues/29807

Release Notes:

- Fixed terminals and tasks not respecting python pyenv and pixi
environments

Lukas Wirth created

e992ce2 linux: Fix IME preedit text not showing in Terminal on Wayland (#37701)

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

- Fixed an issue where IME preedit text was not showing in the Terminal
on Wayland.

Smit Barmase created

a3df364 Disable foreign keys in sqlite when running migrations (#37572)

Click to expand commit body
Closes #37473

Previously, we enabled foreign keys at all times for our sqlite database
that we use for client-side state.
The problem with this is that In sqlite, `alter table` is somewhat
limited, so for many migrations, you must *recreate* the table: create a
new table called e.g. `workspace__2`, then copy all of the data from
`workspaces` into `workspace__2`, then delete the old `workspaces` table
and rename `workspaces__2` to `workspaces`. The way foreign keys work in
sqlite, when we delete the old table, all of its associated records in
other tables will be deleted due to `on delete cascade` clauses.

Unfortunately, one of the types of associated records that can be
deleted are `editors`, which sometimes store unsaved text. It is very
bad to delete these records, as they are the *only* place that this
unsaved text is stored.

This has already happened multiple times as we have migrated tables as
we develop Zed, but I caused it to happened again in
https://github.com/zed-industries/zed/pull/36714.

The Sqlite docs recommend a multi-step approach to migrations where you:

* disable foreign keys
* start a transaction
* create a new table
* populate the new table with data from the old table
* delete the old table
* rename the new table to the old name
* run a foreign key check
* if it passes, commit the transaction
* enable foreign keys

In this PR, I've adjusted our sqlite migration code path to follow this
pattern more closely. Specifically, we disable foreign key checks before
running migrations, run a foreign key check before committing, and then
enable foreign key checks after the migrations are done.

In addition, I've added a generic query that we run *before* running the
foreign key check that explicitly deletes any rows that have dangling
foreign keys. This way, we avoid failing the migration (and breaking the
app) if a migration deletes data that *does* cause associated records to
need to be deleted.

But now, in the common case where we migrate old data in the new table
and keep the ids, all of the associated data will be preserved.

Release Notes:

- Fixed a bug where workspace state would be lost when upgrading from
Zed 0.201.x. or below.

Max Brunsfeld created

7616a4b Fixed LSP binary info not being shown in full (#37682)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/37083
Closes https://github.com/zed-industries/zed/issues/37677

Release Notes:

- Fixed LSP binary info not being shown in full

Kirill Bulatov created

ae3a197 linux: Restore ctrl-escape to keymap (#37636)

Click to expand commit body
Closes: https://github.com/zed-industries/zed/issues/37628
Follow-up to: https://github.com/zed-industries/zed/pull/36712

Release Notes:

- linux: Fix for ctrl-escape not escaping the tab switcher.

Peter Tripp created

cd9b0b5 zed 0.202.7

Peter Tripp created

3a936ea acp: Keep diff editors in sync with `AgentFontSize` global (#37559)

Click to expand commit body
Release Notes:

- agent: Fixed `cmd-+` and `cmd--` not affecting the font size of diffs.

Cole Miller created

b9c3caa acp: Don't share API key with Anthropic provider (#37543)

Click to expand commit body
Since Claude Code has it's own preferred method of grabbing API keys, we
don't want to reuse this one.

Release Notes:

- acp: Don't share Anthropic API key from the Anthropic provider to
allow default Claude Code login options

---------

Co-authored-by: Agus Zubiaga <agus@zed.dev>

Ben Brandt and Agus Zubiaga created

9860ad8 Revert "Remote: Change "sh -c" to "sh -lc" (#36760)" (#37417)

Click to expand commit body
This reverts commit bf5ed6d1c9795369310b5b9d6c752d9dc54991b5.

We believe this may be breaking some users whose shell initialization
scripts change the working directory.

Release Notes:

- N/A

Max Brunsfeld created

2d27a1a Bump to 0.202.6 for @agu-z

Zed Bot created

22f6b64 acp: Receive available commands over notifications (#37499)

Click to expand commit body
See: https://github.com/zed-industries/agent-client-protocol/pull/62

Release Notes:

- Agent Panel: Fixes an issue where Claude Code would timeout waiting
for slash commands to be loaded

Co-authored-by: Cole Miller <cole@zed.dev>

Agus Zubiaga and Cole Miller created

6aecc15 acp: Improve handling of invalid external agent server downloads (#37465)

Click to expand commit body
Related to #37213, #37150

When listing previously-downloaded versions of an external agent, don't
try to use any downloads that are missing the agent entrypoint
(indicating that they're corrupt/unusable), and delete those versions,
so that we can attempt to download the latest version again.

Also report clearer errors when failing to start a session due to an
agent server entrypoint or root directory not existing.

Release Notes:

- N/A

Cole Miller created

f40ef20 acp: Display a new version call out when one is available (#37479)

Click to expand commit body
<img width="500" alt="CleanShot 2025-09-03 at 16 13 59@2x"
src="https://github.com/user-attachments/assets/beb91365-28e2-4f87-a2c5-7136d37382c7"></img>

Release Notes:

- Agent Panel: Display a callout when a new version of an external agent
is available

---------

Co-authored-by: Cole Miller <cole@zed.dev>

Agus Zubiaga and Cole Miller created

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)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Bennet Bo Fenner and Danilo Leal created

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.

Cole Miller created

d8032f5 agent: Update message editor placeholder (#37441)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

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.

Cole Miller created

16d41fc v0.202.x stable

Peter Tripp created

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>

Danilo Leal and Michael Sloan created

a605bb5 Remote LSP logs (#37083)

Click to expand commit body
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)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

3f1a3c1 zed 0.202.5

Peter Tripp created

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

Richard Feldman created

65f076c acp: Display slash command hints (#37376)

Click to expand commit body
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

b51a8eb ACP Terminal support (#37129)

Click to expand commit body
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.

Lukas Wirth created

49f48dc language_models: Fix GitHub Copilot thread summary by removing unnecessary noop tool logic (#37152)

Click to expand commit body
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.

Umesh Yadav created

cc5fae9 zed 0.202.4

Cole Miller created

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"

Cole Miller created

ce02bfc bedrock: Inference Config updates (#35808)

Click to expand commit body
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

Cole Miller created