63860fc
Merge conflicts
Conrad Irwin created
63860fc
Merge conflicts
Conrad Irwin created
996f9ca
Bump to 0.203.4 for @ConradIrwin
Zed Bot created
21aa3d5
acp: Ensure connection subprocess gets killed on drop (#37858)
It appears that in macOS, the `AcpConnection._wait_task` doesn't always get dropped when quitting the app. In these cases, the subprocess would be kept alive because we move the `child` into it. Instead, we will now explicitly kill it when `AcpConnection` is dropped. It's ok to do this because when the connection is dropped, the thread is also dropped, so there's no need to report the exit status to it. Closes #37741 Release Notes: - Claude Code: Fix subprocess leak on app quit
Agus Zubiaga created
c5d36e0
Allow unauthenticated commit models to show (#37857)
Closes #37462 Closes #37814 Release Notes: - Fixed a bug where the commit generation message would not always show
Conrad Irwin created
b63c715
Only reject agent actions, don't restore checkpoint on revert (#37801)
Updates #37623 Release Notes: - Changed the behaviour when editing an old message in a native agent thread. Prior to this, it would automatically restore the checkpoint (which could lead to a surprising amount of work being discarded). Now it will just reject any unaccepted agent edits, and you can use the "restore checkpoint" button for the original behavior.
Conrad Irwin created
d287b8b
zed 0.203.3
Peter Tripp created
bbbfa10
project: Consider all worktrees for activation script search (#37764)
Should fix https://github.com/zed-industries/zed/issues/37734 Release Notes: - Fixed venv not always activating correctly
Lukas Wirth created
0c1ad95
acp: Pass project environment to external agent servers (#37568)
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
29b7863
macos: Fix menu bar flickering (#37707)
Closes #37526 Release Notes: - Fixed menu bar flickering when using some IMEs on macOS.
张小白 created
66fbfd7
linux: Fix IME preedit text not showing in Terminal on Wayland (#37701)
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
9291291
onboarding: Fix font loading frame delay (#37668)
Closes #ISSUE Fixed an issue where the first frame of the `Editing` page in onboarding would have a slight delay before rendering the first time it was navigated to. This was caused by listing the OS fonts on the main thread, blocking rendering. This PR fixes the issue by adding a new method to the font family cache to prefill the cache on a background thread. Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Anthony <anthony@zed.dev>
Ben Kunkle , Mikayla Maki , Anthony Eid , and Anthony created
018935d
onboarding: Improve performance of AI upsell card (#37504)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
fbec5e8
Disable foreign keys in sqlite when running migrations (#37572)
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
bda30bb
Fixed LSP binary info not being shown in full (#37682)
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
aa95dbb
linux: Restore ctrl-escape to keymap (#37636)
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
ae4617a
zed 0.203.2
Peter Tripp created
a0756db
acp: Keep diff editors in sync with `AgentFontSize` global (#37559)
Release Notes: - agent: Fixed `cmd-+` and `cmd--` not affecting the font size of diffs.
Cole Miller created
80f42cc
debugger: Fix stack frame filter crash (#37555)
The crash was caused by not accounting for the fact that a range of collapse frames only counts as one entry. Causing the filter indices to overshoot for indices after collapse frames (it was counting all collapse frames instead of just one). The test missed this because it all happened in one `cx.update` closure and didn't render the stack frame list when the filter was applied. The test has been updated to account for this. Release Notes: - N/A Co-authored-by: Cole Miller <cole@zed.dev>
Anthony Eid and Cole Miller created
93066f1
acp: Don't share API key with Anthropic provider (#37543)
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
b482eba
Revert "Remote: Change "sh -c" to "sh -lc" (#36760)" (#37417)
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
377c67b
Bump to 0.203.1 for @agu-z
Zed Bot created
961f44e
acp: Receive available commands over notifications (#37499)
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
6f8cfc4
acp: Improve handling of invalid external agent server downloads (#37465)
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
7954420
acp: Display a new version call out when one is available (#37479)
<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
9aa3152
editor: Do not correct text contrast on non-opaque editor (#37471)
We don’t know the background color behind a non-opaque editor, so we should skip contrast correction in that case. This prevents single-editor mode (which is always transparent) from showing weird text colors when text is selected. We can’t account for the actual background during contrast correction because we compute contrast outside gpui, while the actual color blending happens inside gpui during drawing. <img width="522" height="145" alt="image" src="https://github.com/user-attachments/assets/6ee71475-f666-482d-87e6-15cf4c4fceef" /> Release Notes: - Fixed an issue where Command Palette text looked faded when selected.
Smit Barmase created
11c1c5a
acp: Fix issue with claude code /logout command (#37452)
### 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
439f8bd
Add onboarding banner for claude code support (#37443)
Release Notes: - N/A --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Bennet Bo Fenner and Danilo Leal created
bbaf704
acp: Fix handling of single-file worktrees (#37412)
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
a009bd6
agent: Update message editor placeholder (#37441)
Release Notes: - N/A
Danilo Leal created
33a9750
v0.203.x preview
Peter Tripp created
7ea7f4e
reqwest_client: Remove example (#37410)
This PR removes the example from the `reqwest_client` crate, as it doesn't seem worth maintaining. Release Notes: - N/A
Marshall Bowers created
035d7dd
ci: Skip Nix for commits on release branches and tags (#37407)
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
9d67276
agent: Fix cut off slash command descriptions (#37408)
Release Notes: - N/A
Danilo Leal created
161d128
Handle model refusal in ACP threads (#37383)
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
e1b0a98
ci: Remove Windows crash analysis CI scripts (#36694)
We'll just SSH into the Windows runners and look for crashes there. Reverts #35926 Release Notes: - N/A --------- Co-authored-by: Peter Tripp <petertripp@gmail.com>
Cole Miller and Peter Tripp created
ae0ee70
Add configurable timeout for context server tool calls (#33348)
Closes: #32668 - Add [tool_call_timeout_millis](https://github.com/cline/cline/pull/1904) field to ContextServerCommand, like in Cline - Update ModelContextServerBinary to include timeout configuration - Modify Client to store and use configurable request timeout - Replace hardcoded REQUEST_TIMEOUT with self.request_timeout - Rename REQUEST_TIMEOUT to DEFAULT_REQUEST_TIMEOUT for clarity - Maintain backward compatibility with 60-second default Release Notes: - context_server: Add support for configurable timeout for MCP tool calls --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Rafał Krzyważnia and Ben Brandt created
893eb92
docs: Note edge case for macOS 26 (#37392)
- I believe this is caused by metal not being found due to it being on the XcodeBeta path, not sure if there's a better fix for this but it'll work until 26 is the latest release Release Notes: - N/A
versecafe created
45fa6d8
tailwind: Add `HTML+ERB` to the list of supported languages (#36797)
Hi! As part of https://github.com/zed-extensions/ruby/issues/162 we would like to rename HTML/ERB to HTML+ERB since it is more syntactically correct to treat such language as ERB on top of HTML rather than HTML or ERB. To keep the user experience intact, we outlined the prerequisites in the linked issue. This is the first PR that adds the HTML+ERB language name to the list of enabled languages for the Emmet extension. We will do the same for the Tailwind configuration in the Zed codebase. Once the new versions of Emmet and Zed are released, we will merge the pull request in the Ruby extension repository and release the updated version. After that, we will remove the old HTML/ERB and YAML/ERB languages. Let me know if that sounds good. Thanks! Release Notes: - N/A Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Vitaly Slobodin and Marshall Bowers created
60ad82c
Fix typo in clippy lint name (#37405)
Release Notes: - N/A
Ben Brandt created
564ded7
acp: Disable external agents over SSH (#37402)
Follow-up to #37377 Show a clearer error here until SSH support is implemented. Release Notes: - N/A
Cole Miller created
63b3839
language_models: Prevent sending the tools object to unsupported models for Ollama (#37221)
Closes #32758 Release Notes: - Resolved an issue with the Ollama provider that caused requests to fail with a 400 error for models that don't support tools. The tools object is now only sent to compatible models to ensure successful requests.
Umesh Yadav created
9f74988
language_models: Fix tool_choice null issue for other providers (#34554)
Follow up: #34532 Closes #35434 Mostly fixes a issue were when the tool_choice is none it was getting serialised as null. This was fixed for openrouter just wanted to follow up and cleanup for other providers which might have this issue as this is against the spec. Release Notes: - N/A
Umesh Yadav created
946efb0
Add option for code context menu items to have dynamic width (#37404)
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
4b96ad3
gpui: Remove `http_client` feature (#37401)
This PR removes the `http_client` feature from the `gpui` crate, as it wasn't really doing anything. It only controlled whether we depend on the `http_client` crate, but from what I can tell we always depended on it anyways. Obviates https://github.com/zed-industries/zed/pull/36615. Release Notes: - N/A
Marshall Bowers created
4368c1b
language_models: Add OpenRouterError and map OpenRouter errors to LanguageModelCompletionError (#34227)
Improves the error handling for openrouter and adds automatic retry like anthropic for few of the status codes. Release Notes: - Improves error messages for Openrouter provider - Automatic retry when rate limited or Server error from Openrouter
Umesh Yadav created
e5a968b
vim: Fix change surround with any brackets text object (#37386)
This commit fixes an issue with how the `AnyBrackets` object was handled
with change surrounds (`cs`). With the keymap below, if one was to use
`csb{` with the text `(bracketed)` and the cursor inside the
parentheses, the text would not change.
```json
{
"context": "vim_operator == a || vim_operator == i || vim_operator == cs",
"bindings": {
"b": "vim::AnyBrackets"
}
}
```
Unfortunately there was no implementation for finding a corresponding
`BracketPair` for the `AnyBrackets` object, meaning that, when using
`cs` (change surrounds) the code would simply do nothing.
This commit updates this logic so as to try and find the nearest
surrounding bracket (parentheses, curly brackets, square brackets or
angle brackets), ensuring that `cs` also works with `AnyBrackets`.
Closes #24439
Release Notes:
- Fixed handling of `AnyBrackets` in vim's change surrounds (`cs`)
Dino created
7aecab8
agent2: Only setup real client for real models (#37403)
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
e4df866
editor: Do not show edit prediction during in-progress IME composition (#37400)
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
8770fcc
acp: Enable claude code feature flag for everyone (#37390)
Release Notes: - N/A
Bennet Bo Fenner created
6dcae27
terminal: Fix not able to select text during continuous output (#37395)
Closes #37211 Regressed in https://github.com/zed-industries/zed/pull/33305 Every time the terminal updates, we emit `SearchEvent::MatchesInvalidated` to trigger a re-run of the buffer search, which calls `clear_matches` to drop stale results. https://github.com/zed-industries/zed/pull/33305 PR also cleared the selection when clearing matches, which caused this issue. We could fix it by only clearing matches and selection when they’re non-empty, but it’s better to not clear the selection at all. This matches how the editor behaves and keeps it consistent. This PR reverts that part of code. Release Notes: - Fixed an issue where text selection was lost during continuous terminal output.
Smit Barmase created