Commit log

afde25a Fix a docs typo (#28384)

Click to expand commit body
Closes https://github.com/zed-industries/zed/pull/28053

Release Notes:

- N/A

Kirill Bulatov created

9f708ee Fix refactoring bug in dashes around rounded corners (#28378)

Click to expand commit body
Accidentally introduced in #28341

Release Notes:

- N/A

Michael Sloan created

58731e2 Remove log when pulldown_cmark produces long substituted text (#28375)

Click to expand commit body
Turns out that consecutive dashes are substituted with half the number
of input dashes. Extended the test with this case as well

Release Notes:

- N/A

Michael Sloan created

d0632a5 Fix truncation of bash output (#28374)

Click to expand commit body
Release Notes:

- Fixed a regression that caused the bash tool to not include all of the
output.

---------

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

Antonio Scandurra and Agus Zubiaga created

64cea2f agent: Refine toolbar spacing (#28373)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

ac958d4 Encourage agent to edit files it just created (#28372)

Click to expand commit body
Release Notes:

- Fixed a problem that would cause the agent to keep recreating a file
instead of editing it.

Antonio Scandurra created

2df06cd agent: Improve thinking design display (#28186)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

0d4ca71 agent: Change "prompt editor" to "text thread" (#28370)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

e2d6505 agent: Make the copy button in the codeblock visible on hover (#28371)

Click to expand commit body
This simplifies the UI a little bit.

Release Notes:

- N/A

Danilo Leal created

f7c3c53 Update task defaults (#28368)

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

Release Notes:

- N/A

Kirill Bulatov created

c05bf09 Merge `Component` and `ComponentPreview` trait (#28365)

Click to expand commit body
- Merge `Component` and `ComponentPreview` trait
- Adds a number of component previews
- Removes a number of stories

Release Notes:

- N/A

Nate Butler created

b15ee1b Add dedicated actions for `LSP` completions insertion mode (#28121)

Click to expand commit body
Adds actions so you can have customized keybindings for `insert` and
`replace` modes.

And add `shift-enter` as a default for `replace`, this will override the
default setting
`completions.lsp_insert_mode` which is set to `replace_suffix`, which
tries to "smartly"
decide whether to replace or insert based on the surrounding text.

For those who come from VSCode, if you want to mimic their behavior, you
only have to
set `completions.lsp_insert_mode` to `insert`.

If you want `tab` and `enter` to do different things, you need to remap
them, here is
an example:

```jsonc
[
  // ...
  {
    "context": "Editor && showing_completions",
    "bindings": {
      "enter": "editor::ConfirmCompletionInsert",
      "tab": "editor::ConfirmCompletionReplace"
    }
  },
]
```

Closes #24577

- [x] Make LSP completion insertion mode decision in guest's machine
(host is currently deciding it and not allowing guests to have their own
setting for it)
- [x] Add shift-enter as a hotkey for `replace` by default.
- [x] Test actions.
- [x] Respect the setting being specified per language, instead of using
the "defaults".
- [x] Move `insert_range` of `Completion` to the Lsp variant of
`.source`.
- [x] Fix broken default, forgotten after
https://github.com/zed-industries/zed/pull/27453#pullrequestreview-2736906628,
should be `replace_suffix` and not `insert`.

Release Notes:

- LSP completions: added actions `ConfirmCompletionInsert` and
`ConfirmCompletionReplace` that control how completions are inserted,
these override `completions.lsp_insert_mode`, by default, `shift-enter`
triggers `ConfirmCompletionReplace` which replaces the whole word.

João Marcos created

0459b1d Fix panic when a file in a path-based multibuffer excerpt is renamed (#28364)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Fixed a panic that could occur when paths changed in the project diff.

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

Cole Miller and Conrad Irwin created

246013c tab_switcher: Add keybind to close tab tooltip (#27212)

Click to expand commit body
| prev | new |
|--|--|
|<img width="619" alt="image"
src="https://github.com/user-attachments/assets/53b14fd4-17ee-4336-81ca-30324d918e15"
/>|<img width="620" alt="image"
src="https://github.com/user-attachments/assets/316699b3-295b-4f83-9fb1-b799f7c71d7f"
/>|


Release Notes:

- N/A

5brian created

47eaf27 agent: Only require confirmation for batch tool when subset of tool calls require confirmation (#28363)

Click to expand commit body
Release Notes:

- agent: Only require confirmation for batch tool when subset of tool
calls require confirmation

Bennet Bo Fenner created

ef4b5b0 script: Ignore feature/meta issues from issue_response nag (#28332)

Click to expand commit body
Release Notes:

- N/A

Peter Tripp created

39c98ce Support tasks from rust-analyzer (#28359)

Click to expand commit body
(and any other LSP server in theory, if it exposes any LSP-ext endpoint
for the same)

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

* adds a way to disable tree-sitter tasks (the ones from the plugins,
enabled by default) with
```json5
"languages": {
  "Rust": "tasks": {
      "enabled": false
    }
  }
}
```
language settings

* adds a way to disable LSP tasks (the ones from the rust-analyzer
language server, enabled by default) with
```json5
"lsp": {
  "rust-analyzer": {
    "enable_lsp_tasks": false,
  }
}
```

* adds rust-analyzer tasks into tasks modal and gutter:

<img width="1728" alt="modal"
src="https://github.com/user-attachments/assets/22b9cee1-4ffb-4c9e-b1f1-d01e80e72508"
/>

<img width="396" alt="gutter"
src="https://github.com/user-attachments/assets/bd818079-e247-4332-bdb5-1b7cb1cce768"
/>


Release Notes:

- Added tasks from rust-analyzer

Kirill Bulatov created

763cc6d Tell the model not to act on TODO type comments (#28358)

Click to expand commit body
Release Notes:

- Adjusted system prompt to direct it to never act on TODO-type comments
it encounters, unless the user directly asked it to do so or they relate
to the current task at hand.

Joseph T. Lyons created

0b75c13 chore: Replace as_any functions with trait upcasting (#28221)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

38ec450 project: Workaround invalid code action edits from pyright (#28354)

Click to expand commit body
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Piotr Osiewicz <piotr@zed.dev>

fixes issue where:

In a two line python file like so
```

Path()
```

If the user asks for code actions on `Path` and they select (`From
pathlib import path`)
the result they get is
```

Pathfrom pathlib import Path


Path()
```
Instead of 

```

from pathlib import Path



Path()
```

This is due to a non-lsp-spec-compliant response from pyright below

```json
{"jsonrpc":"2.0","id":40,"result":[{"title":"from pathlib import Path","edit":{"changes":{"file:///Users/neb/Zed/example-project/pyright-project/main.py":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":4}},"newText":"Path"},{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"from pathlib import Path\n\n\n"}]}},"kind":"quickfix"}]}
```

Release Notes:

- Fixed an issue when using auto-import code actions provided by pyright
(or basedpyright) where the import would be jumbled with the scoped
import resulting in an invalid result

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Ben Kunkle , Max Brunsfeld , and Anthony Eid created

97641c3 Use tree-sitter when returning symbols to the model for a given file (#28352)

Click to expand commit body
This also increases the threshold for when we return an outline during
`read_file`.

Release Notes:

- Fixed an issue that caused the agent to fail reading large files if
the LSP hadn't started yet.

Antonio Scandurra created

ca8f6e8 Tell the model not to remove tests (#28349)

Click to expand commit body
Release Notes:

- Adjusted system prompt to direct it to never remove tests as a way to
have the test suite pass, unless the user directly asks for test
removal.

Joseph T. Lyons created

db53da4 debugger: Respect initialize_args from user profiles (#28347)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>

Piotr Osiewicz and Ben Kunkle created

df94dcd ci: Only run workspace_hack when tests run (#28346)

Click to expand commit body
Skip `workspace_hack` for PRs that don't trigger tests (docs-only,
.github issue templates, etc).

Release Notes:

- N/A

Peter Tripp created

1c85901 Tell the model not to create .bak files (#28244)

Click to expand commit body
Release Notes:

- Adjusted system prompt to avoid having the agent create backup files
unnecessarily.

Richard Feldman created

9fb77ad Refine GitHub Issue templates (#28345)

Click to expand commit body
Make various improvements to our github issue templates.

- Adjust line lengths to not wrap in constrained new issue view (85
cols) not just full screen view (95 columns)
- Remove reference to drag/drop logs to upload (recently multiple issues
with dead upload links)
- Cleanup list view

Release Notes:

- N/A

Peter Tripp created

feafad2 Improve comments on shader code for dashed borders (#28341)

Click to expand commit body
Improvements from going over the code with @as-cii 

Release Notes:

- N/A

Michael Sloan created

86ef000 pylsp: Upgrade existing installation if possible (#28338)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Zed-managed pylsp installations will now correctly upgrade themselves

Piotr Osiewicz created

9e8afa8 Fix local task dropped on the wrong thread (#28290)

Click to expand commit body
Release Notes:

- Fixed a panic during shutdown of the remote server

Conrad Irwin created

698cdc4 agent: Display "generating" label in the active thread (#28297)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Danilo Leal and Bennet Bo Fenner created

85c5d8a agent: Truncate bash tool output (#28291)

Click to expand commit body
The bash tool will now truncate its output to 8192 bytes (or the last
newline before that).

We also added a global limit for any tool that produces a clearly large
output that wouldn't fit the context window.

Release Notes:

- agent: Truncate bash tool output

---------

Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Agus Zubiaga and Michael Sloan created

1774cad debugger: Add close button and coloring to debug panel session's menu (#28310)

Click to expand commit body
This PR adds colors to debug panel's session menu that indicate the
state of each respective session. It also adds a close button to each
entry.

green - running
yellow - stopped
red - terminated/ended 


Release Notes:

- N/A

Anthony Eid created

ee7b1ec Fix deafening new participants (#28330)

Click to expand commit body
Release Notes:

- Fixed an issue where new participants were not muted when the room was
deafened

Conrad Irwin created

14b43d5 agent: Navigate to line when clicking on filepath in markdown codeblock (#28329)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

d39e1e0 Demote buffer-diff to a dev dependency of collab (#28295)

Click to expand commit body
This will speed up our collab deployments a little

Release Notes:

- N/A

Max Brunsfeld created

9e504a1 git: Fix logging FromUtf8Error when diffing (#28276)

Click to expand commit body
If you attempt to load a git diff which includes a non utf-8 file,
previously
(1) the entire contents of the file was logged as ordinals and
(2) a second spurious error was logged

```
2025-04-07T16:21:28.392845-04:00 [ERROR] FromUtf8Error { bytes: [0, 1, 0, 0, 0, 19, 1, 0, 0, 4, 0, 48, 68, 83, 73, 71, 0, 0, 0, 1, 0, 2, 241, 204, 0, 0, 0, 8, 71, 68, 69, 70, 164, 172, 164, ...

[2025-04-07T17:12:16-04:00 ERROR git::repository] Error loading index text: invalid utf-8 sequence of 1 bytes from index 35
```

Having 1MB binary file in a commit would generate ~3MB-5MB of log
output.

Discovered while investigating
https://github.com/zed-industries/zed/issues/28241

Release Notes:

- git: Fixed an issue where non-UTF8 files in a git diff would generate
log spam.

Peter Tripp created

ca4cc47 Upgrade async-tungstenite to tokio (#26193)

Click to expand commit body
We're seeing panics caused by a buggy implementation of AsyncWrite
that is being passed to rustls: 

https://github.com/rustls/rustls/issues/2316#issuecomment-2662838186

One hypothesis was that we're using (comparatively) non-standard async
tools for connecting over websockets; so this attempts to make us be
(comparitvely) more standard.

Release Notes:

- N/A

Conrad Irwin created

ea33d78 vim: Fix visual line yank on newline char (#28005)

Click to expand commit body
Problem:
When yanking in visual line on the newline char, the next line gets
yanked as well:


https://github.com/user-attachments/assets/40f332dd-19f5-445f-a30f-39d50167c46f

Changes:
Similar to visual delete, exclude the newline char from the selection in
line mode.

Release Notes:

- vim: Fixed visual line yank while on the newline character yanking
following line

5brian created

e36a2f2 vim: Add indent-wise motions (#28044)

Click to expand commit body
Taken from:
https://github.com/jeetsukumaran/vim-indentwise?tab=readme-ov-file#movements-by-relative-indent-depth



> [- : Move to previous line of lesser indent than the current line.
> [+ : Move to previous line of greater indent than the current line.
> [= : Move to previous line of same indent as the current line that is
separated from the current line by lines of different indents.
> ]- : Move to next line of lesser indent than the current line.
> ]+ : Move to next line of greater indent than the current line.
> ]= : Move to next line of same indent as the current line that is
separated from the current line by lines of different indents.



Release Notes:

- vim: Added indent-wise motions `] -/+/=`

5brian created

cbd9b4c Switch back to the default mode after paste (#28304)

Click to expand commit body
Now that the flaky tests are disabled, this should work...

Release Notes:

- Fixed vim paste action to switch back to the configured default mode.

jneem created

64f8b1e docs: Add missing comma in the Tasks page (#28324)

Click to expand commit body
Added a missing command in the same tasks.json file

Release Notes:

- N/A

James Falade created

4f936d8 vim: Fix exchange showing `ccx` in pending keys (#28303)

Click to expand commit body
|Before|After|
|--|--|

|![image](https://github.com/user-attachments/assets/cac97981-518e-46d2-8540-a22496bc948e)|![image](https://github.com/user-attachments/assets/5158b17f-d14e-42a2-8a94-ad98d1b1c33c)|

Changes:
Add vim exchange to the clear stack

Release Notes:

- N/A

5brian created

97abf21 agent: Add support for Google Gemini 2.5 preview (#28326)

Click to expand commit body
Adds support for the new `gemini-2.5-pro-preview-03-25`

Release Notes:

- Added support for `gemini-2.5-pro-preview-03-25` in the assistant

Bennet Bo Fenner created

5fb1411 debugger: Add scrollbars, fix papercuts with completions menu and jumps (#28321)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

b04f7a4 vim: Fix visual object expands (#28301)

Click to expand commit body
Closes #28198

Release Notes:

- Fixed visual object expands

0x2CA created

61b7a05 language_models: Allow overriding Zed completions URL via environment variable (#28323)

Click to expand commit body
This PR adds support for overriding the Zed completions URL via the
`ZED_COMPLETIONS_URL` environment variable.

Release Notes:

- N/A

Marshall Bowers created

cc15598 keymap: Document conflicting macos ctrl-shift-space shortcut (#28325)

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

Release Notes:

- N/A

Peter Tripp created

7ee9109 project_panel: Do not allow creating empty file/dir or file/dir with only whitespaces (#28240)

Click to expand commit body
- Do not allow creating empty file or empty directory.
- Do not allow creating file or directory with just whitespace.
- Show error only in case whitespace.

<img width="352" alt="image"
src="https://github.com/user-attachments/assets/f6040332-59a6-4d09-bf07-2b4b1b8b9e03"
/>

Release Notes:

- N/A

Smit Barmase created

c21fdd2 python: Bump PET version (#28319)

Click to expand commit body
Speculative fix for #27518


Release Notes:

- N/A

Piotr Osiewicz created

a289295 gpui: Depend on workspace image crate (#28313)

Click to expand commit body
Make gpui depend on the image crate on the workspace level

Release Notes:

- N/A

tidely created