Commit log

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

Stanislav Alekseev created

606aa7a Edit tool debugging (#26637)

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

Nate Butler created

6044773 Add path search glob tool (#26567)

Click to expand commit body
<img width="638" alt="Screenshot 2025-03-12 at 1 33 31 PM"
src="https://github.com/user-attachments/assets/f29b9dae-59eb-4d7a-bc26-aa4721cb829a"
/>

Release Notes:

- N/A

Richard Feldman created

81af2c0 Fix overflow in create branch label (#26591)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Conrad Irwin created

ab199fd ci: GitHub actions refactor (#26551)

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

Marshall Bowers created

edeed7b `workspace::Open`: Highlight fuzzy matches (#26320)

Click to expand commit body
Partial: https://github.com/zed-industries/zed/issues/15398

Changes:
Adds highlighting to the matches when using `"use_system_path_prompts":
false`

| before | after |
|---|---|

|![image](https://github.com/user-attachments/assets/60a385a0-abb0-49c5-935c-e71149161562)|![image](https://github.com/user-attachments/assets/d66ce980-cea9-4c22-8e6a-9720344be39a)|

Release Notes:

- N/A

brian tan created

9be7934 Add Bash tool (#26597)

Click to expand commit body
<img width="636" alt="Screenshot 2025-03-12 at 4 24 18 PM"
src="https://github.com/user-attachments/assets/6f317031-f495-4a5a-8260-79a56b10d628"
/>

<img width="634" alt="Screenshot 2025-03-12 at 4 24 36 PM"
src="https://github.com/user-attachments/assets/27283432-4f94-49f3-9d61-a0a9c737de40"
/>


Release Notes:

- N/A

Richard Feldman created

009b902 Fix formatting in linux.md (#26598)

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

Peter Tripp created

8b17dc6 docs: Document linker issue & workarounds with GCC >= 14 (#26579)

Click to expand commit body
Closes #24880

documents issues with aws-lc-rs and gcc >=14 on linux and provides a
workaround until the issues are fixed in aws-lc-rs

Michael Kaplan created

de07b71 Fix message on push (#26588)

Click to expand commit body
Instead of saying "Successfully pushed new branch" we say "Pushed x to
y"

Release Notes:

- N/A

Conrad Irwin created

be8f3b3 Add delete-path tool (#26590)

Click to expand commit body
Release Notes:

- N/A

Richard Feldman created

3131b04 Return which files were touched in the edit tool (#26564)

Click to expand commit body
<img width="631" alt="Screenshot 2025-03-12 at 12 56 43 PM"
src="https://github.com/user-attachments/assets/9ab84a53-829a-4943-ae76-b1d97ee31f55"
/>

<img width="908" alt="Screenshot 2025-03-12 at 12 57 12 PM"
src="https://github.com/user-attachments/assets/bd246231-6c92-4266-b61e-5293adfe2ba0"
/>

Release Notes:

- N/A

Richard Feldman created

3ec323c uiua: Extract to zed-extensions/uiua repository (#26587)

Click to expand commit body
This PR extracts the Uiua extension to the
[zed-extensions/uiua](https://github.com/zed-extensions/uiua)
repository.

Release Notes:

- N/A

Marshall Bowers created

c8b782d git: Hard wrap in editor (#26507)

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

Conrad Irwin created

7bca157 Git on main thread (#26573)

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

Kirill Bulatov created

91c2099 Support word-based completions (#26410)

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

Marshall Bowers created

21cf2e3 Fix pane magnification causing mouse to drag tabs unexpectedly (#26383)

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

Marshall Bowers created

ffcd023 Bump Zed to v0.179 (#26563)

Click to expand commit body
Release Notes:

-N/A

Joseph T. Lyons created

6259ad5 Add RegexSearchTool (#26555)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

8d259a9 git_ui: Update Project Diff empty state design (#26554)

Click to expand commit body
Title

Release Notes:

- N/A

---------

Co-authored-by: Cole Miller <m@cole-miller.net>

Nate Butler and Cole Miller created

010c5a2 docs: Update the Git page (#26530)

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

5f74297 Fix edit tool tests on windows (#26552)

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

Agus Zubiaga created

349f573 Add ListDirectoryTool (#26549)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

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>

Smit Barmase and MrSubidubi created

6e89537 assistant2: Add an option to enable/disable all tools (#26544)

Click to expand commit body
This PR adds an option to enable or disable all tools in the tool
selector.

<img width="1297" alt="Screenshot 2025-03-12 at 10 40 28 AM"
src="https://github.com/user-attachments/assets/9125bdfb-5b54-461c-a065-2882a8585a67"
/>

Release Notes:

- N/A

Marshall Bowers created

669c6a3 assistant edit tool: Do not include `\r` in old/new str (#26542)

Click to expand commit body
#26538 fixed part of the issue, but it would keep trailing carriage
returns in the old/new strings. The model is unlikely to produce those,
but we might as well support them.

Release Notes:

- N/A

Agus Zubiaga created

910531b Check if additional git provider is not the original git provider (#26533)

Click to expand commit body
Release Notes:

- N/A

Yesterday I worked on https://github.com/zed-industries/zed/pull/26482
and noticed afterwards that we have duplicated hosting providers if the
git remote host is "gitlab.com" and after the PR also for "github.com".
This is not a big problem, since the original providers are registered
first and therefore we first find a match with the original providers,
but I think we should address this nevertheless.

We initialize every hosting provider with the defaults here:

https://github.com/zed-industries/zed/blob/b008b2863ee015a9dc6ecdcd6dedbc708983f8b3/crates/git_hosting_providers/src/git_hosting_providers.rs#L15-L24

After that, we also register additional hosting providers:

https://github.com/zed-industries/zed/blob/b008b2863ee015a9dc6ecdcd6dedbc708983f8b3/crates/git_hosting_providers/src/git_hosting_providers.rs#L30-L43

If we do not check if the additional provider is not the original
provider, we will register the same provider twice.

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Nils Koch and Marshall Bowers created

690f26c Disable clangd's inactiveRegions support (#26539)

Click to expand commit body
Disables https://github.com/zed-industries/zed/pull/26146 until a better
way to add diagnostics is found.
Overall, the PR had made changes that are worth keeping instead of
reverting, such as finally extracting out r-a's language server logic
into an `_ext.rs` file.

Release Notes:

- N/A

Kirill Bulatov created

6b56fee assistant edit tool: Support \r\n around markers (#26538)

Click to expand commit body
This should fix the tests on Windows

Release Notes:

- N/A

Agus Zubiaga created

d94001f git: Fix placeholder dots in untracked files (#26537)

Click to expand commit body
This regressed at some point.

Release Notes:

- N/A

Cole Miller created

6bcfc40 Introduce a system prompt for the new assistant (#26536)

Click to expand commit body
This should be less eager in terms of invoking tools. But we should keep
iterating on it as we add more tools.

Also, this disables the Lua interpreter by default (it can still be
enabled manually from the tools icon).

Release Notes:

- N/A

---------

Co-authored-by: Richard Feldman <oss@rtfeldman.com>

Antonio Scandurra and Richard Feldman created

47a89ad assistant: Edit files tool (#26506)

Click to expand commit body
Exposes a new "edit files" tool that the model can use to apply
modifications to files in the project. The main model provides
instructions and the tool uses a separate "editor" model (Claude 3.5 by
default) to generate search/replace blocks like Aider does:

````markdown
mathweb/flask/app.py
```python
<<<<<<< SEARCH
from flask import Flask
=======
import math
from flask import Flask
>>>>>>> REPLACE
```
````

The search/replace blocks are parsed and applied as they stream in. If a
block fails to parse, the tool will apply the other edits and report an
error pointing to the part of the input where it occurred. This should
allow the model to fix it.


Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>

Agus Zubiaga and Antonio Scandurra created

f3f9789 Improve script tool description and add lines iterator to Lua file objects (#26529)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Agus Zubiaga <hi@aguz.me>

Antonio Scandurra and Agus Zubiaga created