Commit log

95f10fd Add ability to clone item when using `workspace::MoveItemToPane` (#32895)

Click to expand commit body
This PR adds an optional `clone: bool` argument to
`workspace::MoveItemToPane` and `workspace::MoveItemToPaneInDirection`
which causes the item to be cloned into the destination pane rather than
moved. It provides similar functionality to
`workbench.action.splitEditorToRightGroup` in vscode.

This PR supercedes #25030.

Closes #24889

Release Notes:

- Add optional `clone: bool` (default: `false`) to
`workspace::MoveItemToPane` and `workspace::MoveItemToPaneInDirection`
which causes the item to be cloned into the destination pane rather than
moved.

Carl Sverre created

324cbec agent: Improve MCP with no config editor empty state (#33282)

Click to expand commit body
Removed an additional label from the modal empty state as I figured we
don't need it, given we already have a version of the description in
place for when the extension itself doesn't return any. So, ultimately,
having both the label and the description was redundant.

Release Notes:

- N/A

Danilo Leal created

32df925 notification: Add built-in dismiss button in the Status Toast component (#33278)

Click to expand commit body
There may be cases where we're needing to pass a button just so it is
dismissible, so I figured this out help! It also helps when you want to
have two buttons, one to perform an action and another to dismiss and
cancel.

Release Notes:

- N/A

Danilo Leal created

36eebb7 Fix race condition between auto-indent and on-type-formatting (#32005)

Click to expand commit body
This PR addresses to fix (#31308) a race condition where auto-indent (in
buffer.cs) and on-type-formatting (in lsp_store.rs) concurrently
calculate indentation using the same buffer snapshot.

Previous Solution (Abandoned): 
https://github.com/zed-industries/zed/pull/31340

Final Solution:
Delay applying on-type-formatting until auto-indent is complete.

Issue:

If AutoindentMode finishes first, formatting works correctly. If
"Formatting on typing" starts before AutoindentMode completes, it
results in double indentation.

Closes #31308

Release Notes:

- Fixed a race condition resulting in incorrect buffer contents when combining auto-indent and on-type-formatting

Maxim created

d34d4f2 debugger: Kill debug sessions on app quit (#33273)

Click to expand commit body
Before this PR force quitting Zed would leave hanging debug adapter
processes and not allow debug adapters to clean up their sessions
properly.

This PR fixes this problem by sending a disconnect/terminate to all
debug adapters and force shutting down their processes after they
respond.

Co-authored-by: Cole Miller \<cole@zed.dev\>

Release Notes:

- debugger: Shutdown and clean up debug processes when force quitting
Zed

---------

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

Anthony Eid , Conrad Irwin , and Remco Smits created

c610ebf Thread Anthropic errors into LanguageModelKnownError (#33261)

Click to expand commit body
This PR is in preparation for doing automatic retries for certain
errors, e.g. Overloaded. It doesn't change behavior yet (aside from some
granularity of error messages shown to the user), but rather mostly
changes some error handling to be exhaustive enum matches instead of
`anyhow` downcasts, and leaves some comments for where the behavior
change will be in a future PR.

Release Notes:

- N/A

Richard Feldman created

aabfea4 debugger: Document workaround for debugging Swift (#33269)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

51059b6 agent: Rename the delete menu item in the MCP section (#33265)

Click to expand commit body
From "Delete" to "Uninstall" for clarity.

Release Notes:

- N/A

Danilo Leal created

6b0325b debugger: Document some troubleshooting tools (#33047)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

c9bd409 debugger: Support passing custom arguments to debug adapters (#33251)

Click to expand commit body
Custom arguments replace any arguments that we normally pass to the DAP.
For interpreted languages, they are passed to the interpreter after the
DAP path or module. They can be combined with a custom binary, or you
can omit `dap.binary` and just customize the arguments to the DAPs we
download.

This doesn't take care of updating the extension API to support custom
arguments.

Release Notes:

- debugger: Implemented support for passing custom arguments to a debug
adapter binary using the `dap.args` setting.
- debugger: Fixed not being able to use the `dap` setting in
`.zed/settings.json`.

Cole Miller created

a067c16 windows: Use drop target helper (#33203)

Click to expand commit body
It now utilises the
[`IDropTargetHelper`](https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-idroptargethelper)
in drag and drop events to render the proper item drop cursor icon which
includes the thumbnail when available and action text. Also swaps the
drop effect from `DROPEFFECT_LINK` to `DROPEFFECT_COPY` to match other
Windows application behaviour.

Example of drop icon

![example_drop](https://github.com/user-attachments/assets/4f8ea86c-929a-4813-9f8e-b3553ecf4d6e)

Release Notes:

- N/A

---------

Co-authored-by: 张小白 <364772080@qq.com>

Matin Aniss and 张小白 created

1a6c1b2 windows: Fix window close animation (#33228)

Click to expand commit body
Implements a workaround which removes the `WS_EX_LAYERED` style from the
window right before closing it which seems to fix the window close
animation not playing.

Release Notes:

- N/A

Matin Aniss created

8718019 file finder: Ensure filter options keybinding is displayed (#33244)

Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/31777. I
could've sworn the filter options keybinding was being displayed in the
icon button tooltip, but just realized it actually wasn't. So, this PR
fixes that!

Release Notes:

- N/A

Danilo Leal created

a32505f agent: Fix token limit callout to show burn mode only for zed provider (#33096)

Click to expand commit body
The token limit reached callout was shown for all the providers and it
included the burn mode toggle and description. I have made that
conditional to only show for zed provider.

Before this changes
<img width="413" alt="image"
src="https://github.com/user-attachments/assets/b7e177fc-d2e6-4942-8934-39ac8c844649"
/>

After this change:
<img width="404" alt="image"
src="https://github.com/user-attachments/assets/0e091b99-c8e3-4960-8b4d-47170883d224"
/>


Release Notes:

- agent: Fix token limit callout to show burn mode only for zed provider

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Umesh Yadav and Danilo Leal created

980917b agent: Preserve chat box text on 'New From Summary' (#33220)

Click to expand commit body
CC: @danilo-leal Do you have thoughts on this? I found myself typing
chat messages after a long thread and then deciding I would be better
served by restarting from a summary -- and then "poof" the contents of
my chat box was lost.

Release Notes:

- agent: "New From Summary" now preserves any unsent content in the chat
box.

Peter Tripp created

bd8471b agent: Add soft-wrap to long terminal command JSON (#33188)

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

| Before | After | 
| - | - |
| <img width="341" alt="Screenshot 2025-06-21 at 23 06 01"
src="https://github.com/user-attachments/assets/963a3663-b24f-4946-8b48-2c1222cdef2e"
/> | <img width="424" alt="Screenshot 2025-06-21 at 23 08 13"
src="https://github.com/user-attachments/assets/51051221-fda2-48af-ae42-a04989bb4913"
/> |

Release Notes:

- N/A

Peter Tripp created

16f1da1 agent: Fix long previous user message double scroll (#33056)

Click to expand commit body
Previously, if editing a long previous user message in the thread, you'd
have a double scroll situation because the editor used in that case had
its max number of lines capped. To solve that, I made the `max_lines` in
the editor `AutoHeight` mode optional, allowing me to not pass any
arbitrary number to the previous user message editor, and ultimately,
solving the double scroll problem by not having any scroll at all.

Release Notes:

- agent: Fixed double scroll that happened when editing a long previous
user message.

@ConradIrwin adding you as a reviewer as I'm touching editor code
here... want to be careful. :)

Danilo Leal created

272fc67 windows: Dialog QoL improvements (#33241)

Click to expand commit body
Just like in the previous PR #33230, we need to properly set up modal
windows to make them work as expected.

Before this PR, when you opened an "Open File" or "Save File" dialog,
clicking the main window would steal focus from the modal, even though
the main window wasn’t actually interactive.

With this PR, clicking the main window while a modal is open does
nothing — as it should — until the modal is closed.

#### Before



https://github.com/user-attachments/assets/9c6bdff0-1c46-49c1-a5ff-751c52c7d613

#### After



https://github.com/user-attachments/assets/8776bd28-85ff-4f32-8390-bcf5b4eec1fe





Release Notes:

- N/A

张小白 created

e68b95c agent: Ensure tool names are unique (#33237)

Click to expand commit body
Closes #31903

Release Notes:

- agent: Fix an issue where an error would occur when MCP servers
specified tools with the same name

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

Bennet Bo Fenner and Ben Brandt created

28f56ad windows: Avoid setting the mouse cursor while the window is disabled (#33230)

Click to expand commit body
Don’t set the mouse cursor when the window is disabled, it causes issues
with modal dialogs.

Release Notes:

- N/A

张小白 created

7f44e4b Fix logic for updating `insert_range` on completion resolution (#32523)

Click to expand commit body
I don't have a concrete misbehavior from it, but this update of
`insert_range` doesn't make sense for two reasons:

* If the resolved completion doesn't have a new `text_edit` it would
clear out the `insert_range`.

* It doesn't update the completion if it has already been resolved,
except this update of `insert_range` happened before that.

Guessing it was written this way because this field needed to only be
mutated within the `CompletionSource::Lsp` case and this was a
convenient match below.

Release Notes:

- N/A

Co-authored-by: Smit <smit@zed.dev>

Michael Sloan and Smit created

e5ad2c2 Add `crates/assistant_tools/src/edit_agent/evals/fixtures` to file_scan_exclusions (#33224)

Click to expand commit body
Follow up to #32211

Release Notes:

- N/A

Bennet Bo Fenner created

67ac80b linux: Fix KeePassXC integration via org.freedesktop.Secrets (#33026)

Click to expand commit body
Closes #29956

Unlike GNOME Keyring, KeePassXC locks individual secrets in addition to
the entire database when configured to ask for confirmation for access
requests by DBus clients. As such, before the secret is read it should
be unlocked by the client.

Tested against both KeePassXC and GNOME Keyring, and with this patch Zed
successfully logs in and fetches the API keys from the Secret Service.

Release Notes:

- Fixed KeePassXC integration via org.freedesktop.Secrets

Artem Zhurikhin created

ac30a8b Improve FreeBSD support (#33162)

Click to expand commit body
This PR contains a set of changes for improving FreeBSD support (#15309,
#29550) and is a kind of follow up to the PR #20480 which added an
initial support for FreeBSD.

A summary of changes is as follows:
- Add some more freebsd conditionals which seem missing in the previous
PR.
- Implement `anonymous_fd()` and `current_path()` functions for FreeBSD.
- Improve detection of FreeBSD in telemetry and GPU detection.
- Temporarily disable LiveKit/WebRTC support to make build succeed.
- Remove support for flatpak since it is Linux-only packaging format.

Adding `RUSTFLAGS="-C link-dead-code"` does not seem necessary anymore.
It builds fine without the flag.

Known issues:
- Integrated terminal is painfully laggy and virtually unusable in my
environment. This might be specific to my setup.
- I cannot input Japanese using IME. When I type characters, they appear
on the screen. But when I hit return key, they disappears. Seems the
same issue as #15409.

My environment is MATE desktop on X11 on FreeBSD 14.2 on Intel Core
i5-7260U integrated graphics.

P.S. For those who might be interested, a work-in-progress FreeBSD port
and binary packages are available at
https://github.com/tagattie/FreeBSD-Zed

Release Notes:

- N/A

---------

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

Hiroki Tagato and Peter Tripp created

6b4c607 bedrock: Support Claude 3.7 in APAC (#33068)

Click to expand commit body
In ap-northeast-1 we have access to 3.7 and 4.0

Release Notes:

- N/A

---------

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

Willem and Peter Tripp created

595f61f bedrock: Use Claude 3.0 Haiku where Haiku 3.5 is not available (#33214)

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

@kuzaxak Can you confirm this works for you?

Release Notes:

- bedrock: Use Anthropic Haiku 3.0 in AWS regions where Haiku 3.5 is
unavailable

Peter Tripp created

1047d8a bedrock: Add Sonnet 4 to cross-region model list (eu/apac) (#33192)

Click to expand commit body
Closes #31946

Sonnet 4 is [now
available](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html)
via Bedrock in EU aws regions.

Release Notes:

- bedrock: Add cross-region usage of Sonnet 4 in EU/APAC AWS regions

Vladimir Kuznichenkov created

21fd5c2 emacs: Fix ctrl-p/ctrl-n navigating popover menus (#33218)

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

Release Notes:

- emacs: Fixed ctrl-p/ctrl-n keyboard navigation of autocomplete/code
actions menus

Peter Tripp created

336d2c4 docs: Update the AI configuration page (#33208)

Click to expand commit body
- Improve the Vercel v0 model section
- Replace "assistant panel" to "agent panel"
- Replace "Zed assistant" to "Zed agent"
- Fix "open configuration" action name
- Break sentences where useful

Release Notes:

- N/A

Danilo Leal created

5244085 windows: Fix wrong glyph index being reported (#33193)

Click to expand commit body
Closes #32424

This PR fixes two bugs:

* In cases like `fi ~~something~~`, the `fi` gets rendered as a
ligature, meaning the two characters are combined into a single glyph.
The final glyph index didn’t account for this change, which caused
issues.
* On Windows, some emojis are composed of multiple glyphs. These
composite emojis can now be rendered correctly as well.

![屏幕截图 2025-06-22
161900](https://github.com/user-attachments/assets/e125426b-a15e-41d1-a6e6-403a16924ada)

![屏幕截图 2025-06-22
162005](https://github.com/user-attachments/assets/f5f01022-2404-4e73-89e5-1aaddf7419d9)


Release Notes:

- N/A

张小白 created

af8f26d Add a `Copy` button for `About Zed` (#33197)

Click to expand commit body
Closes #33160

Since `TaskDialog` doesn’t allow users to copy its contents directly,
VSCode added a `Copy` button so users can easily copy the message.




https://github.com/user-attachments/assets/04090753-226f-44d9-992c-8cc8cb8d7ecb




Release Notes:

- N/A

张小白 created

3b9f504 Remove unused dependencies (#33189)

Click to expand commit body
I verified it after running `cargo shear`.

https://crates.io/crates/cargo-shear

Release Notes:

- N/A

yoshi-taka created

0579bf7 docs: Document `language_ids` in extension.toml (#33035)

Click to expand commit body
Document `language-servers.*.language_ids` property in extension.toml.

Release Notes:

- N/A

---------

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

Emanuele Stoppa and Peter Tripp created

534475d Add reference to `commit_message_model` in git docs. (#33186)

Click to expand commit body
Release Notes:

- N/A

Peter Tripp created

8d05f6f Add visual customization section to documentation (#33133)

Click to expand commit body
Release Notes:

- Improved settings documentation for [visual customization](https://zed.dev/docs/visual-customization/)

Peter Tripp created

3cb4342 editor: Disable tab to indent in single line mode (#33031)

Click to expand commit body
Release Notes:

- Disable indent on `tab` in single line editors.

----


https://github.com/user-attachments/assets/64207777-52c9-4425-be66-88acaf81f0b8

Jason Lee created

6fb1081 Disable next/previous hunk menu items when there are no hunks (#32907)

Click to expand commit body
Closes #32887

Release Notes:

- Button menu hunk is disabled if there are no changes

Alvaro Parker created

0ed6b4e git_ui: Add collapse_untracked_diff settings to improve usability for untracked files (#32591)

Click to expand commit body
In repositories with untracked files that are not intended to be added,
showing the expanded diffs in the panel is confusing, as it places the
changes side by side with changes in tracked files.

This change adds a setting, collapse_untracked_diff, that can be enabled
to collapse untracked diffs by default when the panel is opened.

See
https://github.com/zed-industries/zed/pull/31855#issuecomment-2957547018
(and previous comment for examples of why this is useful).

Example before this change, or with the setting in its default state:


![image](https://github.com/user-attachments/assets/f974c849-7ebf-424e-9397-442a6cc2513b)

Example after this change with the setting set to `true`:


![image](https://github.com/user-attachments/assets/bd8934f5-bd9a-4f5a-b723-cd4b798d2c2c)

Release Notes:

- Git: Added `collapse_untracked_diff` setting to auto-collapse
untracked diffs

Arseny Kapoulkine created

d75e210 docs: Fix path to keymap.json config file for macOS (#32728)

Click to expand commit body
Update key-bindings doc page to correctly reference
`~/.config/zed/keymap.json` instead of the old `~/.zed/keymap.json`

Closes #ISSUE

Release Notes:

- N/A

Dallin Huff created

2b3e453 Avoid using tmpdir when writing Zed settings.json on macOS (#32976)

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

Release Notes:

- macOS: Fixed an issue with writing Zed settings.json if user's home
directory is on a non-root volume.

Peter Tripp created

cb50f07 One Light Theme: Change constant color (#33166)

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

Changes the One Light syntax highlight for `constant` to be a distinct
from `comment`:

| Before | After |
| - | - |
| <img width="424" alt="Screenshot 2025-06-21 at 11 59 22"
src="https://github.com/user-attachments/assets/8780918f-7701-4780-809a-f95951970c90"
/> | <img width="430" alt="Screenshot 2025-06-21 at 11 59 17"
src="https://github.com/user-attachments/assets/d7efaa16-f95a-4076-a0b2-b1170e2ffe68"
/> |

I picked a color which was present in the palette from the original One
Light theme from Atom.

@failable: Sorry this took so long, does this look ok to you?

Release Notes:

- N/A

Peter Tripp created

a713c66 Redact command environment variables from log output (#32985)

Click to expand commit body
Before/After (linebreaks added for readability)
```log 
# before
INFO  [project::context_server_store::extension]
loaded command for context server mcp-server-github:
Command { 
  command: "/Users/peter/Library/Application Support/Zed/extensions/work/mcp-server-github/github-mcp-server-v0.5.0/github-mcp-server", 
  args: ["stdio"], 
  env: [("GITHUB_PERSONAL_ACCESS_TOKEN", "gho_WOOOOOOOOOOOOOOO")] 
}

#after
INFO  [project::context_server_store::extension]
loaded command for context server mcp-server-github:
Command {
  command: "/Users/peter/Library/Application Support/Zed/extensions/work/mcp-server-github/github-mcp-server-v0.5.0/github-mcp-server",
  args: ["stdio"],
  env: [("GITHUB_PERSONAL_ACCESS_TOKEN", "[REDACTED]")]
}
```

Release Notes:

- Redact sensitive environment variables from MCP logs

Peter Tripp created

76e3136 editor: Utilize `filter_text` from language server for `filter_range` (#33155)

Click to expand commit body
Closes #33106

Instead of directly using `filter_text` in `StringMatchCandidate`, which
yields better results for fuzzy matching but messes up with highlighting
letters in bold, as `positions` list generated by fuzzy crate are now of
`filter_text` and not `label` shown to the user.

This PR fixes it by keeping use of `filter_range` in
`StringMatchCandidate`, which is range w.r.t to `label` shown to user.
And actually generating this `filter_range` at source by using
`filter_range` if exists.

- [x] Tests

Release Notes:

- Fixed issue where incorrect letters are marked as bold in completions.

Smit Barmase created

834cdc1 agent: Store if context server should be enabled/disabled in the settings (#32994)

Click to expand commit body
- [x] Show disabled MCP servers in the list so you can enable them again
- [x] If MCP is not present in the settings, add it

Closes #ISSUE

Release Notes:

- agent: Allow to enable/disable context servers permanently in the
agent configuration view

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Bennet Bo Fenner and Danilo Leal created

dfdd2b9 language_models: Add thinking support to OpenRouter provider (#32541)

Click to expand commit body
Did some bit cleanup of code for loading models for settings as that is
not required as we are fetching all the models from openrouter so it's
better to maintain one source of truth

Release Notes:

- Add thinking support to OpenRouter provider

Umesh Yadav created

b9838ef agent: Add button to scroll to top of the thread (#33130)

Click to expand commit body
Release Notes:

- agent: Added a button to scroll to top of the thread.

Danilo Leal created

db8acfa Update pathfinder_simd for nightly arm simd fixes (#33131)

Click to expand commit body
`pathfinder_simd` doesn't compile on nightly aarch64 right now, but that
was fixed by https://github.com/servo/pathfinder/pull/575 and updated on
crates.io by https://github.com/servo/pathfinder/pull/577. This PR
simply updates the `pathfinder_simd` dependency to the version that
contains these fixes.

I verified that this compiles with nightly on my machine.

June created

5c1dc8b Cargo.lock updates (#33129)

Click to expand commit body
Should have been in #33125

Release Notes:

- N/A

Michael Sloan created

7e801dc agent: Fix issues with usage display sometimes showing initially fetched usage (#33125)

Click to expand commit body
Having `Thread::last_usage` as an override of the initially fetched
usage could cause the initial usage to be displayed when the current
thread is empty or in text threads. Fix is to just store last usage info
in `UserStore` and not have these overrides

Release Notes:

- Agent: Fixed request usage display to always include the most recently
known usage - there were some cases where it would show the initially
requested usage.

Michael Sloan created

e0c0b6f Remove duplicate issues in top-ranking issues script (#33127)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created