Commit log

529fb5f zed 0.204.4

Cole Miller created

12bc66e Fix spawning ACP login task (for v0.204.x) (#38565)

Click to expand commit body
Release Notes:

- Fixed a bug that prevented authenticating in the terminal with Gemini
and Claude Code.

Cole Miller created

7dc833d zed 0.204.3

Cole Miller created

85cfd72 python: Install basedpyright with npm instead of pip (#38471)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Cole Miller created

9ae63f0 zed 0.204.2

Joseph T. Lyons created

9bfe7a1 acp: Fix agent servers sometimes not being registered when Zed starts (#38330)

Click to expand commit body
In local projects, initialize the list of agents in the agent server
store immediately. Previously we were initializing the list only after a
delay, in an attempt to avoid sending the `ExternalAgentsUpdated`
message to the downstream client (if any) before its handlers were
initialized. But we already have a separate codepath for that situation,
in the `AgentServerStore::shared`, and we can insert the delay in that
place instead.

Release Notes:

- acp: Fixed a bug where starting an external agent thread soon after
Zed starts up would show a "not registered" error.

---------

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

Cole Miller , Michael , and Agus created

10f172d 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

a62514d acp: Fix behavior of read_text_file for ACP agents (#38401)

Click to expand commit body
We were incorrectly handling the line number as well as stripping out
line breaks when returning portions of files.

It also makes sure following is updated even when we load a snapshot
from cache, which wasn't the case before.

We also are able to load the text via a range in the snapshot, rather
than allocating a string for the entire file and then another after
iterating over lines in the file.

Release Notes:

- acp: Fix incorrect behavior when ACP agents requested to read portions
of files.

Ben Brandt created

97d0462 Hide BasedPyright banner in toolbar when dismissed (#38135)

Click to expand commit body
This PR fixes the `BasedPyrightBanner`, making sure the banner is
completely hidden in the toolbar, when it was dismissed, or it's not
installed.

Without the fix, the banner still occupies some space in the toolbar,
making the UI looks inconsistent when editing a Python file. The bug is
**especially prominent** when the toolbar is hidden in the user's
settings (see below).

_Banner is shown_
<img width="1470" height="254" alt="Screenshot 2025-09-14 at 11 36 37"
src="https://github.com/user-attachments/assets/1415b075-0660-41ed-8069-c2318ac3a7cf"
/>

_Banner dismissed_
<img width="1470" height="207" alt="Screenshot 2025-09-14 at 11 36 44"
src="https://github.com/user-attachments/assets/828a3fba-5c50-4aba-832c-3e0cc6ed464b"
/>

_Banner dismissed (and the toolbar is hidden)_
<img width="1470" height="177" alt="Screenshot 2025-09-14 at 12 07 25"
src="https://github.com/user-attachments/assets/41aa5861-87df-491f-ac7e-09fc1558dd84"
/>

Closes n/a

Release Notes:

- Fixed the basedpyright onboarding banner

Vladimir Varankin created

4dc0720 Adjust release notes Discord webhook name (#37997)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

8127523 v0.204.x stable

Joseph T. Lyons created

a1c8e69 macOS: Disable NSAutoFillHeuristicController on macOS 26 (#38179)

Click to expand commit body
Closes #33182

From
https://github.com/zed-industries/zed/issues/33182#issuecomment-3289846957,
thanks @mitchellh.

Release Notes:

- Fixed an issue where scrolling could sometimes feel choppy on macOS
26.

Smit Barmase created

3a79ce7 agent_servers: Set proxy env for all ACP agents (#38247)

Click to expand commit body
- Use ProxySettings::proxy_url to read from settings or env
- Export HTTP(S)_PROXY and NO_PROXY for agent CLIs
- Add read_no_proxy_from_env and move parsing from main

Closes https://github.com/zed-industries/claude-code-acp/issues/46

Release Notes:

- acp: Pass proxy settings through to all ACP agents

Ben Brandt created

06e58c3 agent_servers: Let Gemini CLI know it is running in Zed (#38058)

Click to expand commit body
By passing through Zed as the surface, Gemini can know which editor it
is running in.

Release Notes:

- N/A

Ben Brandt created

64adb6d Re-add VSCode syntax node motions (#38208)

Click to expand commit body
Closes #ISSUE

Release Notes:

- (preview only) restored ctrl-shift-{left,right} for Larger/Smaller
syntax node. This is VSCode's default and avoids the breaking change
from #37874

Conrad Irwin created

69a7c3e Ability to update JSON arrays (#38087)

Click to expand commit body
Closes #ISSUE

Adds the ability to our JSON updating code to update arrays within other
objects. Previously updating of arrays was limited to just top level
arrays (i.e. `keymap.json`) however this PR makes it so nested arrays
are supported as well using `#{index}` syntax as a key.

This PR also fixes an issue with the array updating code that meant that
updating empty json values `""` or an empty `keymap.json` file in the
case of the Keymap Editor would fail instead of creating a new array.

Release Notes:

- Fixed an issue where keybindings would fail to save in the Keymap
Editor if the `keymap.json` file was completely empty

Ben Kunkle created

41737ef Fix line indicator format setting (#38071)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Fixed an issue where the `line_indicator_format` setting would not
update based on the value in `settings.json`

Ben Kunkle created

608991d zed 0.204.1

Anthony created

8e0e2a8 Fix auto update not defaulting to true (#38022)

Click to expand commit body
#37337 Made `AutoUpdateSetting` `FileContent =
AutoUpdateSettingsContent` which caused a deserialization bug to occur
because the field it was wrapping wasn't optional. Thus serde would
deserialize the wrapped type `bool` to its default value `false`
stopping the settings load function from reading the correct default
value from `default.json`

I also added a log message that states when the auto updater struct is
checking for updates to make this easier to test.

Release Notes:

- fix auto update defaulting to false

Anthony Eid created

d900f12 Fix panics from unicode slicing in license detection

Michael Sloan created

b3729e0 v0.204.x preview

Joseph T. Lyons created

d110d32 languages: Remove broken pixi environment activation (#37915)

Click to expand commit body
Closes [#ISSUE](https://github.com/zed-industries/zed/issues/37895)

This needs more thought behind it to be implemented properly

Release Notes:

- N/A

Lukas Wirth created

2cf3def acp: Add keybindings for authorizing tool calls (#37876)

Click to expand commit body
TODO:
- [x] Double-check if we like the naming of the new actions
- [x] Only show keybinding hint once per option (e.g. if there are two
`allow_once` buttons only show it on the first one)
- [x] If there are multiple tool calls that need authorisation, only
show keybindings on the first tool call
- [x] Figure out which keybindings to use
- [x] Add linux keybindings
- [x] Add windows keybindings
- [x] Bug: long keybindings can make the buttons overflow


Release Notes:

- Add keybindings for authorizing tool calls (`agent: Allow once`,
`agent: Allow always`, `agent: Reject once`) in the agent panel

---------

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

Bennet Bo Fenner and Agus Zubiaga created

df2d097 editor: Fix adjacent custom highlights interfering with each other (#37912)

Click to expand commit body
Release Notes:

- Fixed matching bracket highlighting not highlighting closing brackets
when adjacent to each other

Co-authored-by: Finn Evers <finn@zed.dev>

Lukas Wirth and Finn Evers created

fcdd427 Revert "markdown: Add support for inline HTML `img` tags inside text (#37264)" (#37893)

Click to expand commit body
This reverts commit e1a5d299721bf14a7cdd41a5ae1bd03ea948c00e.

This have regressed Zed release notes' wrapping which we do not want to
do on a release day:
https://github.com/zed-industries/zed/pull/37264#issuecomment-3265420442

Release Notes:

- N/A

Kirill Bulatov created

9c548a0 workspace: Fix tab bar drop target height when no unpinned tabs present (#37884)

Click to expand commit body
Before:
<img width="846" height="192" alt="Screenshot 2025-09-10 at 4 44 18 AM"
src="https://github.com/user-attachments/assets/3c79e140-e2b2-4e50-9fce-cb182e46d878"
/>

After:
<img width="846" height="192" alt="Screenshot 2025-09-10 at 4 43 13 AM"
src="https://github.com/user-attachments/assets/b5fa853d-ce39-4c81-9773-1d84eebc8cbb"
/>

Release Notes:

- Fixed height of the drop background in the tab bar when no unpinned
tabs are present.

Smit Barmase created

bd0a5dd Potentially fix welcome banner in agent panel not going away (#37879)

Click to expand commit body
Potentially fixes #37367. Just going ahead with the change even though
it's unclear whether this is the fix, since it is quite low risk.

Release Notes:

- N/A

Michael Sloan created

2f40a3b keymap validation: Improve message for action that takes no input (#37877)

Click to expand commit body
See
https://github.com/zed-industries/zed/issues/26370#issuecomment-3200022302

Before (user screenshot):

<img width="650" height="127" alt="Image"
src="https://github.com/user-attachments/assets/9548ce43-657e-46ef-b6be-b95489167ac2"
/>

After (my screenshot):

<img width="616" height="229" alt="image"
src="https://github.com/user-attachments/assets/09028305-e7bb-4a31-bb87-55effbec26f3"
/>

Release Notes:

- N/A

Michael Sloan created

304af66 Fix import not working on first column first row of file (#37746)

Click to expand commit body
Closes #26136

Release Notes:

- fixed auto import not working on first column, first row of file

Mitch (a.k.a Voz) created

d2886d6 ollama: Add mistral-nemo (#37723)

Click to expand commit body
Adding mistral nemo, sorting by name and adding comment about clamp
sizing

Release Notes:

- Added support for mistral-nemo

---------

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

Santiago Bernhardt and Conrad Irwin created

cffb883 Consistently map syntax node navigation actions on macOS (#37874)

Click to expand commit body
Skipping Linux and Windows keymaps here, as it's hard to find a
consistent base-binding for all 4 actions across all platforms that
don't break important actions for each keymap. Someone else can think on
that and make a proposal.

Release Notes:

- Added bindings for navigating between sibling nodes in the syntax tree
on macOS (`cmd-ctrl-{up/down}` for `SelectPreviousSyntaxNode` and
`SelectNextSyntaxNode`). Breaking change: the existing syntax tree
parent/child navigation bindings have moved from
`ctrl-shift-{left/right}` to `cmd-ctrl-{left/right}` to create a unified
four-directional navigation pattern where all syntax tree operations use
the same modifier combination. We could not use the previous base
modifiers without breaking more bindings.

Joseph T. Lyons created

eb7154d Skip "open this directory" menu entry in case of errors (#37872)

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

Release Notes:

- N/A

Kirill Bulatov created

18c6d9d Fix SVG preview not refreshing on external file changes (#37316)

Click to expand commit body
Closes #37208 

## Release Notes:

- Fixed: SVG preview now refreshes automatically when files are modified
by external programs

## Summary

Previously, SVG preview would only refresh when files were saved within
the Zed editor, but not when modified by external programs (like
scripts, other editors, etc.)

## What Changed

The SVG preview now subscribes to file system events through the
worktree system. When an external program modifies an SVG file, the
worktree detects the change and notifies the preview. The preview then
clears its cache and refreshes to show the updated content.

## Before the fix



https://github.com/user-attachments/assets/e7f9a2b2-50f9-4b43-95e9-93a0720749f5


## After the fix


https://github.com/user-attachments/assets/b23511e3-8e59-45a1-b29b-d5105d32bd2c

AI Usage:
Used Cursor for code generation

0xshadow created

414d3be Set usePlaceholders to match Go default (#37551)

Click to expand commit body
Closes #33629

Release Notes:

- changed gopls default to match what Go specifies
https://github.com/golang/tools/blob/master/gopls/doc/settings.md#useplaceholders-bool

Mitch (a.k.a Voz) created

0862a0b git: Add uncommit action (#37031)

Click to expand commit body
Closes #36767

Release Notes:

- Add uncommit action for git

Alvaro Parker created

2e36e97 language_models: Make Copilot Chat resilient to new model vendors and add tokenizer-based token counting (#37118)

Click to expand commit body
While working on fixing this: #37116. I reliased the current
implementation of github copilot is not truly resilient to upstream
changes.

This PR enhances GitHub Copilot Chat to be forward-compatible with new
AI model vendors and improves token counting accuracy by using
vendor-specific tokenizers from the GitHub Copilot API. The system
previously failed when GitHub added new model vendors like xAI with
deserialization errors, and token counting wasn't utilizing the
vendor-specific tokenizer information provided by the API. The solution
adds an Unknown variant to the ModelVendor enum with serde other
attribute to gracefully handle any new vendors GitHub introduces,
implements tokenizer-aware token counting that uses the model's
specified tokenizer mapping o200k_base to gpt-4o with fallback, adds
explicit support for xAI models with proper tool input format handling,
and includes comprehensive test coverage for unknown vendor scenarios.
Key changes include adding the tokenizer field to model capabilities,
implementing the tokenizer method on models, updating tool input format
logic to handle unknown vendors, and simplifying token counting to use
the vendor's specified tokenizer or fall back to gpt-4o. This ensures
Zed's Copilot Chat integration remains robust and accurate as GitHub
continues expanding their AI model provider ecosystem.

Release Notes:

- Enhanced model vendor compatibility to automatically support future AI
providers and improved token counting accuracy using vendor-specific
tokenizers from the GitHub Copilot

---------

Signed-off-by: Umesh Yadav <git@umesh.dev>

Umesh Yadav created

1751bf4 Allow outline modal toggling (#37575)

Click to expand commit body
Closes #37511 

The outline modal seems to have a bug where if it's open and the
`outline::Toggle` is triggered, it would not close if there was another
command with the same keybind. So instead, if the outline modal is open
and an `outline::Toggle` is triggered, we dismiss the modal.

Release Notes:

- Fixed a bug where `outline::Toggle` would sometimes not close outline
modal

Mitch (a.k.a Voz) created

2fae4c7 vim: Make indenting selected lines with `>` and `<` in Helix mode no longer deselect them (#37665)

Click to expand commit body
Improves Helix compatibility by making the Indent keybinds `<` and `>`
no longer deselect lines if they're selected.

Post Indent action current Zed release:
<img width="485" height="271" alt="image"
src="https://github.com/user-attachments/assets/41fd3d94-9c89-49dd-adc5-f696dbd79827"
/>
(Cursor is on the beginning of the first line)

Post Indent action in Helix:
<img width="376" height="144" alt="image"
src="https://github.com/user-attachments/assets/fdd1a489-cf3a-4638-9199-3adffa63ef61"
/>

Post Indent action in this PR:
<img width="463" height="300" alt="image"
src="https://github.com/user-attachments/assets/8edd3b81-e446-4b55-bc90-61cac3661ed7"
/>

Release Notes:

- Fixed selected lines indented with `<` and `>` deselecting in Helix
mode

Jonathan Hart created

1ae3d25 Improve Markdown highlighting (#37669)

Click to expand commit body
Release Notes:

  - Improved Markdown syntax highlighting
  
  
PR #25330 raised concerns about breaking changes, so I split it into two
PRs:
- This PR improves highlighting without deprecating existing selectors.
- PR #37670 is based on this PR and introduces new Markdown selectors.

| Zed 0.202.7 | With this PR |
| --- | --- |
| <img width="800" height="1080" alt="md-0 202 7"
src="https://github.com/user-attachments/assets/0b0b5920-32ed-454f-bc3b-bf5cd0a9086a"
/> | <img width="800" height="1080" alt="md-pr"
src="https://github.com/user-attachments/assets/a5923a2e-391e-4e09-a60b-1a142f9378f3"
/> |

Changes to include the `markup` selector, conforming to
[Neovim](https://github.com/nvim-treesitter/nvim-treesitter/blob/38e46a6d7ade5c8718f77b2b9fd98a0f7ab32c1e/queries/markdown/highlights.scm#L59),
[VS
Code](https://github.com/microsoft/vscode/blob/dfad570d15959a6ce7210a313a1190e76e8fe2e2/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json#L60),
[Atom](https://github.com/atom/language-gfm/blob/6686ac6ccca2632af24d5c200f85bcd80b9fa752/grammars/gfm.json#L147),
and [Zed
itself](https://github.com/zed-industries/zed/blob/1e255e41ccfdb88e2266469f1ccfe0d41533280b/crates/languages/src/gitcommit/highlights.scm#L1).

- `paragraph`, `indented_code_block`, `pipe_table`: `text`
- `# Heading`: `title` -> `title.markup`
- `-`, `1.`, `>`, `|`: `punctuation.markup`
- ```` ``` ````: `punctuation.embedded.markup`
- `[1]: url.com`, `[link](url.com)`: `link_text.markup`
- `url.com`: `link_uri` -> `link_uri.markup`
- `*italic*`: `emphasis` -> `emphasis.markup`
- `**bold**`: `emphasis.strong` -> `emphasis.strong.markup`
- ``` `raw` ```: `text.literal` -> `text.literal.markup`
- `~~strikethrough~~`: `strikethrough.markup`

````md

# Heading

Some stylized text:
- `raw`
- *italic*
- ~strike~
- **strong**

> quoted

```python
print("some code")
```

1. Here is an ![image](image.jpg)
2. A [link](https://github.com/zed-industries)
3. And even a [referenced link][1]

[1]: https://zed.dev

| tables | are |
| --- | --- |
| properly | scoped |

````

chbk created

5e58f44 Fix auth in edit_agent evals (#37869)

Click to expand commit body
Somehow we have a regression where the auth wasn't being called, so the
model didn't exist.

Looking at the code, it is likely this was relying on some other part of
the code doing the auth, since the order wouldn't have worked before
without that happening. This new order of doing auth before checking for
available models should fix it going forward.

Release Notes:

- N/A

Ben Brandt created

d8085d3 zed: Hide Install CLI menu button on Windows (#37843)

Click to expand commit body
The "Install CLI" menu button and `install_cli::Install` action are
effectively no-op on Windows since the CLI is directly available in
Windows Terminal (CMD prompt, PowerShell, etc.) after the user runs Zed
installer package.

Release Notes:

- N/A

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

Jakub Konka and Peter Tripp created

707d0e6 settings ui: Add text field support to ui layer (#37868)

Click to expand commit body
This is an initial implementation that isn't used for any settings yet,
but will be used once `Vec<String>` is implemented.

I also updated the window.with_state api to grant access to a
`Context<S>` app reference instead of just an App.

## Example

<img width="603" height="83" alt="Screenshot 2025-09-09 at 2 15 56 PM"
src="https://github.com/user-attachments/assets/7b3fc350-a157-431f-a4bc-80a1806a3147"
/>


Release Notes:

- N/A

Anthony Eid created

46fb521 git_ui: Show author name on commits in branch picker (#36812)

Click to expand commit body
See related discussion
https://github.com/zed-industries/zed/discussions/36511.

<img alt="zed"
src="https://github.com/user-attachments/assets/da7fc30d-2504-48f4-a392-7c8d5cd8acb1"
/>

Release Notes:

- Added option to show the author name in a branch picker commit
information

---------

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

Lev Zakharov and Conrad Irwin created

9529cd1 project_panel: Add action to open file in split pane (#36973)

Click to expand commit body
Closes #18605

Related:
- https://github.com/zed-industries/zed/discussions/16901
- https://github.com/zed-industries/zed/issues/10549

Adds an action to open file in split pane. Also updates vim keybindings
for better compatibility with netrw:
[“v”](https://github.com/vim/vim/blob/bc461f952d854ffbde83eb74044efc3b329ea10e/runtime/pack/dist/opt/netrw/doc/netrw.txt#L1091)
and
[“o”](https://github.com/vim/vim/blob/bc461f952d854ffbde83eb74044efc3b329ea10e/runtime/pack/dist/opt/netrw/doc/netrw.txt#L1075)
keys should open file in splits.

<table>
<tr>
<td><video
src="https://github.com/user-attachments/assets/e24c6fd4-4eb0-407a-bdd1-5300908ea2a1">
<td><video
src="https://github.com/user-attachments/assets/fa0b8105-41a9-4421-a3cc-89244a90d67a">
</table>


Release Notes:

- Added `project_panel::OpenSplitVertical` and
`project_panel::OpenSplitHorizontal` actions for opening file in a
splits.

Ivan Trubach created

14ffd7b editor: Implement Go to next/prev Document Highlight (#35994)

Click to expand commit body
Closes #21193
Closes #14703 

Having the ability to navigate directly to the next
symbolHighlight/reference lets you follow the data flow of a variable.
If you highlight the function itself (depending on the LSP), you can
also navigate to all returns.

Note that this is a different feature from navigating to the next match,
as that is not language-context aware. For example, if you have a var
named foo it would also navigate to an unrelated variable fooBar.

Here's how this patch works:

- The editor struct has a background_highlights.
- Collect all highlights with the keys [DocumentHighlightRead,
DocumentHighlightWrite]
- Depending on the direction, move the cursor to the next or previous
highlight relative to the current position.

Release Notes:

- Added `editor::GoToNextDocumentHighlight` and
`editor::GoToPreviousDocumentHighlight` to navigate to the next LSP
document highlight. Useful for navigating to the next usage of a certain
symbol.

Marco Munizaga created

9431c65 git: Improve error messages (#35946)

Click to expand commit body
Release Notes:

- Improved git error messages

Includes stderr in the error message for git commands, provides better
output for things like errors when switching branches.

Before:
<img width="702" height="330" alt="image"
src="https://github.com/user-attachments/assets/f32402ae-b85c-4b0b-aae8-789607e8ec9e"
/>

After:
<img width="650" height="575" alt="image"
src="https://github.com/user-attachments/assets/308dbe3c-1ff9-40b9-a187-1e12d2488c80"
/>

---------

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

Jacob and Conrad Irwin created

b2d7e34 Update Editor::select_larger_syntax_node (#36971)

Click to expand commit body
When the cursor was sitting on a syntactically insignificant character,
like a `{` or `,`, this function was selecting only that character, when
what the user likely wanted was to select the next larger syntax node.

Those punctuation characters all seemed to be not "named", in
tree-sitter terminology, so I updated the function to walk up the node
tree until it found a node where `is_named()` is true.

Closes #4555 

Also, while writing the tests, the output of a failing test with the
wrong thing selected was harder to read than it needed to be.

It used to output a diff of ranges, like this:

<img width="217" height="111" alt="image"
src="https://github.com/user-attachments/assets/00de53a8-8776-47aa-8101-5a5b5bc3fa5e"
/>

I leveraged the existing `generate_marked_text` helper function and
updated the assertion to output a diff of the text with the selection
markers:

<img width="211" height="116" alt="image"
src="https://github.com/user-attachments/assets/53b2b882-2676-4c70-8718-e2e2ba6f254e"
/>

Happy to make that a separate PR, if needed.

Release Notes:

- Fixed Editor select_larger_syntax_node to be smart about punctuation.

Paul Sadauskas created

61d4718 Make it possible to support GPUI in the scheduler crate (#37849)

Click to expand commit body
Added features that weren't needed in our cloud code.

Release Notes:

- N/A

---------

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

Antonio Scandurra and Nathan created

9e903c9 Add path/status sorting toggle to git panel menu (#35704)

Click to expand commit body
Adds a new menu option to toggle between sorting git entries by path or
status, with settings integration

Release Notes:

- Git Panel: Added toggle to switch between sorting git panel entries by
path or by status (available in git panel ellipsis menu)

---------

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

nick-kilian and Conrad Irwin created

d81479e Allow user-defined worktree names in title bar and platform windows (#36713)

Click to expand commit body
Closes #36637 

Release Notes:
- Adds the ability to specify a human-readable project name for each
worktree.


https://github.com/user-attachments/assets/ce980fa6-65cf-46d7-9343-d08c800914fd

Warpten created