Commit log

68262fe theme: Add fallback colors for `version_control.<variant>` properties (#27104)

Click to expand commit body
This PR adds fallback colors for the `version_control.<variant>` theme
properties.

This fixes the colors when themes do not provide the properties.

Related to  https://github.com/zed-industries/zed/pull/26951.

Release Notes:

- Added fallback colors for the `version_control.<variant>` theme
properties.

Marshall Bowers created

2491426 Fix release notes API call with heredoc syntax (#27096)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

4487dc1 assistant2: Add a button to open the extensions view to install more context servers (#27095)

Click to expand commit body
This PR adds a new button in the Assistant configuration view to open
the extensions view pre-filtered to extensions that provide context
servers.


https://github.com/user-attachments/assets/3bc77507-c8b8-4bc6-8a17-ab5d8b3b7c8a

Release Notes:

- N/A

Marshall Bowers created

e03edc2 debugger: Do not allow setting breakpoints in buffers without file storage (#27094)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

d722067 extensions_ui: Add ability to open the extensions view with a pre-selected filter (#27093)

Click to expand commit body
This PR adds the ability to open the extensions view via the `zed:
extensions` action with a pre-selected filter.

The "Install Themes" and "Install Icon Themes" buttons in their
respective selectors take advantage of this to set the filter when
opening the view:


https://github.com/user-attachments/assets/2e345c0f-418a-47b6-811e-cabae6c616d1

Release Notes:

- N/A

Marshall Bowers created

d51cd15 Remove an unused field in Diagnostic from zed.proto (#27091)

Click to expand commit body
Release Notes:

- N/A

Kirill Bulatov created

ef14bc8 docs: Add better snippets documentation (#26853)

Click to expand commit body
Improved snippets docs

Release Notes:

- N/A

loczek created

9fe243e gpui: Update doc comment for `App::new` (#27089)

Click to expand commit body
This PR updates the doc comment for the `App::new` method.

Release Notes:

- N/A

Marshall Bowers created

74a39c7 Make FakeGitRepository behave more like a real git repository (#26961)

Click to expand commit body
This PR reworks the `FakeGitRepository` type that we use for testing git
interactions, to make it more realistic. In particular, the `status`
method now derives the Git status from the differences between HEAD, the
index, and the working copy. This way, if you modify a file in the
`FakeFs`, the Git repository's `status` method will reflect that
modification.

Release Notes:

- N/A

---------

Co-authored-by: Junkui Zhang <364772080@qq.com>

Max Brunsfeld and Junkui Zhang created

5f39807 assistant2: Skip tool uses without a matching tool result (#27082)

Click to expand commit body
Anthropic API doesn't allow `tool_use` messages without a corresponding
`tool_result`, so we'll skip those when building a request. I'll
separately investigate why we are sending request before the tool result
as that might lead to separate issues, but that might take a while and
this is currently very frustrating.

Release Notes:

- N/A

Agus Zubiaga created

410a942 assistant2: Add ability to start and stop context servers (#27080)

Click to expand commit body
This PR adds the ability to start and stop context servers from within
the configuration view in the Assistant panel:


https://github.com/user-attachments/assets/93c3a7cb-d799-4286-88ba-c13cc26e959a

Release Notes:

- N/A

Marshall Bowers created

06ffdc6 Bump Zed to v0.180 (#27083)

Click to expand commit body
Release Notes:

-N/A

Joseph T. Lyons created

3942155 assistant2: Fix broken merge (#27081)

Click to expand commit body
This PR fixes a broken merge caused by
https://github.com/zed-industries/zed/pull/26987 landing after
https://github.com/zed-industries/zed/pull/26758.

Release Notes:

- N/A

Marshall Bowers created

e8a4008 Allow tools to read unsaved buffers (#26987)

Click to expand commit body
If the tool asks to read a path, we don't need to verify whether that
path exists on disk; an unsaved buffer with that path is fine.

Release Notes:

- N/A

Richard Feldman created

6303751 Record token usage telemetry (#26962)

Click to expand commit body
<img width="1103" alt="Screenshot 2025-03-17 at 9 47 32 PM"
src="https://github.com/user-attachments/assets/947cf33d-4464-4305-8ff0-3630529d2f81"
/>


Release Notes:

- N/A

Richard Feldman created

3edf930 Revert "Start tracking edits performed by the agent" (#27077)

Click to expand commit body
Reverts zed-industries/zed#27064

Antonio Scandurra created

584a70c Refactor Git panel styling & status colors for consistency (#26951)

Click to expand commit body
Closes #26847

Release Notes:

- Updated Git panel background to use panel_background instead of
ElevationIndex::Surface.bg(cx) for consistency with other panels.
- Removed redundant GitStatusColors struct from status.rs and refactored
to use existing theme colors.
- Adjusted Color enum mappings in color.rs to reference
version_control_* colors instead of status() for better alignment with
the theme system.
- Cleaned up unused or redundant code.

Jakub Čermák created

2230f3b editor: Preserve expand excerpt down button position (#27058)

Click to expand commit body
When you press the "Expand Excerpt Down" button, the editor will scroll
up by the same amount to keep the button in same place. This allows you
to expand the excerpt rapidly without moving your mouse.

Before:


https://github.com/user-attachments/assets/376350ac-6f21-4ce0-a383-b2c9ca4f45bb

After:


https://github.com/user-attachments/assets/4fba4173-5f01-4220-990a-65820ac40cf5

Release Notes:

- Improved "Expand Excerpt Down" so the button stays in place, allowing
rapid expansion without moving the mouse.

Smit Barmase created

84a8d48 vim: Fix `space` not handling non-ascii characters (#27053)

Click to expand commit body
Closes #26806

Changes: Clips the new point with `Bias::Right` like in
`saturating_right`

Release Notes:

- vim: Fixed `space` not handling non-ascii characters

5brian created

ac5dafc Start tracking edits performed by the agent (#27064)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>

Antonio Scandurra , Danilo Leal , and Agus Zubiaga created

23686aa debugger: Do not use Disclosure for attach button (#27068)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

3874d31 assistant2: Adjust text and padding alignment between messages (#27067)

Click to expand commit body
Ensuring that text between the "you" messages align with text in the
assistant response. This also creates a nice subtle hierarchy effect
where the "you" message card is wider than the message, making it
slightly easier to tell them apart.

<img
src="https://github.com/user-attachments/assets/616c1776-ca51-454e-9d52-e480bf26c843"
width="600px" />

Release Notes:

- N/A

Danilo Leal created

1d33bfd assistant edit tool: Replace with flexible indentation (#27039)

Click to expand commit body
Sometimes the model produces SEARCH queries that don't match the
indentation of the source file exactly.

When we can't find an exact match, we'll now attempt to match the lines
while being more flexible about the leading whitespace as long as all
lines are consistently offset from the source, and extend the leading
whitespace in the REPLACE string accordingly.

Release Notes:

- N/A

Agus Zubiaga created

9377ef9 feature_flags: Do not enable feature flags by default in dev builds (#27065)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

c3b5046 editor: Do not use breakpoint color for run indicators (#27063)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

44fff08 util: Include path to asset in panic message from asset_str (#27059)

Click to expand commit body
Somebody on Discord ran into issues with running the debugger which goes
down to an unwrap in asset_str. Let's print a path that was accessed.

Release Notes:

- N/A

Piotr Osiewicz created

d4daa0a Show debug console evaluation response (#27050)

Click to expand commit body
We weren't incrementing the output token when getting responses from the
debug evaluation request which caused some output to not be displayed.
(Usually the evaluation response, but that could cascade into other
output events not showing)


Release Notes:
- N/A

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

Anthony Eid , Remco Smits , and Max Brunsfeld created

81582cd Don't render breakpoint indicators on top of expand arrows (#27048)

Click to expand commit body
Closes #ISSUE

cc @Anthony-Eid. One thing I noticed while doing this is that we do an
invalid cast here from DisplayPoint.row to MultiBufferRow. These are not
the same if you have soft-wrap enabled (or anything else in the display
map that's not in the editor).

Release Notes:

- N/A

Conrad Irwin created

0f5a3af Support built-in Zed prompts for all platforms (#26201)

Click to expand commit body
This pull request does two things:

1. Adds a setting to force Zed to use the built-in prompts, instead of
the system provided ones. I've personally found the system prompts on
macOS often fail to respond to keyboard input, are slow to render
initially, and don't match Zed's style.
2. Makes the previously Linux-only Zed provided prompts available to
everybody using the above setting.

Release Notes:
- Added support for a built-in prompting system, regardless of platform.
Use the new `use_system_prompts` setting to control whether to use the
system provided prompts or Zed's built-in system. Note that on Linux,
this setting has no effect, as Linux doesn't have a system prompting
mechanism.

Ryan Hawkins created

382f9f6 language_tools: Fix buffer search keeping focusing when pressing enter in vim mode (#26266)

Click to expand commit body
Closes #25643 

Release Notes:

- Fixed buffer search keep focus when pressing enter in vim mode

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

CharlesChen0823 and Conrad Irwin created

15d2420 `workspace::Open`: Fix trapped cursor/selection on update (#25402)

Click to expand commit body
Closes #ISSUE

Issue: Selection index does not reset when the matches update, which can
lead to the selection getting trapped when that index does not exist in
the next matches.


https://github.com/user-attachments/assets/d3fab23f-750c-47fb-bd3b-a0c42f214c83

This is in workspace::Open with   "use_system_path_prompts": false

Release Notes:

- N/A

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

5brian and Conrad Irwin created

026c727 workspace: Add function to save new file in directory nearest tab (#22563)

Click to expand commit body
Closes #15685

Release Notes:

- save new file in directory neasrest tab

---------

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

CharlesChen0823 and Conrad Irwin created

1aefa51 Move "async move" a few characters to the left in cx.spawn() (#26758)

Click to expand commit body
This is the core change:
https://github.com/zed-industries/zed/pull/26758/files#diff-044302c0d57147af17e68a0009fee3e8dcdfb4f32c27a915e70cfa80e987f765R1052

TODO:
- [x] Use AsyncFn instead of Fn() -> Future in GPUI spawn methods
- [x] Implement it in the whole app
- [x] Implement it in the debugger 
- [x] Glance at the RPC crate, and see if those box future methods can
be switched over. Answer: It can't directly, as you can't make an
AsyncFn* into a trait object. There's ways around that, but they're all
more complex than just keeping the code as is.
- [ ] Fix platform specific code

Release Notes:

- N/A

Mikayla Maki created

7f2e3fb Fix git stage race condition with delayed fs events (#27036)

Click to expand commit body
This PR adds a failing test `test_staging_hunks_with_delayed_fs_event`
and makes it pass

Also skips a queued read for git diff states if another read was
requested (less work)

This still doesn't catch all race conditions, but the PR is getting long
so I'll yield this and start another branch

Release Notes:

- N/A

João Marcos created

68a5728 assistant edit tool: Improve bad search output (#27012)

Click to expand commit body
When we failed to match a search string, we were reporting the replace
string as not found, this confuses the model and can make it go into a
doom loop. This PR fixes that improves the error output in general to
help it recover faster.

Release Notes:

- N/A

Agus Zubiaga created

c042a02 debugger: First slight pass at UI (#27034)

Click to expand commit body
- Collapse Launch and Attach into a single split button
- Fix code actions indicator being colored red.

Release Notes:

- N/A

Piotr Osiewicz created

73ac3d9 nix: Fix LDFLAGS rpath (#26912)

Click to expand commit body
By default stdenv strips all unused rpaths, but we use a few libraries
that are `dlopen`'d so we need to stop it from removing those. The
[`dontPatchELF`
flag](https://ryantm.github.io/nixpkgs/stdenv/stdenv/#var-stdenv-dontPatchELF)
disables that and makes the nix build work on wayland again.

Fix #26905
Close #26864

Release Notes:

- N/A

Julia Ryan created

2269f99 Add more shortcuts for delete/restore in Git Panel (#27004)

Click to expand commit body
Release Notes:

- N/A

Peter Tripp created

e9033a7 assistant2: Remove unneeded debug logging (#27030)

Click to expand commit body
This PR removes the debug logging added in
https://github.com/zed-industries/zed/pull/23722, as we no longer need
it.

Release Notes:

- N/A

Marshall Bowers created

a2ae6a1 assistant2: Add tool lists for each context server (#27029)

Click to expand commit body
This PR updates the list of context servers with the ability to view the
tools provided by the context server:

<img width="1394" alt="Screenshot 2025-03-18 at 5 53 05 PM"
src="https://github.com/user-attachments/assets/4ffe93dd-f9e9-44e7-877f-656ebf45a326"
/>

Release Notes:

- N/A

Marshall Bowers created

985ac4e gpui: Reduce `window.refresh` to improve cache hit of the cached views (#25009)

Click to expand commit body
Release Notes:

- Improved performance when using the scroll wheel and some other mouse
interactions.

Based on some cache details about GPUI `AnyView::cached` that I found in
the discussion of
https://github.com/zed-industries/zed/discussions/24260#discussioncomment-12135749,
and combined with the optimization points found in actual applications.

This change may have some scenarios that I have not considered, so I
just make a draft to put forward my ideas first for discussion.

From my analysis, `AnyView::cached` will always invalid by Div's mouse
events, because of it called `window.refresh`. I understand that (mouse
move event) this is because the interface changes related to hover and
mouse_move will be affected style, so `window.refresh` is required.
Since Div does not have the `entity_id` of View, it is impossible to
know which View should be refreshed, so the entire window can only be
refreshed.

With this change, we can reduce a lot of `render` method calls on
ScrollWheel or Mouse Event.

Jason Lee created

89ae4ca Fix debugger docs a bit (#27026)

Click to expand commit body
Tried adding a custom debugging tasks to discover two more required
properties missing from the docs.

Release Notes:

- N/A

Kirill Bulatov created

1d4afe6 assistant2: Add context server list to configuration view (#27028)

Click to expand commit body
This PR adds a context server list to the configuration view in
Assistant2:

<img width="1394" alt="Screenshot 2025-03-18 at 5 26 23 PM"
src="https://github.com/user-attachments/assets/58bf3920-1e35-4cb8-a32a-5ae9f98ce387"
/>

Release Notes:

- N/A

Marshall Bowers created

777c88b Clean up community_release_actions file (#27027)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

959a024 Omit `json-language-server` from the `scope_opt_in_language_servers` (#27023)

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

After that PR, settings.json stopped giving completions when `"` was
typed as a key:

https://github.com/user-attachments/assets/5ff03863-024c-4c28-a7cd-8ef48a1695d8

This goes down to 


https://github.com/zed-industries/zed/blob/fb12863999e601c4ffc9afbded036e4f1f064369/crates/language/src/language.rs#L1736-L1748

which was empty before the PR, hence leading to lower `true` branch.
Now, when typing `"`, there's no scope according to 


https://github.com/zed-industries/zed/blob/fb12863999e601c4ffc9afbded036e4f1f064369/crates/project/src/lsp_store.rs#L4529-L4532

return result.

Removing `json-language-server` from `scope_opt_in_language_servers`
seems to preserve the `:` fix and restore the completions behavior.


Release Notes:

- N/A

Kirill Bulatov created

ed510b5 Remove unused AssistantThreadFeedback event (#27021)

Click to expand commit body
It looks like:

- https://github.com/zed-industries/zed/pull/26780

accidentally added a new event type, `AssistantThreadFeedback`, using
the old event system, that it didn't end up actually using, as the code
actually relies on using the newer (preferred) `telemetry::event!()`.

Release Notes:

- N/A

Joseph T. Lyons created

674c572 ci: Run stalebot checks multiple times to ensure completion (#27017)

Click to expand commit body
Stalebot has a maximum operations-per-run which is set at 1000. As a
result it may require multiple runs to successfully complete.

This morning it took [three
runs](https://github.com/zed-industries/zed/actions/runs/13921563707/attempts/1)
so set it to run three times two hours apart to avoid hitting github API
limits.

Release Notes:

- N/A

Peter Tripp created

4a39fc2 gpui: Provide workaround for AMD Linux driver bug (#26890)

Click to expand commit body
There apparently is some amdgpu/radv bug that rendering with
multisample anti-aliasing (MSAA) results in a crash when the bounds
of a triangle list exceed 1024px, which in Zed happens with the default
buffer font size when you select a line with more than 144 characters.

This crash has been reported as #26143.

This commit introduces a workaround: you can set the
ZED_PATH_SAMPLE_COUNT=0
environment variable to disable MSAA and the error message we print
when a GPU crash is encountered with radv now suggests trying this
environment
variable as a workaround and links the respective issue.

Sidenote: MSAA was introduced in
f08b1d78ec1655a56b07c5efcd74d225d2a4b7d5
so you didn't run into this driver bug with versions < 0.173.8.

Release Notes:

- Added a workaround for an AMD Linux driver bug that causes Zed to
crash when selecting long lines.

Martin Fischer created

48fe134 assistant edit tool: Create file when search/replace is empty (#27009)

Click to expand commit body
We used to fail when this happened, but we saw the model use it as a way
to create empty files, which makes sense.

Release Notes:

- N/A

Agus Zubiaga created

22b8662 Fix syntax highlighting of git commit messages (#26988)

Click to expand commit body
- Load syntax colors into commit message editors
- Fix name mismatches that were preventing the git commit grammar and
language config from being matched up

Release Notes:

- Fixed git commit messages not being syntax-highlighted

Cole Miller created