de75e2d
extension_host: Expand supported extension API range to include v0.7.0 (#38529)
Click to expand commit body
This PR updates the version range for v0.6.0 of the extension API to
include v0.7.0.
Since we bumped the `zed_extension_api` crate's version to v0.7.0, we
need to expand this range in order for Zed clients to be able to install
extensions built against v0.7.0 of `zed_extension_api`.
Currently no extensions that target `zed_extension_api@0.7.0` can be
installed.
Release Notes:
- N/A
Marshall Bowers
created
4e316c6
macos: Fix panic when `NSWindow::screen` returns `nil` (#38524)
Click to expand commit body
Closes #ISSUE
Release Notes:
- mac: Fixed an issue where Zed would panic if the workspace window was
previously off screen
Ben Kunkle
created
1afbfcb
git: Docs-based workaround for GitHub/git auth confusion (#38479)
Click to expand commit body
Closes #ISSUE
Release Notes:
- git: Added a link to Github's authentication help if you end up in Zed
trying to type a password in for https auth
In the settings refactor I'd assumed server settings were like project
settings. This is not the case, they are in fact the normal user
settings;
but just read from the server.
Release Notes:
- N/A
Conrad Irwin
created
b9188e0
collab: Fix screen share aspect ratio on non-Mac platforms (#38517)
Click to expand commit body
It was just a bunch of finnickery around UI layout. It affected Linux
too.
Release Notes:
* Fixed aspect ratio of peer screen share when using Linux/Windows
builds.
Piotr Osiewicz
created
df6f0bc
Fix markdown list in `bump-zed-minor-versions` (#38515)
Click to expand commit body
This fixes a small markdown issue in the `bump-zed-minor-versions`
script that bugged me for too long ๐
Release Notes:
- N/A
Finn Evers
created
4743fe8
vim: Fix regression in surround behavior (#38344)
Click to expand commit body
Fix an issue introduced in
https://github.com/zed-industries/zed/pull/37321 where vim's surround
wouldn't work as expected when replacing quotes with non-quotes, with
whitespace always being added, regardless of whether the opening or
closing bracket was used. This is not the intended, or previous,
behavior, where only the opening bracket would trigger whitespace to be
added.
Closes #38169
Release Notes:
- Fixed regression in vim's surround plugin that ignored whether the
opening or closing bracket was being used when replacing quotes, so
space would always be added
Dino
created
0f4bdca
Update icon theme fallback to use default theme (#38485)
Click to expand commit body
https://github.com/zed-industries/zed/pull/38367 introduced panic:
```
thread 'main' panicked at crates/theme/src/settings.rs:812:18:
called `Option::unwrap()` on a `None` value
```
In this PR I restored fallback logic from the original code - before
settings refactor.
Release Notes:
- N/A
Jan ฤeลกpivo
created
154b01c
Dismiss agent panel when `disable_ai` is toggled to `true` (#38461)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/38331
This fixes an issue where we would not dismiss the panel once the user
toggled the setting, leaving them in an awkward state where closing the
panel would become hard.
Also takes care of one more check for the `Fix with assistant` action
and consolidates some of the `AgentSettings` and `DisableAiSetting`
checks into one method to make the code more readable.
Release Notes:
- N/A
Finn Evers
created
b6944d0
docs: Fix duplicate postgresql package and punctuation error (#38478)
Click to expand commit body
Found duplicate `postgresql` package in installation command. Uncertain
whether it should be `postgresql-contrib` or `postgresql-client`, but
neither appears necessary.
Release Notes:
- N/A
้็่ฑ
created
94fcbb4
docs: Update invalid property in a configuration example (#38466)
Click to expand commit body
Just install Zed for the first time and got a warning from the first
config example i copied from docs.
Great design btw, immediately able to see that this is a well thought
out app. seems like i'll stick with zed and make it my new dev
'sanctuary'.
Release Notes:
- N/A
Dimas Ari
created
2e97ef3
Revert "Audio fixes and mic denoise" (#38509)
a3da66c
editor: Correct "Toggle Excerpt Fold" tip on macOS (#38487)
Click to expand commit body
Show `"Option+click to toggle all"` instead of `"Alt+click to toggle
all" on macOS.
<img width="546" height="212" alt="Screenshot 2025-09-19 at 10 16 11"
src="https://github.com/user-attachments/assets/b1052b7c-349f-4a11-892b-988cfd2ff365"
/>
Release Notes:
- N/A
Bartosz Kaszubowski
created
9e6f1d5
python: Fix ty binary path and required args (#38458)
Click to expand commit body
Closes #38347
Release Notes:
- Fixed path and args to ty lsp binary
When attempting to use the new ty lsp integration in the preview, I
noticed issues related to accessing the binary. After deleting the
downloaded archive and adding the following changes that:
- downloads the archive with the correct `AssetKind::TarGz`
- uses the correct path to the extracted binary
- adds the `server` argument to initialize the lsp (like ruff)
After the above changes the LSP starts correctly
```bash
2025-09-18T16:17:03-05:00 INFO [lsp] starting language server process. binary path: "/Users/dereknguyen/Library/Application Support/Zed/languages/ty/ty-0.0.1-alpha.20/ty-aarch64-apple-darwin/ty", working directory: "/Users/dereknguyen/projects/test-project", args: ["server"]
```
<img width="206" height="98" alt="image"
src="https://github.com/user-attachments/assets/8fcf423f-40a0-4cd9-a79e-e09666323fe2"
/>
---------
Co-authored-by: Cole Miller <cole@zed.dev>
Derek Nguyen
and
Cole Miller
created
430ac51
python: Install basedpyright with npm instead of pip (#38471)
5f728ef
agent: Show custom MCP servers in agent configuration (#38500)
Click to expand commit body
Fixes a regression introduced in #38419
Release Notes:
- N/A
Bennet Bo Fenner
created
194a13f
Add denoising & prepare for migrating to new samplerate & channel count (#38493)
Click to expand commit body
Uses the previously merged denoising crate (and fixes a bug in it that snug in during refactoring) in the microphone input. The experimental audio path now picks the samplerate and channel count depending on a setting. It can handle incoming streams with both the current (future legacy) and new samplerate & channel count. These are url-encoded into the livekit track name.
David Kleingeld
created
66f2fda
helix: Initial support for helix-mode paste (#37963)
Click to expand commit body
This is a redo of #29776. I went for a separate function -- instead of
adding a bunch of conditions to `vim::Paste` -- because there were quite
a few differences.
Release Notes:
- Added a `vim::HelixPaste` command that imitates Helix's paste behavior
---------
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
#37622 was incorrectly forcing font smoothing to be enabled on macos
even when the user had disabled that setting at the OS level. See [this
comment](https://github.com/zed-industries/zed/pull/37622#issuecomment-3310030659)
for an example of the difference that font smoothing makes.
Release Notes:
- N/A
`HttpClient`: Relaxes the lifetime bound to `&self` in `get`/`post`
by returning the `self.send` future directly. This makes both
methods return `'static` futures without extra boxing.
`HttpRequestExt`: Added fluent builder methods to `HttpRequestExt`
inspired by the `gpui::FluentBuilder` trait.
Release Notes:
- N/A
tidely
created
b09764c
settings: Use a derive macro for refine (#38451)
Click to expand commit body
When we refactored settings to not pass JSON blobs around, we ended up
needing
to write *a lot* of code that just merged things (like json merge used
to do).
Use a derive macro to prevent typos in this logic.
Release Notes:
- N/A
e3e0522
debugger: Fix debug scenario picker showing history in reverse order (#38452)
Click to expand commit body
Closes #37859
Release Notes:
- debugger: Fix sort order of pasted launched debug sessions in debugger
launch modal
Anthony Eid
created
fc0eb88
debugger_ui: Update new process modal to include more context about its source (#36650)
Click to expand commit body
Closes #36280
Release Notes:
- Added additional context to debug task selection
Adding additional context when selecting a debug task to help with
projects that have multiple config files with similar names for tasks.
I think there is room for improvement, especially adding context for a
LanguageTask type. I started but it looked like it would need to add a
path value to that and wanted to make sure this was a good idea before
working on that.
Also any thoughts on the wording if you do like this format?
---
<img width="1246" height="696" alt="image"
src="https://github.com/user-attachments/assets/b42e3f45-cfdb-4cb1-8a7a-3c37f33f5ee2"
/>
---------
Co-authored-by: Anthony <anthony@zed.dev>
Co-authored-by: Anthony <hello@anthonyeid.me>
Matt
,
Anthony
, and
Anthony
created
6b8ed5b
docs: Fix typo in Python configuration example (#38434)
5fccde9
python: Install basedpyright if the basedpyright-langserver binary is missing (#38426)
Click to expand commit body
Potential fix for #38377
Release Notes:
- N/A
---------
Co-authored-by: Peter Tripp <petertripp@gmail.com>
Cole Miller
and
Peter Tripp
created
c58763a
git_ui: Reduce spacing between action icon and label (#38445)
Click to expand commit body
# Why
Opinionated change: A bit uneven spacing between Git action icon and
label, in comparison to the border on the right in the segmented action
button was triggering my UI OCD a bit. ๐
# How
Remove the right margin from icon and icon + counter children of the
segmented Git action button in Git Panel. The default spacing from the
button layout seems to be enough to separate them from the left-side
label.
# Release Notes
- Reduced spacing between Git action icon and label in Git Panel
# Test plan
I have tested few cases, and made sure that the spacing is still
present, but icon (or icon and counter) does not feel too
separated/detached from the label.
### Before
<img width="384" height="186" alt="Screenshot 2025-09-18 at 20 11 16"
src="https://github.com/user-attachments/assets/8f353b8f-8e43-466d-88a9-567a82100b5f"
/>
<img width="384" height="186" alt="Screenshot 2025-09-18 at 20 13 19"
src="https://github.com/user-attachments/assets/1ecb4e1a-8a60-45b6-988e-966fb2b27ff5"
/>
### After
<img width="392" height="168" alt="Screenshot 2025-09-18 at 19 53 14"
src="https://github.com/user-attachments/assets/388d9b83-9906-4eac-82ed-13d2ae78c990"
/>
<img width="392" height="168" alt="Screenshot 2025-09-18 at 19 53 34"
src="https://github.com/user-attachments/assets/a179239b-ac09-479e-b688-f895ba75ca33"
/>
<img width="392" height="168" alt="Screenshot 2025-09-18 at 19 56 23"
src="https://github.com/user-attachments/assets/6ca10cf1-d46d-43b7-b847-832555823b8a"
/>
Bartosz Kaszubowski
created
a6a2465
edit prediction: Fix sub overflow in identifiers_in_range (#38438)
Adds a `dev: open edit prediction context` action that opens a new
workspace pane that displays the excerpts and snippets that would be
included in the edit prediction request.
Release Notes:
- N/A
---------
Co-authored-by: Bennet <bennet@zed.dev>
This panic only happened in debug builds because of a left shift
overflow. The slice range has bounds between 0 and 128. The 128 case
caused the overflow.
We now do an unbounded shift and a wrapped sub to get the correct
bitmask. If the slice range is 128 left, it should make 1 zero. Then the
wrapped sub would flip all bits, which is expected behavior.
Release Notes:
- N/A
Co-authored-by: Nia <nia@zed.dev>
Co-Authored-By: Ben K <ben@zed.dev>
Co-Authored-By: Anthony <anthony@zed.dev>
Co-Authored-By: Mikayla <mikayla@zed.dev>
Release Notes:
- settings: Major internal changes to settings. The primary user-facing
effect is that some settings which did not make sense in project
settings files are no-longer read from there. (For example the inline
blame settings)
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Anthony <anthony@zed.dev>
Conrad Irwin
,
Ben Kunkle
,
Mikayla Maki
, and
Anthony
created
0a9023b
ui: Use hoverable tooltips for Badge component to fix tooltip behavior (#38387)
Click to expand commit body
## Summary
Fixes #38362 - Privacy tooltip behavior issues in AI Setup onboarding
## Problem
The Privacy tooltip in AI Setup onboarding had incorrect behavior:
1. Tooltip remained visible after mouse left the Privacy button
2. Clicking the button didn't toggle tooltip properly
3. Clicking in intersection area between tooltip and button didn't work
## Root Cause
Badge component used `tooltip()` instead of `hoverable_tooltip()`,
causing:
- Immediate tooltip hiding when mouse left triggering element
- No support for tooltip content interaction
- Poor intersection area click handling
## Solution
**Single line change** in `crates/ui/src/components/badge.rs:61`:
```rust
// Before:
this.tooltip(move |window, cx| tooltip(window, cx))
// After:
this.hoverable_tooltip(move |window, cx| tooltip(window, cx))
```
## Technical Details
- Leverages existing GPUI `hoverable_tooltip()` infrastructure
- Enables 500ms grace period before tooltip hiding
- Allows hovering over tooltip content without disappearing
- Uses proper tooltip bounds detection for click handling
- Affects all Badge tooltips system-wide (positive improvement)
- Full backward compatibility - no API changes
## Test Plan
- [x] Hover over Privacy badge โ tooltip appears
- [x] Move mouse away โ tooltip stays visible for 500ms
- [x] Move mouse to tooltip content โ tooltip remains visible
- [x] Click on tooltip content โ properly handled
- [x] Move mouse completely away โ tooltip hides after delay
- [x] Verify no regression in other Badge tooltip usage
Release Notes:
- N/A
Devdatta Talele
created
fb60f71
Make scrollbars auto-hide by default (#38340)
Click to expand commit body
With this, scrollbars across the app will now auto-hide unless it is
specified that they should follow a specific setting.
Optimally, we would just track the user preference by default. However,
this is currently not possible. because the setting we would need to
read lives in `editor` and we cannot read that from within the `ui`
crate.
Release Notes:
- N/A
Finn Evers
created
589e2c0
agent: Make settings view more consistent across different sections (#38419)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/37660
This PR makes sections in the AI settings UI more consistent with each
other and also just overall simpler. One of the main changes here is
adding the tools from a given MCP server in a modal (as opposed to in a
disclosure within the settings view). That's mostly an artifact of
wanting to make all of the items within sections look more of the same.
Then, in the process of doing so, also changed the logic that we were
using to display MCP servers; previously, in the case of extension-based
servers, we were only showing those that were _configured_, which felt
wrong because you should be able to see everything you have _installed_,
despite of its status (configured or not).
However, there's still a bit of a bug (to be solved in a follow-up PR),
which already existed but it was just not visible given we'd only
display configured servers: an MCP server installed through an extension
stays as a "custom server" until it is configured. If you don't
configure it, you can't also uninstall it from the settings view (though
it is possible to do so via the extensions UI).
Release Notes:
- agent: Improve settings view UI and solve issue where MCP servers
would get unsorted upon turning them on and off (they're all
alphabetically sorted now).
Danilo Leal
created
21d8b19
dap: Add more debug logs for child's stderr (#38418)
Click to expand commit body
Without this, I would never have converged on @cole-miller's patch
https://github.com/zed-industries/zed/pull/38380 when debugging codelldb
not spawning in WSL!
Release Notes:
- N/A
Jakub Konka
created
82686bf
Start working on refreshing Python docs (#37880)
Click to expand commit body
- Reflect that basedpyright is the new primary language server
- Discuss Ruff
- Deemphasize manual venv configuration for language servers
Release Notes:
- N/A
---------
Co-authored-by: Katie Geer <katie@zed.dev>
Co-authored-by: Piotr <piotr@zed.dev>
Release Notes:
- N/A
Co-authored-by: Agus <agus@zed.dev>
Co-authored-by: Oleksiy <oleksiy@zed.dev>
Co-authored-by: Finn <finn@zed.dev>
Michael Sloan
,
Agus
,
Oleksiy
, and
Finn
created
202dcb1
remote: Remove excess quoting in WSL `build_command` (#38380)
Click to expand commit body
The built-up command for the WSL remote connection looks like
```
wsl.exe --distribution Ubuntu --user cole --cd /home/cole -- bash -c SCRIPT
```
Where `SCRIPT` is a command itself. We don't need extra quotes around
`SCRIPT` because we already pass it whole as a separate argument to
`wsl.exe`.
This isn't yet enough to get ACP servers working in WSL projects
(#38332), but it removes one roadblock.
Release Notes:
- windows: Fixed an issue that could prevent running binaries in WSL
remote projects.
Cole Miller
created
b1aa272
editor: Reverse range of pending selection if required (#38410)
Click to expand commit body
cc https://github.com/zed-industries/zed/issues/38129
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
59a609c
Partially revert "project: Fix terminal activation scripts failing on Windows for new shells (#37986) (#38406)
Click to expand commit body
This partially reverts commit 4002602a8926b7fe799acf50fcee6bcffb36d376.
Specifically the parts that closes
https://github.com/zed-industries/zed/issues/38343
Release Notes:
- N/A *or* Added/Fixed/Improved ...