Commit log

c61409e zeta_cli: Avoid unnecessary rechecks in `retrieval-stats` (#39267)

Click to expand commit body
Before this change, it would save every buffer and wait for diagnostics.
For rust analyzer this would cause a lot of rechecking and greatly slow
down the analysis

Release Notes:

- N/A

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

Michael Sloan and Agus created

1659fb8 Remove panic/crash reporting from collab (#39249)

Click to expand commit body
Crashes have been going to Sentry since v0.201.x

Release Notes:

- N/A

Conrad Irwin created

dd6c653 agent: Fix terminal tool on Windows (#39260)

Click to expand commit body
Seems like we don't want to escape the dollar sign in `$null`.

Release Notes:

- N/A

Cole Miller created

a13e84a Fix bug in code action formatter handling (#39246)

Click to expand commit body
Closes #39112

Release Notes:

- Fixed an issue when using code actions on format where specifying
multiple code actions in the same code actions block that resolved to
code actions from different language servers could result in conflicting
edits being applied and mangled buffer text.

Ben Kunkle created

1cac3e3 agent: Only show profile manage list item selection keybinding on the focused item (#39242)

Click to expand commit body
Small update here that makes the UI simpler; there's no need to see the
keybinding in all the items you're not focused in.

| Before | After |
|--------|--------|
| <img width="1112" height="720" alt="Screenshot 2025-09-30 at 5  25@2x"
src="https://github.com/user-attachments/assets/e0362f98-889a-4007-a50d-8006dfb91787"
/> | <img width="1112" height="732" alt="Screenshot 2025-09-30 at 5  25
2@2x"
src="https://github.com/user-attachments/assets/b536b6ba-ef61-4891-8b2f-c27c40c70e4e"
/> |

Release Notes:

- N/A

Danilo Leal created

9abe581 agent: Make the profile switcher a picker (#39218)

Click to expand commit body
Split off from https://github.com/zed-industries/zed/pull/39175

Adds a search bar to the 'profile' panel, so that we can switch profiles
without having to use the mouse or `tab` a few times

![2025-09-30 13 32
55](https://github.com/user-attachments/assets/2fc1f32b-9e25-4059-aae1-d195334a5fdb)

Release Notes:

- agent: Added the ability to search profiles in the agent panel's
profile picker.

---------

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

David and Danilo Leal created

97bd284 windows: Fix breakpoints in WSL (#39196)

Click to expand commit body
Release Notes:

- Fixed breakpoints not being hit in the debugger in WSL (or any
POSIX-target from WIndows host)

Jakub Konka created

e9244d5 docs: Remove macOS Tahoe runtime shaders callout (#39241)

Click to expand commit body
@ConradIrwin No longer needed the issue appears to be fully resolved
after moving to MacOS Tahoe as the latest instead of only in dev beta

Release Notes:

- N/A

versecafe created

83e5a30 Don't run MCP servers for remote projects (#39243)

Click to expand commit body
Closes #39213

Release Notes:

- Fixed a bug where we tried to run MCP servers in the remote project's
working directory on the local machine

Conrad Irwin created

94a4c0c settings ui: Fix bug with navbar index to page index translation (#39245)

Click to expand commit body
This happened when search results completely filtered out a page above
the selected page index.

The old index was calculated based on the nav bar entry's position and
the count of root entries above it, this was wrong because root entries
could be filtered out with a search. Now the page index is saved when
building the navbar

Release Notes:

- N/A

Anthony Eid created

0f86933 Update blade dependencies to the newest versions (#39233)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

ed269b4 Correct button label on basics_page.rs (Jetbrains to JetBrains) (#39240)

Click to expand commit body
Correct typo, Jetbrains to JetBrains

Thanks for the opportunity to participate!

Closes #ISSUE

Release Notes:

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

warrenjokinen created

34ddf54 agent: Remove stray separator in edited files UI (#39237)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

a701388 settings ui: Implement settings search (#38989)

Click to expand commit body
Get a basic search implementation working in the settings ui and fix nav
bar toggling bugs.

Search functionality works by passing in each page and its items into
our fuzzy search crate and filtering out any non-matches. A page is a
match if any of its items are a match and an item is a match if its
title or description has a fuzzy score greater than zero.

In the future, a page section header will be filtered out if none of its
children has a match or it will show all its children on a match. The
team still has to decide what to do in that edge case, but that's the
last step until search is fully implemented for our initial launch.

Finally, I found some bugs in our nav bar toggling that occurred because
we weren't taking into account the index change that occurred when
toggling an element with children that is above the selected nav bar
entry. I added tests to cover those edge cases as well.

Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>

Anthony Eid and Ben Kunkle created

29afc04 worktree: Remove unwrap in BackgroundScanner::update_ignore_status (#39191)

Click to expand commit body
We've seen this panic come up in the last two weeks, which might be
caused by #33592. However, we are not sure what paths can cause this
`unwrap()` to fail. Therefore adding some logging around this, so that
the next time someone opens a bug report we can further diagnose the
issue.

Fixes ZED-1F6

Release Notes:

- Fixed an issue where Zed could crash when including specific paths in
a global `.gitignore` files

Bennet Bo Fenner created

e65a929 Add basic shell tests (#39232)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Lukas Wirth <lukas@zed.dev>

Kirill Bulatov and Lukas Wirth created

a53faff terminals: Remove (now) incorrect alacritty workaround for task spawning (#39230)

Click to expand commit body
Closes #39228

Release Notes:

- Fixed venv activation failing with powershell

Lukas Wirth created

074cb88 acp_thread: Skip git pagination on windows (#39229)

Click to expand commit body
Release Notes:

- Fixed agents running git commands with pagination enabled

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

Lukas Wirth and Cole Miller created

67ebb1f task: Fix `ShellBuilder::redirect_stdin_to_dev_null` constructing invalid commands on windows (#39227)

Click to expand commit body
Release Notes:

- Fixed agents not being able to use the terminal tool with powershell

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

Lukas Wirth and Cole Miller created

ace6170 debugger: Fix python debug scenario not showing up in code actions (#39224)

Click to expand commit body
The bug happened because the Python locator was checking for a quote
before the ZED task variable. Removing that part of the check fixed the
issue.

Closes #39179 

Release Notes:

- Fix Python debug tasks not showing up in code actions or debug picker

Anthony Eid created

43061b6 Add SettingsFile APIs to SettingsStore (#39129)

Click to expand commit body
Closes #ISSUE

Adds a couple functions to the `SettingsStore`:
- `get_value_from_file`: Gets a value from a given settings file
(`Local`, `User`, etc) and if the value isn't found in the requested
file, walks the known settings files in the order in which they are
merged to find the settings value in lower precedence settings files
(i.e. if value not set anywhere will always return default value)
- `get_overrides_for_field`: Returns a list of settings files where a
given setting is set that have higher precedence than the passed in
file. e.g. passing in user will result in project settings files where
the value is set being returned.

Additionally changes the default for the `project_name` setting to
uphold the rules we are attempting to enforce on the settings, namely:
- All settings fields should be of the form `Option<T>`
- `None` (or `null` in JSON) should never be a meaningful value

Follow up PRs will handle implementing a function to write to an
arbitrary settings file, and passing through metadata to the above
functions to control how overrides are determined for more complicated
cases like `SaturatingBool` (`disable_ai`) and `ExtendingVec`

Release Notes:

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

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Anthony <anthony@zed.dev>

Mikayla Maki , Ben Kunkle , Anthony Eid , Danilo Leal , and Anthony created

e23e976 acp: Bump minimum Claude Code version (#39217)

Click to expand commit body
There was an issue with login after the migration to the new anthropic
package. This makes sure folks are migrated to a known working version
(though the latest version also now works on old versions)

Release Notes:

- N/A

Co-authored-by: Richard Feldman <oss@rtfeldman.com>

Ben Brandt and Richard Feldman created

0266a99 Use the `alt` modifier when going to a definition with cmd-click (#38148)

Click to expand commit body
I don't totally follow how the `cmd_click_reveal_task` function works,
but it branches on whether `self.hovered_link_state` exists and contains
any links, and in case it doesn't, it doesn't use `modifiers.alt` for
deciding where to navigate. This PR addresses that.

The problem I've been having is that cmd-alt-click sometimes behaves as
cmd-click, i.e. it navigates to the definition in the current pane. This
appears to happen whenever I cmd-alt-click while the symbol I'm hovering
over isn't underlined, possibly when I click too quickly?

An alternative way to reliably reproduce this is to cmd-alt-click on a
symbol without letting go of cmd and alt and without moving the cursor.
Now the symbol is no longer underlined (and the hover preview has
disappeared as well), so clicking again (while still holding cmd and
alt) goes to the definition in the current pane:


https://github.com/user-attachments/assets/34003e01-fd95-4741-8a7d-6240d1c5a495

Release notes:

- Fixed a bug that caused cmd-alt-click to sometimes go to the
definition in the current pane

Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>

Tim Vermeulen and Joseph T. Lyons created

9741e9a rules library: Improve delineation of default and non-default rules (#39209)

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

This PR adds UI improvements to clarify the concept of "default rules"
and how they separate from regular rules. This is mostly motivated by
the issue linked above, where it clarified that the star icon was
communicating a "favoriting" affordance, which is not correct with how
rules work in Zed. When you tag/attach a rule as default, it will always
be included in every prompt, together with the agent's system prompt and
project rules (if they exist).

Hopefully, this will make understanding better. Here's how it looks like
now?


https://github.com/user-attachments/assets/435d3af7-e8a6-4646-8f00-94a409bd5f42

Release Notes:

- Improve rules library UI to better communicate the concept of default
rules vs. regular rules.

Danilo Leal created

3f31fc2 agent: Fix keybinding to deny running a command (#39214)

Click to expand commit body
Despite how great `cmd-d` as a keybinding is, that was not working as it
was conflicting with an editor keybinding:


https://github.com/user-attachments/assets/2ea8665b-7008-4f0a-9426-8d31d379ee1c

This PR changes it to `cmd-alt-z`, which is the best "remove/fix"-type
of keybinding I could find that doesn't conflict with anything else.
Ideally, we'd use either the D, N, or R letters for "deny", "no", and
"reject", but unfortunately, none of them are nicely available in this
context...


Release Notes:

- agent: Fix keybinding to deny running a command

Danilo Leal created

6c50fd6 Remove "integer" from font size docs (#39215)

Click to expand commit body
Fixes #38765

Release Notes:

- N/A

Conrad Irwin created

df43a2d zeta2 cli: Include section ranges in new full output format (#39203)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>

Agus Zubiaga and Oleksiy Syvokon created

35749e9 acp: Notify of latest agent version only after successful download (#39201)

Click to expand commit body
Before we would notify the user even if the download failed. We also
we're overwriting the directory, which means a user could be stuck in a
loop if a previous download failed

Release Notes:

- acp: Fix user seeing update prompt in a loop because of a previous
failed download

Ben Brandt created

e965c43 Remove issue response action (#39200)

Click to expand commit body
This action has consistently failed to run for many months on end, so we
haven't been relying on it.

Release Notes:

- N/A

Joseph T. Lyons created

14fc726 windows: Fix ssh reporting wrong password even it's actually correct (#38263)

Click to expand commit body
Closes #34393

Currently, we’re using `zed.exe --askpass` kind of like an `nc`
substitute, it prints out the SSH password to stdout with something like
`println!("user-pwd")`. `ssh.exe` then reads the password from stdout so
it can establish the connection.

The problem is that in release builds we set `subsystem=windows` to
avoid Windows spawning a black console window by default. The side
effect is that `zed.exe` no longer has a stdout, so `ssh.exe` can’t read
the password.

Through testing, I confirmed that neither allocating a new console for
`zed.exe` nor attaching it to the parent process’s stdout resolves the
issue. As a result, this PR updates the implementation to use `cli.exe
--askpass` instead.

TODO:

- [ ] Check that the `cli` path is correct on macOS
- [ ] Check that the `cli` path is correct on Linux

Release Notes:

- N/A

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

张小白 and Piotr Osiewicz created

4f95186 windows: Fix auto-update for `conpty.dll` (#39178)

Click to expand commit body
This PR is a follow-up to #39090 and addresses two issues:

* Moves `conpty.dll` and `OpenConsole.exe` out of the `bin` folder to
prevent other programs from using them.
* Updates these files only after Zed exits, avoiding update failures due
to file locks.


Release Notes:

- N/A

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>

张小白 and Jakub Konka created

33f4400 gpui: Respect font smoothing on macOS (#39197)

Click to expand commit body
- Closes #38847
- See also: #37622 and #38467

Release Notes:

- Fonts are now rendered in accordance with the `AppleFontSmoothing`
setting.

Sergei Zharinov created

9d895c5 git_ui: Fix blame avatars using wrong config (#39195)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

0811d48 diagnostics: Reduce cloning of `DiagnosticEntry` (#39193)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

d8cafdf markdown: Add support for HTML `heading` elements (#38590)

Click to expand commit body
This PR adds support for HTML heading (h1, h2, h3, h4, h5, h6) elements.

**Before**
<img width="1440" height="556" alt="Screenshot 2025-09-21 at 11 05 18"
src="https://github.com/user-attachments/assets/6e7241a5-be1c-4018-ba04-f29058f97941"
/>

**After**
<img width="1436" height="598" alt="Screenshot 2025-09-21 at 10 58 12"
src="https://github.com/user-attachments/assets/3f74b5f7-6c35-41db-989b-fcaaede264b5"
/>

cc @SomeoneToIgnore

Release Notes:

- Markdown: Added support for HTML `heading` elements

Remco Smits created

95190a2 Add a test on a `with_timeout` util function (#39187)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Lukas Wirth <lukas@zed.dev>

Kirill Bulatov and Lukas Wirth created

49335d5 Pane tabs: Scroll entire new tab into view (#36827)

Click to expand commit body
The state of the child bounds is not up-to-date when `scroll_to_item`
gets triggered, causing the new tab to not scroll completely into view.

Closes #36317 

Release Notes:

- Fix an issue where a new tab is only partially visible on creation.

hrou0003 created

624e448 Remove bold inlay hints style from all other theme variants (#39177)

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

Release Notes:

- N/A

Co-authored-by: Lukas Wirth <lukas@zed.dev>

Kirill Bulatov and Lukas Wirth created

bf9dd6b python: Fix user settings not getting passed on for Ty (#39174)

Click to expand commit body
Closes #39144

Release Notes:

- python: Fixed user settings not being respected with Ty language
server.

Piotr Osiewicz created

6af3852 zeta_cli: Add retrieval-stats command for comparing with language server symbol resolution (#39164)

Click to expand commit body
Release Notes:

- N/A

---------

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

Michael Sloan and Agus created

cc19387 git_ui: Render avatars in git blame gutter (#39168)

Click to expand commit body
Release Notes:

- Added setting to render avatar in blame gutter

Lukas Wirth created

5922f4a themes: Fix Ayu theme comment colors (#39131)

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

Currently comment colors in Ayu theme do not work as expected and hard
to differentiate. In my understanding something is really wrong how zed
interprets rgba hex color codes, for example:

|  #5c677300 | #5c6773ff |
| ------------- | ---------- |
| <img width="134" height="38" alt="image"
src="https://github.com/user-attachments/assets/c9f1f618-958e-4fe9-a44a-636681d2f418"
/> | <img width="117" height="32" alt="image"
src="https://github.com/user-attachments/assets/78eac6b3-aecd-4be1-83d4-42590604c3a6"
/> |

This PR works around this by using comment color codes from
[ayu-vim](https://github.com/ayu-theme/ayu-vim). Maybe I am not
understanding how RGBA works, but in my opinion underlying issue should
be solved.

Release Notes:

- N/A

Dmitry Nefedov created

cac920d vim: Add support for ignorecase and noignorecase options (#37459)

Click to expand commit body
Update the list of supported options in vim mode so that the following
are now available:

- `:set ignorecase`
- `:set noignorecase`
- `:set ic`
- `:set noic`

This controls whether the case-sensitive search option is disabled or
enabled when using the buffer and project searches, with `ignorecase`
disabling the search option and `noignorecase` enabling it.

Release Notes:

- Added support for `:set ignorecase` and `:set noignorecase` in vim
mode

---------

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

Dino and Conrad Irwin created

773850f zeta2: Use bounded parallelism for tree-sitter indexing + await completion in zeta_cli (#39147)

Click to expand commit body
Also skips indexing files that don't have a suffix that indicates a
known language, and skips when the language doesn't have an outline
grammar.

Release Notes:

- N/A

---------

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

Michael Sloan and Agus created

9c60bc3 vim: Add vim counts and vim shortcuts to project_panel (#36653)

Click to expand commit body
Closes #10930 
Closes #11353

Release Notes:

- Adds commands to project_panel
  - `ctrl-u` scrolls the project_panel up half of the visible entries
  - `ctrl-d` scrolls the project_panel down half of the visible entries
  - `z z` scrolls current selection to center of window
  - `z t`  scrolls current selection to top of window
  - `z b` scrolls current selection to bottom of window
  - `{num} j` and `{num} k` now move up and  down with a count

AidanV created

fbb4dcf Update a Help menu item in app_menus.rs with "Locally" (#39151)

Click to expand commit body
Add the single word "Locally" to clarify where the info is coming from,
(and that you don't need to be online.)

Closes #ISSUE

Release Notes:

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

warrenjokinen created

2ccadc7 perf: Doc fixes (#39150)

Click to expand commit body
Release Notes:

- N/A

Nia created

80989d6 treesitter: Bump to 0.25.10 and fix Go tests (#39138)

Click to expand commit body
Closes #29827

Release Notes:

- Fixed tree-sitter possibly crashing on certain grammars

Nia created

719013d Add YankEndOfLine action (#39143)

Click to expand commit body
Since 2021 Neovim remaps Y to $y (1). DO the same in zed through a new action `YankToEndOfLine`. 

1: https://github.com/neovim/neovim/pull/13268

Release Notes:

- Added vim::YankToEndOfLine action which copies from the cursor to the end of the line excluding the newline. We bind it to Y by default in the vim keymap.

David Kleingeld created

8af3f58 Better conpty (#39090)

Click to expand commit body
Closes #22657
Closes #37863

# Background

Several users have noted that the terminal shipped with Zed on Windows
is either misbehaving or missing several features including lack of
consistent clearing behaviour. After some investigation which included
digging into the Microsoft Terminal project and VSCode editor, it turns
out that the pseudoconsole provided by Windows OS is severely outdated
which manifests itself in problems such as lack of clearing behaviour,
etc. Interestingly however, neither MS Terminal nor VSCode exhibit this
limitation so the question was why. Enter custom `conpty.dll` and
`OpenConsole.exe` runtime. These are updated, developed in MS Terminal
tree subprojects that aim to replace native Windows API as well as
augment the `conhost.exe` process that runs by default in Windows. They
also fix all the woes we had with the terminal on Windows (there is a
chance that ctrl-c behaviour is also fixed with these, but still need to
double check that this is indeed the case). This PR ensures that Zed
also benefits from the update pseudoconsole API.

# Proposed approach

It is possible to fork MS Terminal and instrument the necessary
subprojects for Rust-awareness (using `cc-rs` or otherwise to compile
the C++ code and then embed it in Rust-produced binaries for easier
inclusion in projects) but it comes at a cost of added complexity,
maintenance burden, etc. An alternative approach was proposed by
@reflectronic to download the binary from the official Nuget repo and
bundle it for release/local use. This PR aims to do just that.

There are two bits to this PR:
1. ~~when building Zed locally, and more specifically, when the `zed`
crate is being built, we will strive to download and unpack the binaries
into `OUT_DIR` provided by `cargo`. We will then set
`ZED_CONPTY_INSTALL_PATH=${OUT_DIR}/conpty` and use it at runtime in Zed
binary to tweak the loader's search path with that additional path. This
effectively ensures that Zed built from source on Windows has full
terminal support.~~ EDIT: after several discussions offline, we've
decided that keeping it minimal will serve us best, meaning: when
developing locally it is up to the developer of Zed to install
`conpty.dll` and put it in the loader's search path.
2. when bundling Windows release, we will download and unpack the nuget
package into Zed's bundle which will ensure it is installed in the same
directory as Zed by the installer.

**Note** I realise that 1. may actually not be needed - instead we could
leave that bit for the user who wants to run Zed from source to ensure
that they have `conpty.dll` in the loader's search path. I'd love to
hear opinions on this!

Release Notes:

- N/A

---------

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

Jakub Konka and Cole Miller created