Commit log

55c1f9d Debugger: Switch Breakpoint Anchor from left to right (#27688)

Click to expand commit body
This fixes an edge case where some breakpoints would not render
correctly when expanding a conflict git hunk.

## Before 


https://github.com/user-attachments/assets/4fd75ef6-8381-4f9e-9765-5eeb3a734df0

## After


https://github.com/user-attachments/assets/b2b49894-2dc2-42ba-8038-504a1b4c2665


Release Notes:

- N/A

Co-authored-by: Conrad <conrad@zed.dev>

Anthony Eid and Conrad created

28f0ba3 Debugger: Basic breakpoint improvements (#27687)

Click to expand commit body
This PR does three things

- Right clicking within the gutter outside of the gutter fold area
bounds opens a breakpoint context menu
- Disabled breakpoints are now outline with the debugger accent color
instead of being fully colored at half opacity
- Clicking a breakpoint acts differently now
- Clicking a breakpoint while holding the platform modifier key will
disable/enable it
- Clicking a breakpoint hint while holding the platform modifier key
will set a disabled breakpoint
- Clicking a disabled breakpoint will enable it instead of deleting it

Release Notes:

- N/A

Anthony Eid created

b5dc09c Remove unneeded anonymous lifetimes from `gpui::Context` (#27686)

Click to expand commit body
This PR removes a number of unneeded anonymous lifetimes from usages of
`gpui::Context`.

Release Notes:

- N/A

Marshall Bowers created

e90411e gpui: Remove unneeded anonymous lifetime from `Render::render` (#27684)

Click to expand commit body
This PR removes an unneeded anonymous lifetime from the `cx` parameter
to `Render::render`.

This makes it so the anonymous lifetime doesn't show up when
implementing the `Render` trait via a code action:

#### Before

```rs
struct Foo;

impl Render for Foo {
    fn render(&mut self, window: &mut Window, cx: &mut Context<'_, Self>) -> impl IntoElement {
        todo!()
    }
}
```

#### After

```rs
struct Foo;

impl Render for Foo {
    fn render(&mut self, window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
        todo!()
    }
}
```

Release Notes:

- N/A

Marshall Bowers created

fcadcbb assistant2: Make context pills clickable (#27680)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

94ed0b7 Allow reviewing of agent changes without Git (#27668)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

8a307e7 Switch fully to Rust Livekit (redux) (#27126)

Click to expand commit body
Swift bindings BEGONE

Release Notes:

- Switched from using the Swift LiveKit bindings, to the Rust bindings,
fixing https://github.com/zed-industries/zed/issues/9396, a crash when
leaving a collaboration session, and making Zed easier to build.

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Michael Sloan <michael@zed.dev>

Mikayla Maki , Conrad Irwin , and Michael Sloan created

c8fb95c assistant2: Add keybinding for profile selector (#27674)

Click to expand commit body
This PR adds a keybinding to toggle the profile selector.

Defaults to `Cmd-I` on macOS and `ctrl-I` on Linux/Windows.

Release Notes:

- N/A

Marshall Bowers created

55d934a Show tool name for Unknown tool (#27667)

Click to expand commit body
Right now we can't see what tool name the model was trying to run.

Release Notes:

- N/A

Richard Feldman created

a916bbf assistant2: Add support for referencing symbols as context (#27513)

Click to expand commit body
TODO

Release Notes:

- N/A

Bennet Bo Fenner created

da47013 assistant2: Agent notification improvements (#27638)

Click to expand commit body
- Show thread's summary in notification title
- Improve thread's summary prompt so it's more descriptive
- Make whole notification clickable


![image](https://github.com/user-attachments/assets/f29da109-f16e-40af-bb43-0882403535c5)

Release Notes:

- N/A

Agus Zubiaga created

82ce187 Preserve newlines in release notes email (#27670)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

e843790 assistant2: Rework profile list (#27669)

Click to expand commit body
This PR reworks the profile list to make it match the designs more
closely:


https://github.com/user-attachments/assets/3cd9cad4-771c-4231-ba9b-ddca72ff617c

We're no longer using a `Picker` and are instead using a custom
navigable list.

Also added an option to add a new profile.

Release Notes:

- N/A

Marshall Bowers created

83f3fbf assistant2: Add header to fork profile modal (#27666)

Click to expand commit body
This PR adds a header to the fork profile view in the profile management
modal:

<img width="575" alt="Screenshot 2025-03-28 at 10 29 10 AM"
src="https://github.com/user-attachments/assets/8c0012e5-3297-4ba6-9603-0364f5b6f3b7"
/>

Release Notes:

- N/A

Marshall Bowers created

60a7455 assistant2: Don't scroll down if user has scrolled up (#27614)

Click to expand commit body
This caused undesirable and unnecessary scrolling, in that if you scroll
up, then as new messages stream into the panel, they jump the scroll bar
back down.

@agu-z and I paired on this and we think this is unnecessary now that we
don't see the Edit button in the UI, but @bennetbo we still see code for
the button in there, so...maybe we do still want this? (If so, we can
revert the second commit and go back to a more conditional way of
scrolling. 😄)

Release Notes:

- N/A

---------

Co-authored-by: Agus <agus@zed.dev>

Richard Feldman and Agus created

4315b2f assistant2: Reload profile when making changes to the active profile's tools (#27664)

Click to expand commit body
This PR makes it so the profile is reloaded when making changes to the
active profile's tools.

Release Notes:

- N/A

Marshall Bowers created

68d453d assistant: Remove `/search` (#27661)

Click to expand commit body
This PR removes the `/search` command.

This was feature-flagged and was never released to the general public.

Release Notes:

- N/A

Marshall Bowers created

20eab90 assistant: Remove `/project` (#27660)

Click to expand commit body
This PR removes the `/project` command.

This was feature-flagged and was never released to the general public.

Release Notes:

- N/A

Marshall Bowers created

a201263 storybook: Fix `auto_height_editor` story (#27653)

Click to expand commit body
This is a fix for this error when trying to run `auto_height_editor`
story:

```sh
thread 'main' panicked at C:\Users\x\dev\zed\crates\settings\src\settings_store.rs:363:32:
unregistered setting type workspace::workspace_settings::WorkspaceSettings
```

Release Notes:

- N/A

loczek created

1a4ba59 docs: Fix `#windows` Discord channel name (#27659)

Click to expand commit body
This PR fixes the name of the `#windows` Discord channel to match what
the channel is actually called.

Release Notes:

- N/A

Marshall Bowers created

24ad970 language server: Fix restarts sometimes not working for buffers open in go-to-definition view (#27655)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Fixed language server restarts sometimes not restarting a language
server.

Piotr Osiewicz created

f6c81a0 assistant2: Unify path rendering for file context (#27537)

Click to expand commit body
This ensures that we render path matches the same in both the file
context picker and the messag editor completion provider.

Release Notes:

- N/A

Bennet Bo Fenner created

7ac51e4 project: Add tests for more cases in LSP completions (#27650)

Click to expand commit body
This PR adds two more cases to existing LSP completion cases.

- When text_edit exists:  (New test)
   1. we use text_edit, over insert_text and label

- When edit range exists (and text_edit is None):  (New test)
   1. insert_text is used over label if exists
   2. label is used otherwise

- When not edit range exists (and text_edit is None):  (Existing test)
   1. insert_text is used over label if exists
   2. label is used otherwise

Release Notes:

- N/A

Smit Barmase created

c810586 Update docs to include Windows JD (#27649)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

mslzed created

9f72e05 windows: Fix extension uninstall (#18467)

Click to expand commit body
Closes #18153


When calling `uninstall_extension`, the `work_dir` associated with this
`extension` doesn't have its corresponding `FileHandle` properly closed,
preventing the deletion of the `work_dir`. As seen in the image below,
after installing the `toml` extension, `zed.exe` holds two `Handle`s for
the folder `C:\Users\36477\AppData\Local\Zed\extensions\work\toml`.

![Screenshot 2024-09-27
171149](https://github.com/user-attachments/assets/f75f3f6f-9a62-43b5-9450-73ee1ed8e7f9)


Therefore, after deleting `extension_dir` and then calling
`this.update(...)`, `zed.exe` releases these two `Handles`, and only
then can the folder
`C:\Users\36477\AppData\Local\Zed\extensions\work\toml` be deleted. See
the corresponding file handles are closed after calling
`this.update(...)`:

![Screenshot 2024-09-28
132823](https://github.com/user-attachments/assets/476e0494-850a-4af5-b351-899e60ae98f7)

However, if there is a running server of the extension, the error will
persist. At this point, I haven’t found a direct way to terminate all
running servers of the extension. Since this feature might affect the
`LspStore` structure, I paused my work here.


See when `toml` extension is running, we can not delete
`C:\Users\36477\AppData\Local\Zed\extensions\work\toml` since
`C:\Users\36477\AppData\Local\Zed\extensions\work\toml\taplo.exe` is
still running:

![Screenshot 2024-09-28
134709](https://github.com/user-attachments/assets/6801d6e2-2a44-4103-8570-467c507e6e20)



cc @ConradIrwin You're the expert in this area—what are your thoughts?



Release Notes:

- N/A

张小白 created

bb15f4c assistant2: Fix tool picker appearance inside modal (#27635)

Click to expand commit body
This PR fixes the tool picker appearance now that there is a header.

Release Notes:

- N/A

Marshall Bowers created

dc60040 bedrock: Support DeepSeek r1 (#27495)

Click to expand commit body
Release Notes:

- Added support for DeepSeek R1 hosted on AWS Bedrock.

---------

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

Shardul Vaidya and Marshall Bowers created

2863bd1 icons: Remove `ZedAssistant2` icon (#27634)

Click to expand commit body
This PR removes the `ZedAssistant2` icon.

I went to use it as a placeholder icon, but noticed that the icon wasn't
loaded properly due to a name mismatch.

However, since we aren't using it anywhere I'm opting to remove it.

Release Notes:

- N/A

Marshall Bowers created

f1ce83b context_server: Only look for context server project settings in visible worktrees (#27633)

Click to expand commit body
This PR fixes an issue where we were looking for context server project
settings in _all_ worktrees, not just visible ones.

This meant that if you had a single file worktree open (e.g.,
`settings.json`) this could impact whether context servers defined in
project settings would load.

Release Notes:

- Fixed an issue where context servers defined in project settings would
not be respected in some scenarios.

Co-authored-by: Wilhelm Klopp <wil.klopp@gmail.com>

Marshall Bowers and Wilhelm Klopp created

edc7d73 Set cache breakpoint on second-to-last message (#27632)

Click to expand commit body
Here's a sample `dbg!` of token usage after this change, for a small
agent thread:

```
[crates/assistant2/src/thread.rs:1092:25] &usage = TokenUsage {
    input_tokens: 5354,
    output_tokens: 184,
    cache_creation_input_tokens: 0,
    cache_read_input_tokens: 0,
}
[crates/assistant2/src/thread.rs:1092:25] &usage = TokenUsage {
    input_tokens: 54,
    output_tokens: 132,
    cache_creation_input_tokens: 5518,
    cache_read_input_tokens: 0,
}
[crates/assistant2/src/thread.rs:1092:25] &usage = TokenUsage {
    input_tokens: 54,
    output_tokens: 113,
    cache_creation_input_tokens: 166,
    cache_read_input_tokens: 5518,
}
[crates/assistant2/src/thread.rs:1092:25] &usage = TokenUsage {
    input_tokens: 291,
    output_tokens: 181,
    cache_creation_input_tokens: 147,
    cache_read_input_tokens: 5684,
}
```

Release Notes:

- N/A

Richard Feldman created

4839195 debugger: Remove fake adapter and un-gate GDB (#27557)

Click to expand commit body
This is a clean-up PR in anticipation of introduction of Debugger
Registry. I wanna get rid of DebugAdapterKind (or rather, it being an
enum).
Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Anthony <anthony@zed.dev>

Piotr Osiewicz , Anthony Eid , and Anthony created

56eb650 Add Batch tool call for calling multiple tools (#27621)

Click to expand commit body
<img width="620" alt="Screenshot 2025-03-27 at 2 29 13 PM"
src="https://github.com/user-attachments/assets/dd023507-61bc-4722-a095-f65f4b6c746a"
/>

We'll iterate on the UI, but first the goal is to just get it to work at
all so we can see if it's useful in terms of getting correct output
faster.

Release Notes:

- N/A

---------

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

Richard Feldman and Agus Zubiaga created

61be869 Add Open Tool (#27499)

Click to expand commit body
I've seen models try to run `open` in Bash. This is a cross-platform
version of that.

<img width="634" alt="Screenshot 2025-03-26 at 10 27 40 AM"
src="https://github.com/user-attachments/assets/b18cb50f-6e2f-4770-b15c-1040916a420a"
/>

Release Notes:

- N/A

Richard Feldman created

7537f05 Automatically hide "View Panel" notification after refocusing Zed (#27512)

Click to expand commit body
Now if you refocus Zed manually (e.g. cmd-tab), we hide the "View Panel"
notification automatically.

This also fixes a related subscription leak.

Release Notes:

- N/A

Richard Feldman created

85740dd Make serialization backwards-compatible for collab server (#27626)

Click to expand commit body
Sets up the collab server to accept the format of system message that
we'll introduce later for [prompt
caching](https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching).

Release Notes:

- N/A

Richard Feldman created

6550a96 editor: Remove gap between gutter and horizontal scrollbar track (#24887)

Click to expand commit body
Longer write-up, sorry if this got a bit too long.

This PR removes a small gap between the editor gutter and the horizontal
scrollbar, if present, by stretching the scrollbar track the entire
witdth of the editor.


https://github.com/user-attachments/assets/d5c18b03-d1ff-4d48-a3da-5d0fb80ee967

This gap which can be seen in the bottom left of the video can cause
bugs when interacting with it using the cursor, as accidentally clicking
on it would trigger a vertical scroll instead of dragging the horizontal
scroll. Also for cases where themes provide a non-transparent scrollbar
track background, which can be seen in the video, the small gap is
visible whilst scrolling horizontally.

This gap is present because the horizontal editor scrollbar is layouted
based upon the `content_origin`, which offsets the whole layout by the
horizontal gutter margin to the right. However, the scrollbar should be
layouted based upon the editor text bounds to be properly painted over
the entire editor text hitbox.

Here are some comparison images with `scrollbar.track.background` and
`gutter.background` set to red for visibility.

| | Current `main` | With this change | 
| - | - | - |
| Default position / Fully scrolled to the left | <img width="842"
alt="left_main"
src="https://github.com/user-attachments/assets/8b053fc8-5271-4b58-8404-dcabf49bf702"
/> | <img width="842" alt="left_fix"
src="https://github.com/user-attachments/assets/459df723-05d5-4813-a6a4-038f7d662495"
/> |
| Scrolled to the right | <img width="216" alt="scroll_main"
src="https://github.com/user-attachments/assets/9c1fcc0d-fbb4-49af-9645-f258f5a7217b"
/> | <img width="216" alt="scroll_fix"
src="https://github.com/user-attachments/assets/8dd2e585-7802-415b-a05a-fb40a882323e"
/> |

---

#### Small downsight of this approach

Currently, the scrollbar thumb aligns with the indent guides if the
editor is fully scrolled to the left and the track background is
transparent. This is because the indent guides are layouted according to
the content margin.
With this change, however, the scrollbar thumb will shift a few pixels
to the left and will overlap the indent guides if present.

| Current `main` | With this change |
| - | - |
| <img width="295" alt="cur_indent"
src="https://github.com/user-attachments/assets/92753951-6f35-4c39-94eb-21c445f8d2f5"
/> | <img width="381" alt="fix_indent"
src="https://github.com/user-attachments/assets/899d945c-49f8-4117-bc48-52501d55cc33"
/> |

To circumvent this, the scrollbar thumb could be layouted with a small
offset so that the thumb aligns properly with the indent guides whilst
the scrollbar track spans the whole editor width. This would lead to
some questions on how to account for the gap during layouting and
dragging of the thumb though, but might work for a gap that small. Happy
to implement this fix, should that be preferred 😄

(VSCode does not have the indent guide issue, as they do not layout the
text in the editor with any offset unlike Zed does)

Release Notes:

- Removed a small gap between the editor gutter and horizontal
scrollbar.

Finn Evers created

93c0056 git: Display author not committer in git popover (#27628)

Click to expand commit body
Display Author name/email instead of Committer name/email in git
popover.

Closes https://github.com/zed-industries/zed/issues/27625

Prior to v0.173.x, Zed displayed Author name. Regression introduced in:
- https://github.com/zed-industries/zed/pull/24593

Release Notes:

- git: Switch to displaying Git author instead of Git committer in Git
Blame popover.

Peter Tripp created

84dd236 project: Fix LSP completion to use `insertText` when constructing default edits (#27630)

Click to expand commit body
Closes #25761 #21603

When `text_edit` is not available we directly fallback to to `label`.
That means, when we have range to replace, we never use `insertText` and
only use it when we haven't found any range.

This PR fixes, this and uses `insertText` as fallback first, and then
`label`.

Release Notes:

- Fixed an issue where accepting LSP snippet completion would insert the
label instead of expanding the snippet.

Smit Barmase created

8e12eb0 keymap: Detect and report errors for uppercase keybindings (#27558)

Click to expand commit body
Closes #25353

Detect keybindings using upper case instead of lowercase, and report an
error

Release Notes:

- N/A

Ben Kunkle created

3b15846 assistant2: Add support for forking existing profiles (#27627)

Click to expand commit body
This PR adds support for forking existing profiles from the manage
profiles modal.


https://github.com/user-attachments/assets/5fa9b76c-fafe-4c72-8843-576c4b5ca2f2

Release Notes:

- N/A

Marshall Bowers created

12a8b85 Fix Terminal theming issue with background/foreground text (#27617)

Click to expand commit body
- Closes: https://github.com/zed-industries/zed/issues/27427

Release Notes:

- terminal: Fixed an issue where editor theme colors (`text`,
`background`) were incorrectly being uses instead of terminal theme
colors (`terminal.{foreground,background}`)

Peter Tripp created

d35f5a4 Opt-in to markdown parser options and check all options were considered (#27623)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

1f5d57b assistant2: Add docs to the `notify_when_agent_waiting` setting (#27622)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

ca9fb23 Prevent `toggle_dock` from opening assistant panel when it is disabled via settings (#27215)

Click to expand commit body
Part of #27171

Follows-up the change in
https://github.com/zed-industries/zed/pull/22346 to consider the case
where the assistant-panel is disabled via settings (as also noted in
[this
comment](https://github.com/zed-industries/zed/pull/22346#issuecomment-2558372412),
Notably, only the explicit case is considered here. Can extend this
change to also cover the implicit case where the button is disabled if
requested.).

Currently, if the user toggles the right dock, the assistant panel will
be shown even if it is disabled via settings, because it has the highest
priority (see
https://github.com/zed-industries/zed/pull/22346#issuecomment-2564890493).
With this change, the assistant panel is no longer activated when
disabled and the dock with the next highest activation order is
activated instead.

I did not opt in to make the priority configurabe, as I agree with
https://github.com/zed-industries/zed/pull/22346#issuecomment-2564890493
that this will most likely rarely be used (the active panel is only none
on the first toggle of the dock, afterwards it remains set for the
remainder of the session).

Release Notes:

- `workspace::ToggleRightDock` will no longer open the assistant panel
when it is disabled via settings.

Finn Evers created

a360365 tsx: Insert newline between open and close tags on enter (#27618)

Click to expand commit body
Release Notes:

- Added support for automatically inserting a newline when hitting enter
between opening and closing tags in JSX/TSX

Ben Kunkle created

df6ee1f assistant2: Add adjustments to OS notification (#27615)

Click to expand commit body
This PR hardcodes the font size for the OS notification and adjusts the
copywriting on the `DoneStreaming` scenario.

1. Reason for the former change is because notifications always have a
fixed width and height, so any responsive design strategy here wouldn't
fully work.
2. Reason for the latter is because when the assistant response is done
streaming, that _can_ mean "changes have been applied" (previous label)
but it can also not mean that. So, I'm making it more generic now.

Release Notes:

- N/A

Danilo Leal created

fc99557 Explicitly prefer find-replace over edit-files (#27503)

Click to expand commit body
`edit-files` is still enabled for now, but this makes it less likely to
be used.

Release Notes:

- N/A

Richard Feldman created

52c1e00 Allow Bash tool to Just Work with more `cd` inputs (#27501)

Click to expand commit body
Release Notes:

- N/A

Richard Feldman created

6ead57d assistant2: Fix navigation between states in manage profiles modal (#27613)

Click to expand commit body
This PR fixes the navigation between states in the manage profiles
modal, specifically around dismissal.

Release Notes:

- N/A

Marshall Bowers created

4a10a0c feature_flags: Remove `predict-edits-non-eager-mode` feature flag (#27610)

Click to expand commit body
This PR removes the `predict-edits-non-eager-mode` feature flag.

The feature is shipped, and we aren't referencing the flag anywhere
anymore.

Release Notes:

- N/A

Marshall Bowers created