Let's see if the speed of `windows-2025-32` for `windows_tests` is
fast-enough for PRs and everywhere else use `windows-2025-16`. Leaving
`windows_clippy` unchanged with `windows-2025-16`.
Release Notes:
- N/A
Peter Tripp
created
b0b6542
Do not repeat proposed LSP completions in the word completions (#26682)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/26410
Release Notes:
- N/A
Kirill Bulatov
created
8ec0309
assistant edit tool: Use buffer search and replace in background (#26679)
Click to expand commit body
Instead of getting the whole text from the buffer, replacing with
`String::replace`, and getting a whole diff, we'll now use `SearchQuery`
to get a range, diff only that range, and apply it (all in the
background).
When we match zero strings, we'll record a "bad search", keep going and
report it to the model at the end.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
This PR cleans up some color & elevation misc.
### Don't allow deriving Color from Hsla
The point of the [ui::Color] enum is to encourage consistent color
usage, and the the Color::Custom case is really only meant for cases
where we have no other choice.
`impl From<Hsla> for Color` encourages blindly passing colors into
`Color::Custom` – with this in place we might as well remove the entire
`Color` enum.
The usages that were updated due to this removal were for colors that
already exist in the Color enum, making it even more clear that it
didn't make sense to have this.
### `ElevationIndex` -> `Elevation`
This name would make more sense if we had an `Elevation` in the first
place. The new name is more clear.
#### `Button::elevation`
As part of this change I also updated button's `layer` method to
`elevation`, since it takes an elevation. This method still has the
following issue:
You want to use `Button::elevation` when it's default colors are
invisible on the layer you are rendering the button on. However, current
this method uses the elevation's `bg` color, rather than it's
`on_elevation_bg`.
Ideally when you use `Button::elevation` you want to pass the elevation
you are _on_, not choosing one that will show up the elevation you are
on.
This change will be in a separate PR, as it likely will have widespread
visual impact across the app.
Release Notes:
- N/A
Missed this in PR #26606
Before:

After:

Release Notes:
- theme: Fixed an issue where version control colors weren't applying
correctly. (again)
Nate Butler
created
0a0c163
assistant2: Use icons for tool call status communication (#26617)
Click to expand commit body
It was hard to catch the running & pending states, though. When running,
it will appear as a spinning arrow circle icon.
<img
src="https://github.com/user-attachments/assets/dbf1bc0a-6fa3-41c6-bcd7-2226e89c87b4"
width="500px" />
Release Notes:
- N/A
d9590f3
docs: Improve introduction to Edit Prediction (#26620)
Click to expand commit body
As I was writing a blog post about Edit Prediction, I realized we didn't
have a great section in the docs I could link to talking about
configuring it. We weren't: 1) explicitly exposing the settings code to
add Zed as the edit prediction provider, and 2) not showing an image of
the title bar banner.
Release Notes:
- N/A
Danilo Leal
created
4ecd1b5
Fix bad `cd` sometimes used by `BashTool` and set edit model temperature to 0 (#26656)
Click to expand commit body
Release Notes:
- N/A
Antonio Scandurra
created
70c973f
Fix issues in `EditFilesTool`, `ListDirectoryTool` and `BashTool` (#26647)
Click to expand commit body
Release Notes:
- N/A
Antonio Scandurra
created
e842b4e
macOS: Disable automatic window tabbing in fullscreen mode (#26600)
Click to expand commit body
Fixes #26534 (this time for real)
Release Notes:
- Fixed issue where Zed would behave weirdly when opening new fullscreen
windows by disabling window tabbing
Apple docs:
https://developer.apple.com/documentation/appkit/nswindow/allowsautomaticwindowtabbing
Adds an `debug: edit tool` action that opens a new view which will help
us debug the edit tool internals. As the edit tool runs, the log
displays:
- Instructions provided by the main model
- Response stream from the editor model
- Parsed edit blocks
- Tool output provided back to main model
The log automatically records all edit tool interactions for staff, so
if you notice something weird, you can debug it retroactively without
having to open the debug tool first. We may want to limit the number of
recorded requests later.
I have a few more ideas for it, but this seems like a good starting
point.
https://github.com/user-attachments/assets/c61f5ce8-08b1-4500-accb-db2a480eb3ab
Release Notes:
- N/A
Agus Zubiaga
created
0081b81
Fix a bug where the modal layer could not be dismissed by the mouse
Mikayla Maki
created
21949bc
ci: Fix tests not-running on main (#26613)
Click to expand commit body
Follow-up to #26551
Fix for tests being skipped on main.
Also fetch less history: [example
run](https://github.com/zed-industries/zed/actions/runs/13822318758/job/38670334893)
Release Notes:
- N/A
Peter Tripp
created
ee7ed6d
Update Rust crate anyhow to v1.0.97 (#26576)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [anyhow](https://redirect.github.com/dtolnay/anyhow) |
workspace.dependencies | patch | `1.0.96` -> `1.0.97` |
---
### Release Notes
<details>
<summary>dtolnay/anyhow (anyhow)</summary>
###
[`v1.0.97`](https://redirect.github.com/dtolnay/anyhow/releases/tag/1.0.97)
[Compare
Source](https://redirect.github.com/dtolnay/anyhow/compare/1.0.96...1.0.97)
- Documentation improvements
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE5NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
renovate[bot]
,
renovate[bot]
, and
Marshall Bowers
created
07b67c1
assistant2: Add ability to enable/disable all tools from a context server (#26610)
Click to expand commit body
This PR adds an option to enable/disable all tools from a specific
context server:
<img width="1297" alt="Screenshot 2025-03-12 at 5 55 45 PM"
src="https://github.com/user-attachments/assets/af6c169e-0462-4a99-9bec-48fbf83dd08a"
/>
Release Notes:
- N/A
Marshall Bowers
created
f116b44
Rename the editor::ToggleGitBlame action to git::Blame (#26565)
Click to expand commit body
Release Notes:
- Git Beta: Renamed `editor::ToggleGitBlame` to `git::Blame`
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Mikayla Maki
,
Conrad Irwin
,
Cole Miller
,
Nathan Sobo
, and
Max Brunsfeld
created
43ab7fe
theme: Fix incorrect version control keys in One themes (#26606)
Click to expand commit body
While the `.{variants}` of the theme keys _were_ incorrect, they are
actually more consistent with our current theme keys (thanks AI!) So we
will keep theme, and fix the incorrect usages in the one themes and
elsewhere.
Old description:
>
> This PR fixes an issue where we specified the incorrect theme keys
(thanks AI!) > in the theme schema. The following keys have been changed
to their correct > versions:
>
> | Before | After |
> |-------------------------------|-------------------------|
> | version_control.added | version_control_added |
> | version_control.deleted | version_control_deleted |
> | version_control.modified | version_control_modified|
> | version_control.renamed | version_control_renamed |
> | version_control.conflict | version_control_conflict|
> | version_control.ignored | version_control_ignored |
>
> Please use the after versions in your themes, as they are correct!
>
> We won't be adding secondary keys to fix this automatically as git
only > officially launched today.
>
> Due to this change, we've also updated the version control keys in the
One > themes to keep the default diff hunks looks from changing.
Closes #26572
Release Notes:
- theme: Fixed an issue where version control colors weren't applying
correctly.
Refactor GitHub actions CI workflow.
- Single combined 'tests_pass' action so we only need one mandatory
check for merge queue
- Add new `job_spec` job which determines what needs to be run (+5secs)
- Do not run full CI for docs only changes (~30secs vs 10+mins)
- Only run `script/generate-licenses` if Cargo.lock changed (saves
~23secs on mac_test)
- Move prettier /docs check to ci.yml and remove docs.yml
- Run Windows tests on every PR commit
- Added new Windows runners named to reflect their OS/capacity
(windows-2025-64, windows-2025-32, windows-2025-16)
Release Notes:
- N/A
Peter Tripp
created
e60e8f3
assistant_tool: Reduce locking in `ToolWorkingSet` (#26605)
Click to expand commit body
This PR updates the `ToolWorkingSet` to reduce the amount of locking we
need to do.
A number of the methods have had corresponding versions moved to the
`ToolWorkingSetState` so that we can take out the lock once and do a
number of operations without needing to continually acquire and release
the lock.
Release Notes:
- N/A
Partial: https://github.com/zed-industries/zed/issues/15398
Changes:
Adds highlighting to the matches when using `"use_system_path_prompts":
false`
| before | after |
|---|---|
|||
Release Notes:
- N/A
Merge queue did not require docs tests to pass:
-
https://github.com/zed-industries/zed/actions/runs/13820880465/job/38665664419
This will be fixed with:
- https://github.com/zed-industries/zed/pull/26551
cc: @ConradIrwin
Release Notes:
- N/A
This adds the ability for the editor to implement hard wrap (similar to
"textwidth" in vim).
If you are typing and your line extends beyond the limit, a newline is
inserted before the most recent space on the line. If you are otherwise
editing the line, pasting, etc. then you will need to manually rewrap.
Release Notes:
- git: Commit messages are now wrapped "as you type" to 72 characters.
This moves spawning of the git subprocess to the main thread. We're not
yet
sure why, but when we spawn a process using GCD's background queues,
sub-processes like git-credential-manager fail to open windows.
This seems to be fixable either by using the main thread, or by using a
standard background thread,
but for now we use the main thread.
Release Notes:
- Git: Fix git-credential-manager
---------
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Conrad Irwin
,
Max Brunsfeld
, and
Kirill Bulatov
created
5268e74
Properly handle goto single file worktrees during terminal cmd-clicks (#26582)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/26431
Follow-up of https://github.com/zed-industries/zed/pull/26174
`path_with_position.path.strip_prefix(&worktree_root)` used in the PR is
wrong for cases of single-file worktrees, where it will return empty
paths that will result in incorrect project and FS entries accessed.
Release Notes:
- Fixed goto single file worktrees during terminal cmd-clicks
Closes https://github.com/zed-industries/zed/issues/4957
https://github.com/user-attachments/assets/ff491378-376d-48ec-b552-6cc80f74200b
Adds `"completions"` language settings section, to configure LSP and
word completions per language.
Word-based completions may be turned on never, always (returned along
with the LSP ones), and as a fallback if no LSP completion items were
returned.
Future work:
* words are matched with the same fuzzy matching code that the rest of
the completions are
This might worsen the completion menu's usability even more, and will
require work on better completion sorting.
* completion entries currently have no icons or other ways to indicate
those are coming from LSP or from word search, or from something else
* we may work with language scopes more intelligently, group words by
them and distinguish during completions
Release Notes:
- Supported word-based completions
---------
Co-authored-by: Max Brunsfeld <max@zed.dev>
Kirill Bulatov
and
Max Brunsfeld
created
74c29f1
Fix unstage/stage in project diff not working when git panel isn't open (#26575)
Click to expand commit body
Closes #ISSUE
Release Notes:
- Fix Bug where unstage/stage all in project diff wouldn't work while
git panel was closed
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Anthony Eid
and
Conrad Irwin
created
5858e61
purescript: Extract to zed-extensions/purescript repository (#26571)
Click to expand commit body
This PR extracts the PureScript extension to the
[zed-extensions/purescript](https://github.com/zed-extensions/purescript)
repository.
Release Notes:
- N/A
Previously, if a user clicked a button and moved the cursor out before
releasing, the click event was correctly prevented, but the pending
mouse-down state remained.
This caused unintended drags when the UI shifted due to magnification
settings.
Now, mouse-up clears the pending state:
- If over the button → clear state and trigger click handlers.
- If outside the button → clear state without triggering a click.
This avoids accidental drags while preserving expected click behavior.
Closes #24600
Release Notes:
- N/A
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
Martim Aires de Sousa
and
Ben Kunkle
created
a3ca555
zig: Extract to zed-extensions/zig repository (#26569)
Click to expand commit body
This PR extracts the Zig extension to the
[zed-extensions/zig](https://github.com/zed-extensions/zig) repository.
Release Notes:
- N/A
Marshall Bowers
created
acf9b22
extension: Add `ExtensionEvents` for listening to extension-related events (#26562)
Click to expand commit body
This PR adds a new `ExtensionEvents` event bus that can be used to
listen for extension-related events throughout the app.
Today you need to have a handle to the `ExtensionStore` (which entails
depending on `extension_host`) in order to listen for extension events.
With this change subscribers only need to depend on `extension`, which
has a leaner dependency graph.
Release Notes:
- N/A
So it reflects the new set of features supported starting from v0.177.
Release Notes:
- N/A
Danilo Leal
created
45b126a
git: Add an onboarding and banner flow (#26518)
Click to expand commit body
TODO:
- [ ] Hide the reset onboarding action (only useful for development,
uncomment:
https://github.com/zed-industries/zed/pull/26518/files#diff-f0ce01d9a3df30f60c64b6f9906c54aa0191246a58dbf5297ee321575a180879R96)
- [x] Get a designer to replace the modal background (@danilo-leal)
Release Notes:
- Added a small onboarding banner for the git launch
---------
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Mikayla Maki
,
Danilo Leal
, and
Danilo Leal
created
Assertions on the parsed system prompt should use CRLF on Windows. I
didn't see it before because I was testing on my Windows VM from a
shared folder I cloned on macOS.
Release Notes:
- N/A
41eb586
Remove `list_worktrees` and use relative paths instead (#26546)
Click to expand commit body
Release Notes:
- N/A
Antonio Scandurra
created
6bf6fca
macOS: Fix window turning black on fullscreen mode (#26547)
Click to expand commit body
Closes #26534
Recently, we fixed a title bar transparency issue that only occurred on
macOS 15.3 and later. PR:
https://github.com/zed-industries/zed/pull/26403
However, this seems to have broken multi-window fullscreen behavior on
earlier macOS versions. This PR adds versioning so that the title bar
transparency fix only applies to macOS 15.3.0 and later.
No release notes, as this bug only exists on main right now.
Release Notes:
- N/A
Co-authored-by: MrSubidubi <dev@bahn.sh>