Commit log

ab04489 zed 0.178.1

Joseph T. Lyons created

20456e0 theme: Fix incorrect version control keys in One themes (cherry-pick #26606) (#26624)

Click to expand commit body
Cherry-picked theme: Fix incorrect version control keys in One themes
(#26606)

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.

Co-authored-by: Nate Butler <iamnbutler@gmail.com>

gcp-cherry-pick-bot[bot] and Nate Butler created

01f39e9 gruvbox: `version_control_` -> `version_control.` (#26665)

Click to expand commit body
Missed this in PR #26606 

Before:

![CleanShot 2025-03-13 at 08 58
59@2x](https://github.com/user-attachments/assets/021df4b1-5a70-4fae-a109-9b8bb35949e3)

After:

![CleanShot 2025-03-13 at 08 59
22@2x](https://github.com/user-attachments/assets/01dca26d-77ec-4a54-8b7c-aa2fb160ff7d)

Release Notes:

- theme: Fixed an issue where version control colors weren't applying
correctly. (again)

Nate Butler created

391eb38 Disable automatic window tabbing (cherry-pick #26600) (#26652)

Click to expand commit body
Cherry-picked macOS: Disable automatic window tabbing in fullscreen mode
(#26600)

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

Co-authored-by: Stanislav Alekseev <43210583+WeetHet@users.noreply.github.com>

gcp-cherry-pick-bot[bot] and Stanislav Alekseev created

cdfa3dd Properly handle goto single file worktrees during terminal cmd-clicks (cherry-pick #26582) (#26651)

Click to expand commit body
Cherry-picked Properly handle goto single file worktrees during terminal
cmd-clicks (#26582)

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

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

gcp-cherry-pick-bot[bot] and Kirill Bulatov created

7364f81 Improve terminal hover tooltips (cherry-pick #26487) (#26650)

Click to expand commit body
Cherry-picked Improve terminal hover tooltips (#26487)

Follow-up of https://github.com/zed-industries/zed/pull/26174

* Fixes `./path/foo.bar` not properly parsed as valid open target
* Shows full open target's path in cmd-hover tooltips

Before:

<img width="864" alt="before_1"

src="https://github.com/user-attachments/assets/2575b887-6c4d-486e-8e92-dd76aedf8103"
/>
<img width="864" alt="before_2"

src="https://github.com/user-attachments/assets/ded1f203-523c-4b75-afe9-fe541c785798"
/>

After:

<img width="864" alt="after_1"

src="https://github.com/user-attachments/assets/c50d9ba3-5dfb-4cfb-aed6-00e6fa6f088e"
/>
<img width="864" alt="after_2"

src="https://github.com/user-attachments/assets/0cdc8f34-7faa-4aab-87f3-dc0c8b499842"
/>

Release Notes:



- N/A

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

gcp-cherry-pick-bot[bot] and Kirill Bulatov created

44447e2 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

fc76d08 Fix overflow in create branch label (#26591)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Conrad Irwin created

be0595a 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

1b6421b Fix a bug where the modal layer could not be dismissed by the mouse

Mikayla Maki created

cb675c7 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

209f1da git: Hard wrap in editor (cherry-pick #26507) (#26589)

Click to expand commit body
Cherry-picked git: Hard wrap in editor  (#26507)

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.

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

gcp-cherry-pick-bot[bot] and Conrad Irwin created

96e1eed Fix message on push (cherry-pick #26588) (#26595)

Click to expand commit body
Cherry-picked Fix message on push (#26588)

Instead of saying "Successfully pushed new branch" we say "Pushed x to
y"

Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

gcp-cherry-pick-bot[bot] and Conrad Irwin created

4994b02 Git on main thread (cherry-pick #26573) (#26586)

Click to expand commit body
Cherry-picked Git on main thread (#26573)

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>

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>

gcp-cherry-pick-bot[bot] , Conrad Irwin , Max Brunsfeld , and Kirill Bulatov created

5bc7479 Fix unstage/stage in project diff not working when git panel isn't open (cherry-pick #26575) (#26581)

Click to expand commit body
Cherry-picked Fix unstage/stage in project diff not working when git
panel isn't open (#26575)

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>

Co-authored-by: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

gcp-cherry-pick-bot[bot] , Anthony Eid , and Conrad Irwin created

7b821e9 v0.178.x preview

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

30afba5 Start tracking diffs in `ScriptingSession` (#26463)

Click to expand commit body
The diff is not exposed yet, but we'll take care of that next.

Release Notes:

- N/A

Antonio Scandurra created

036c123 Add git init button (#26522)

Click to expand commit body
Because why not

Release Notes:

- N/A

Mikayla Maki created

050f5f6 Hide generate commit message button when assistant is disabled (#26519)

Click to expand commit body
Release Notes:

- Git Beta: Fixed the generate commit message button still showing when
the assistant is disabled.

Mikayla Maki created

2cd970f git: Remove hunk style setting (#26504)

Cole Miller created

d6255fb git: Prevent up and down motions leaking out of the commit editor (#26501)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Git Beta: fixed an issue where pressing `up` or `down` in the git
panel's commit message editor would change the selected status entry

Cole Miller created

f9a66ec Add detection of self hosted GitHub enterprise instances (#26482)

Click to expand commit body
This PR does not close an issue, but it is an issue and and fix in one.
I hope this is ok, but please let me know if you prefer me to open an
issue before.

Release Notes:

- Add "copy permalink" action for self-hosted GitHub enterprise
instances

# Issue
### Related issues:
* https://github.com/zed-industries/zed/issues/26393
* https://github.com/zed-industries/zed/issues/11043

When you try to copy a permalink from a self-hosted GitHub enterprise
instance, you get the following error:

<img width="383" alt="permalink"
src="https://github.com/user-attachments/assets/b32338a7-a2d7-48fc-86bf-ade1d32ed1f7"
/>

You also cannot open a PR or commit when you hover over a git blame:


https://github.com/user-attachments/assets/a5491ce7-270b-412f-b9ac-027ec020b028


### Reproduce
If you do not have access to a self-hosted GitHub instance, you can
change the remote url of any git repo:
```
git remote set-url origin git@github.mycorp.com:nilskch/zed.git
```

With the fix, permalinks still won't bring you to a valid website, but
you can verify that they are correctly created.

# Solution

Currently, we only support detecting self-hosted GitLab instances, but
not self-hosted GitHub instances. We detect GitLab instances by checking
if "gitlab" is part of the git URL.

This PR adds the same logic to detect self-hosted GitHub enterprise
instances (by checking if "github" is in the URL).

This solution is not ideal, since self-hosted GitHub or GitLab instances
might not contain the word "github" or "gitlab". #26393 proposes adding
a setting that would allow users to map specific domains to their
corresponding git provider types. This mapping would help Zed correctly
identify the appropriate git instance, even if "gitlab" or "github" are
not part of the URL.

This PR does not implement the offered solution, but I added a TODO
where the fix for #26393 has to make changes.

Nils Koch created

cfb9a4b Fix git panel entries getting cut off (#26499)

Click to expand commit body
Closes #26497 

Release Notes:

- N/A

Cole Miller created

9902cd5 extension_host: Remove restriction of extension API v0.3.0 to development builds (#26498)

Click to expand commit body
Forgot to do this in #26495.

Release Notes:

- N/A

Marshall Bowers created

96510b7 zed_extension_api: Release v0.3.0 (#26495)

Click to expand commit body
This PR releases v0.3.0 of the Zed extension API.

Support for this version of the extension API will land in Zed v0.178.x.

Release Notes:

- N/A

Marshall Bowers created

a364a13 Fix panel not resizing after external file deletion (#26378)

Click to expand commit body
Previously, when a file was deleted externally and the warning prompt
was dismissed with "Close", the panel remained but was empty, leaving an
unused split space.

This happened because pane.remove_item(...) was being called with
close_pane_if_empty set to false, preventing the panel from being
removed even when it had no remaining items.

This fix changes the third boolean parameter to true, ensuring that the
panel is removed if it becomes empty, allowing the layout to properly
resize.

Closes #23904

Release Notes:

- N/A

Cristiano Pantea created

09a4cfd git_ui: Panel Horizontal Scroll (#26402)

Click to expand commit body
Known Issues:
- When items can horizontal scroll, the right selected border is hidden

TODO:
- [ ] Width calculation is off
- [ ] When scrollbars should autohide they don't until hovering the
panel
- [ ] When switching to and from scrollbar track being visible we are
missing a notify somewhere.

Release Notes:

- Git Panel: Added horizontal scrolling in the git panel

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Cole Miller <cole@zed.dev>

Nate Butler , Max Brunsfeld , Cole Miller , and Cole Miller created

5d66c3d Git panel editor scroll (#26465)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

28f33d0 Fix conflict marker in project diff view (#26466)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Conrad Irwin and Max Brunsfeld created

55a90f5 ui: Split up `ContextMenu::render` into smaller methods (#26489)

Click to expand commit body
This PR refactors the `ContextMenu::render` method to extract a couple
smaller methods from it.

The existing `render` method was suffering from its size, with some of
the `match` arms not being able to be formatted with `rustfmt`.

Release Notes:

- N/A

Marshall Bowers created

8d6abf6 Improve terminal hover tooltips (#26487)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/26174

* Fixes `./path/foo.bar` not properly parsed as valid open target
* Shows full open target's path in cmd-hover tooltips

Before:

<img width="864" alt="before_1"
src="https://github.com/user-attachments/assets/2575b887-6c4d-486e-8e92-dd76aedf8103"
/>
<img width="864" alt="before_2"
src="https://github.com/user-attachments/assets/ded1f203-523c-4b75-afe9-fe541c785798"
/>

After:

<img width="864" alt="after_1"
src="https://github.com/user-attachments/assets/c50d9ba3-5dfb-4cfb-aed6-00e6fa6f088e"
/>
<img width="864" alt="after_2"
src="https://github.com/user-attachments/assets/0cdc8f34-7faa-4aab-87f3-dc0c8b499842"
/>

Release Notes:



- N/A

Kirill Bulatov created

04961a0 Tweak stage/unstage-and-next to start a commit instead of wrapping in the project diff editor (#26434)

Click to expand commit body
Release Notes:

- Git Beta: improved the stage-and-next and unstage-and-next actions in
the project diff editor to start a commit after acting on the last hunk

Cole Miller created

fd7ab20 Don't clobber the user's upstream settings (#26486)

Click to expand commit body
It's not clobbering time :(

Release Notes:

- Git Beta: Fixed a bug where our push button would always overwrite the
current branch's upstream

Mikayla Maki created