Commit log

9205980 find-replace tool: Return diff in output (#27868)

Click to expand commit body
This should help the model maintain an accurate picture of the file as
it makes changes

Release Notes:

- N/A

Agus Zubiaga created

5880271 language_model: Add `supports_tools` method to `LanguageModel` (#27867)

Click to expand commit body
This PR adds a new `supports_tools` method to the `LanguageModel` trait
to indicate whether a given model supports tool use.

Release Notes:

- N/A

Marshall Bowers created

4ff07bf Fix restore button (#27866)

Click to expand commit body
ID collision!

Release Notes:

- N/A

Cole Miller created

b59967b Don't allow open excerpts in commit view for now (#27862)

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

Release Notes:

- N/A

Max Brunsfeld created

133d3f0 assistant2: Update some text to use "agent" nomenclature (#27864)

Click to expand commit body
This PR updates some text in the Agent Panel to use the "agent"
nomenclature.

Release Notes:

- N/A

Marshall Bowers created

0934cb5 Don't prompt twice when trashing added files from git panel (#27863)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Cole Miller created

bda33ec vim: Fix space forward bug with non-ASCII characters at EOL (#27860)

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

Fixes issue with right wrapped movement when a multi-byte character is
at the end of the line. This is done by grabbing the last character on
the current row and using that characters size to calculate the
`max_column` variable, which is used to decide if the next right
movement should move down the line or not.

We did notice a bit of code that could be an issue that we wanted to
call out.
[Here](https://github.com/zed-industries/zed/blob/main/crates/editor/src/display_map.rs#L1070)
inside of `clip_at_line_end` it also does a saturating_sub(1), assuming
a single byte character. We didn't run into any issues due to this line
but felt like a similar bug. We can apply a similar fix if wanted to
pose the question first.

Test case: Moving to next line when eol is a multi-byte character


https://github.com/user-attachments/assets/1021ab1f-f49d-4986-8f9a-8cfc7e5c91bc


Release Notes:

- Fixed issue in vim forward spacing when a multi-byte character is at
the eol

---------

Co-authored-by: KyleBarton <kjbarton4@gmail.com>

Peter Finn and KyleBarton created

64ef3ab ui: Introduce Banner component (#27853)

Click to expand commit body
This PR adds a new, generic `Banner` component so that we can
potentially replace the multiple, isolated implementations of it
throughout some places of the app.

<img
src="https://github.com/user-attachments/assets/a268f745-1747-48e6-9461-2732eb7c0be4"
width="750"/>

Release Notes:

- N/A

Danilo Leal created

ac5a2b2 python: Add recognition of worktree -> venv links (#26759)

Click to expand commit body
Python envs created with virtualenvwrapper have the ability to link to
the project directory (via the `.project` file in the virtualenv).
`python-environment-tools` supports this and reports the project path.

Additionally, some tools (e.g virtualfish) recognize special
"environment activation" files in project directories (`.venv` by
default)
[1].

Use the above information to sort reported Python toolchains so that the
correct env for a given worktree is at the top.

[1]
https://virtualfish.readthedocs.io/en/latest/plugins.html#auto-activation-auto-activation

Release Notes:

- python: Improved detection of virtualenvwrapper environments in work
trees

Elvis Pranskevichus created

ada8b0f Show commit author, not committer (#27856)

Click to expand commit body
Release Notes:

- Fixed a bug where the git panel displayed a commit's committer in
place of its author.

Max Brunsfeld created

7687105 Preserve cursor position when resetting excerpts (#27850)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Antonio Scandurra , Nathan Sobo , and Conrad Irwin created

f859b32 assistant2: Use "Agent Panel" nomenclature for panel tooltip (#27858)

Click to expand commit body
This PR updates the Agent Panel tooltip in the status to use "Agent
Panel" instead of "Assistant Panel".

Also changes the name we use in workspace serialization.

Release Notes:

- N/A

Marshall Bowers created

e63df58 assistant2: Rename key context to `AgentPanel` (#27859)

Click to expand commit body
This PR renames the key context for the Agent Panel from
"AssistantPanel2" to "AgentPanel".

Release Notes:

- N/A

Marshall Bowers created

0ad4656 assistant_settings: Show JSON schema for profile settings (#27855)

Click to expand commit body
This PR makes it so we include the `default_profile` and `profiles`
settings in the JSON schema.

This provides completions when editing the `settings.json`.

Release Notes:

- N/A

Marshall Bowers created

992831c workspace: Do not call set_active when deserializing a dock if that dock was not visible (#27852)

Click to expand commit body
This unblocks work on new debugger UI, where we don't want the
set_active function to be called unconditionally.

Release Notes:

- N/A

---------

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

Piotr Osiewicz and Anthony Eid created

7257053 Update docs for some settings (#27474)

Click to expand commit body
Fix incorrect defaults or descriptions and add missing content.

Release Notes:

- N/A

---------

Co-authored-by: Peter Tripp <peter@zed.dev>

Junseong Park and Peter Tripp created

feb1d37 assistant2: Allow clicking on `@mentions` (#27846)

Click to expand commit body
https://github.com/user-attachments/assets/f6f7c115-5c40-48f9-a099-2b691993967b

Release Notes:

- N/A

Bennet Bo Fenner created

12037dc assistant2: Allow profiles to enable all context servers (#27847)

Click to expand commit body
This PR adds a new `enable_all_context_servers` field to agent profiles
to allow them to enable all context servers without having to opt into
them individually.

The "Write" profile will now have all context servers enabled out of the
box.

Release Notes:

- N/A

Marshall Bowers created

ab31eb5 edit prediction: Show display mode options just for Zed (#27844)

Click to expand commit body
Eager and Subtle modes are only supported for Zed as an edit prediction
provider and they were visible if your provider is Copilot, which is
misleading.

Release Notes:

- N/A

Danilo Leal created

7d67bd4 assistant2: Remove check icon from successful tool calls (#27840)

Click to expand commit body
Just to streamline the UI more.

Release Notes:

- N/A

Danilo Leal created

a24fc5a Use pagination for GitHub issue response script (#27838)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

0079771 Use symmetric padding in signature popovers (#27734)

Click to expand commit body
Release Notes:

- Fixed padding issue with the signature popovers

------

Before:
<img width="372" alt="Screenshot 2025-03-29 at 20 30 39"
src="https://github.com/user-attachments/assets/36d1555d-bccb-4fca-b6ad-514cf11d024f"
/>

After:
<img width="375" alt="Screenshot 2025-03-29 at 20 31 13"
src="https://github.com/user-attachments/assets/6566d0e9-9dae-47dc-bfa0-526bf35f3cf0"
/>

Stanislav Alekseev created

d1db6d6 assistant2: Fix issue with included directories in context picker (#27833)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

5509e01 Return language model events when using Google model via zed.dev (#27831)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

8be5ed2 workspace: Fix SSH remote restore on second open + Fix panel not opening automatically on new SSH remote (#27830)

Click to expand commit body
Closes #26902

- We used to serialize SSH remote only when opened via recent entries,
and not on first time. This broke restore, when opening same folder for
second time from recent entries. Once opened for second time, restoring
used to. work correctly. This PR fixes this by serializing when opened
for first time.

- We didn't handle window replace post worktree creation in first time
flow, this resulted in project panel not opening automatically like it
does with recent entries, or local projects. This PR fixes it by
following same flow as recent entries.

Release Notes:

- Fixed SSH remote not restoring when opening for second time.
- Fixed project panel not opening when opening new SSH remote folder.

Smit Barmase created

5343f1c Undo a refactor of `buffer_path_log_err` (#27828)

Click to expand commit body
Accidentally included this in #27822

Release Notes:

- N/A

Michael Sloan created

8075c24 Debugger: Fix breakpoint serialization (#27825)

Click to expand commit body
This PR fixes two bugs that cause unexpected behavior with breakpoints.

The first bug made it impossible to delete the last breakpoint in a file
in the workspace's database. This caused deleted breakpoints to remain
in the database and added to new projects.

The second bug was an edge case in the breakpoint context menu where
disabling/enabling a breakpoint would sometimes set a new breakpoint on
top of the old breakpoint.


Release Notes:

- N/A

Anthony Eid created

d0276e6 Remove assistant `ContextSnapshot` (#27822)

Click to expand commit body
Motivation for this is to simplify the context types and make it cleaner
to add image context.

Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>

Michael Sloan and Nathan Sobo created

c729842 assistant2: Exclude deleted files from stale list (#27821)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

715e23a assistant2: Do not mention diagnostics until done (#27820)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

63f0fda Fix code actions tooltip overlapping with action context menu (#27809)

Click to expand commit body
Closes #27728

This stops code actions tooltip from being added when there's a visible
Editor::context_menu

Release Notes:

- Fix code actions tooltip opening on top of code actions menu

Anthony Eid created

7984f0f vim: Update `:set` (#27805)

Click to expand commit body
Update VimSet commands to better match the other commands by displaying
the leading `:`:

|Before|After|
|--|--|

|![image](https://github.com/user-attachments/assets/1bc21a06-e71f-4e40-90a7-ffdd903fd7b5)|![image](https://github.com/user-attachments/assets/df59279f-d454-4701-8330-2529506850cd)|


Release Notes:

- N/A

5brian created

37ebb47 Don't use `dbg!` in test input (#27811)

Click to expand commit body
It confuses me when I grep for dbg! :facepalm:

Release Notes:

- N/A

Conrad Irwin created

8546dc1 Allow viewing past commits in Zed (#27636)

Click to expand commit body
This PR adds functionality for loading the diff for an arbitrary git
commit, and displaying it in a tab. To retrieve the diff for the commit,
I'm using a single `git cat-file --batch` invocation to efficiently load
both the old and new versions of each file that was changed in the
commit.

Todo

* Features
* [x] Open the commit view when clicking the most recent commit message
in the commit panel
  * [x] Open the commit view when clicking a SHA in a git blame column
  * [x] Open the commit view when clicking a SHA in a commit tooltip
  * [x] Make it work over RPC
  * [x] Allow buffer search in commit view
* [x] Command palette action to open the commit for the current blame
line
* Styling
* [x] Add a header that shows the author, timestamp, and the full commit
message
  * [x] Remove stage/unstage buttons in commit view
  * [x] Truncate the commit message in the tab
* Bugs
  * [x] Dedup commit tabs within a pane
  * [x] Add a tooltip to the tab

Release Notes:

- Added the ability to show past commits in Zed. You can view the most
recent commit by clicking its message in the commit panel. And when
viewing a git blame, you can show any commit by clicking its sha.

Max Brunsfeld created

3391201 assistant2: Adjust icons for some tools (#27814)

Click to expand commit body
Picking more specific icons for a few tools.

Release Notes:

- N/A

Danilo Leal created

dce824f assistant2: Refine empty states design (#27812)

Click to expand commit body
| No LLM provider | Fresh Start | No ToS |
|--------|--------|--------|
| ![CleanShot 2025-03-31 at 7  04
17@2x](https://github.com/user-attachments/assets/aab5987c-1530-401d-acc6-65e4f2fc13b8)
| ![CleanShot 2025-03-31 at 7  04
39@2x](https://github.com/user-attachments/assets/b2c7a2e0-5178-4bcb-a917-da7bf8e6246c)
| ![CleanShot 2025-03-31 at 7  05
10@2x](https://github.com/user-attachments/assets/4a656e82-0e1d-4d11-8d34-8eeeadd4814c)
|

Release Notes:

- N/A

Danilo Leal created

a1bef28 keymap: Allow upper-case keys in keybinds (#27813)

Click to expand commit body
Reverts the error behavior introduced in #27558. Upper-case keys in
keybindings no longer generate errors, instead they are transformed into
`shift-{KEY}`
e.g. `ctrl-N` becomes `ctrl-shift-n`

The behavior introduced in #27558 where "special" keys such as function
keys, `control`, `shift`, etc. Are parsed case-insensitively is
preserved.

Release Notes:
- Improved how upper-case characters are handled in keybinds. "special"
keys such as the function keys, `control`, `shift`, etc. are now parsed
case-insensitively, so for example `F8`, `CTRL`, `SHIFT` are now
acceptable alternatives to `f8`, `ctrl`, and `shift` when declaring
keybindings. Additionally, upper-case (ascii) characters will now be
converted explicitly to `shift` + the lowercase version of the
character, to match the Vim behavior.
NOTE: Release notes above should replace the release notes from #27558

Ben Kunkle created

8a212be assistant2: Extract method for adding a new profile to the settings (#27810)

Click to expand commit body
This PR extracts a method for adding a new profile to the settings to
reduce the amount of code required inline.

Release Notes:

- N/A

Marshall Bowers created

9bbb1e5 nix: Remove special handling for livekit (#27801)

Click to expand commit body
Now that #27126 has landed, we can drop this from the nix shell which
has the side benefit that nix users don't actually need xcode installed
to develop zed anymore.

Release Notes:

- N/A

Julia Ryan created

50ad71a Bump cargo-bundle and cargo-about version in nix (#27803)

Click to expand commit body
We updated our cargo-bundle fork, and this adds to our override to make
sure we have the latest version.

cargo-about also released a new version upstream which was picked up in
nixpkgs, so I've `nix flake update`'d and changed that version as well.
Thanks to @niklaskorz for [pinging
me](https://github.com/NixOS/nixpkgs/pull/392319#issuecomment-2746122094)
about this. You should be able to drop the patch next time you update.

Release Notes:

- N/A

Julia Ryan created

76c46c5 assistant2: Correctly display context files outside project worktrees (#27806)

Click to expand commit body
We were displaying empty pills for files that weren't inside one of the
project worktrees

Release Notes:

- N/A

Agus Zubiaga created

8f0bacd vim: Hide mouse cursor on type (#27804)

Click to expand commit body
Closes #27639 

Release Notes:

- Fixed the mouse cursor not hiding while typing in Vim mode.

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

Smit Barmase and Conrad Irwin created

0514832 vim: Add :ls, :buffers (#27797)

Click to expand commit body
https://neovim.io/doc/user/windows.html#%3Abuffers

Not exactly the same, but i think the zed equivalent would be the tab
switcher

Release Notes:

- vim: Added `:ls` and `:buffers`

5brian created

27cafe5 vim: Add :options, :map (#27798)

Click to expand commit body
Add:
- [:options](https://neovim.io/doc/user/options.html#%3Aoptions) to open
default settings
- :map to open default vim keymap

These aren't exactly the same as vim but i think it's a good equivalent

For map:
I can't find the docs for :map with no arguments, since the map docs
only shows the command bindings, but it opens the key mapping in vim.

https://neovim.io/doc/user/vimindex.html

![image](https://github.com/user-attachments/assets/83aeebc4-e2e9-4818-890d-d307d5cee9b1)

Release Notes:

- vim: Added `:options` and `:map`

5brian created

ddc102c assistant_settings: Disable "Suggest Edits" in the `assistant2` feature flag (#27802)

Click to expand commit body
This PR disables the "Suggest Edits" feature when in the `assistant2`
feature flag.

This functionality has been superseded by the new Agent Panel.

We can remove the feature outright once the Agent Panel is generally
available.

Release Notes:

- N/A

Marshall Bowers created

d517a21 Debugger: Add conditional and hit conditional breakpoint functionality (#27760)

Click to expand commit body
This PR adds conditional and hit condition breakpoint functionality 

cc @osiewicz 

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

Release Notes:

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

---------

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

Anthony Eid and Remco Smits created

dc64ec9 chore: Bump Rust edition to 2024 (#27800)

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

Release Notes:

- N/A

Piotr Osiewicz created

d50905e assistant2: Add testing environment variables (#27789)

Click to expand commit body
To make it easier to design UIs for some of these scenarios. This PR
adds specifically two variables:
- `ZED_SIMULATE_NO_THREAD_HISTORY`
- `ZED_SIMULATE_NO_LLM_PROVIDER`

Release Notes:

- N/A

---------

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

Danilo Leal and Agus Zubiaga created

0729d24 chore: Prepare for Rust edition bump to 2024 (without autofix) (#27791)

Click to expand commit body
Successor to #27779 - in this PR I've applied changes manually, without
futzing with if let lifetimes at all.

Release Notes:

- N/A

Piotr Osiewicz created

d51aa2f assistant find-replace: Fall back to replace_with_flexible_indent (#27795)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created