Commit log

e4e3409 extension_host: Fix SSH reconnect breaks language server (#32457)

Click to expand commit body
Closes #29032

This PR fixes an issue where reconnecting to SSH Remote would result in
a broken language server.

This was caused by SSH clients not registering because the `ssh_clients`
map would still contain an entry from a previously killed SSH server.
For fix, now we also check if its value has been dropped.

Release Notes:

- Fixed issue where reconnecting to SSH Remote would result in broken
code completions and diagnostics.

Smit Barmase created

46f98b6 ci: Move lychee link check to script/check-links (#32460)

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

Transient link failure was blocking PR tests passing. [Example
run](https://github.com/zed-industries/zed/actions/runs/15560960788/job/43812878693?pr=32458).

Release Notes:

- N/A

Peter Tripp created

c1a4a24 Ensure pull diagnostics do not happen for non-full mode editors (#32449)

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

Release Notes:

- N/A

Kirill Bulatov created

eb5f595 editor: Dismiss drag selection when dropped outside editor (#32382)

Click to expand commit body
This PR fixes two issues:

1. On macOS, using Alt to copy the selection instead of cutting it.
2. Dropping the drag selection outside the editor dismisses it.  


https://github.com/user-attachments/assets/341e21c3-3eca-4e58-9bcc-8ec1de18e999


Release Notes:

- N/A

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

CharlesChen0823 and Smit Barmase created

2dad48d windows: Fix panic when deleting the last pre-edit char using Pinyin IME (#32442)

Click to expand commit body
Release Notes:

- N/A

张小白 created

16853ac Enable cross-region inference for Claude 4 family models on Amazon Bedrock provider (#32235)

Click to expand commit body
These models require cross-region inference, and it currently fails if
you try to use them:
```
Invocation of model ID anthropic.claude-sonnet-4-20250514-v1:0 with on-demand throughput isn’t supported. 
```

Release Notes:

- Enable cross-region inference for Claude 4 family models on Amazon
Bedrock provider

Signed-off-by: Burak Varlı <burakvar@amazon.co.uk>

Burak Varlı created

64d6492 Add missing `#[track_caller]` meant to be in #32433 (#32434)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

08210b5 Don't push to selection history if selections are empty (#32433)

Click to expand commit body
I got a panic during undo but haven't been able to repro it. Potentially
a consequence of my changes in #31731

> Thread "main" panicked with "There must be at least one selection" at
crates/editor/src/selections_collection.rs

Leaving release notes blank as I'm not sure this actually fixes the
panic

Release Notes:

- N/A

Michael Sloan created

6070aea Skip adding initial `1:1` cursor position to selection history (#32432)

Click to expand commit body
Also improves some minor corner cases in `undo_selection` and
`redo_selection` related to the use of `end_selection`. If the pending
selection was ended, this would separately get pushed to the redo or
undo stack and redundantly run all the other effects of selection
change.

Release Notes:

- N/A

Michael Sloan created

16b44d5 debugger: Use Delve to build Go binaries (#32221)

Click to expand commit body
Release Notes:

- debugger: Use delve to build go debug executables, and pass arguments
through.

---------

Co-authored-by: sysradium <sysradium@users.noreply.github.com>
Co-authored-by: Zed AI <ai@zed.dev>

Conrad Irwin , sysradium , and Zed AI created

3bed830 Use unix pipe to capture environment variables (#32136)

Click to expand commit body
The use of `NamedTempFile` in #31799 was not secure and could
potentially cause write permission issues (see [this
comment](https://github.com/zed-industries/zed/issues/29528#issuecomment-2939672433)).
Therefore, it has been replaced with a Unix pipe.

Release Notes:
- N/A

Haru Kim created

ee2a329 Slow down reconnects on collab (#32418)

Click to expand commit body
We believe that collab deploys currently cause outages because:

* All clients try to reconnect simultaneously
* This causes very high CPU usage on collab (and to some extent, the
database)
* This means that collab is slow to respond to clients
* So clients timeout and retry, over and over again.

We hope by letting clients in in buckets of 512, we can accept some
minor slowness to avoid
complete downtime, while we rewrite the system.

Release Notes:

- N/A

Conrad Irwin created

6d64058 Add `pane: unpin all tabs` (#32423)

Click to expand commit body
After integrating pinned tabs into my workflow, I've come to the
conclusion that it is painfully slow to unpin all tabs by hand.


https://github.com/user-attachments/assets/ad087b8e-4595-4c4d-827f-188e36170c25

Release Notes:

- Added a `pane: unpin all tabs` action

Joseph T. Lyons created

7c2822a docs: Improve MCP-related pages (#32422)

Click to expand commit body
While creating a new MCP extension this weekend, I visited these pages
and it felt like they could be improved a little bit. I'm renaming the
MCP-related page under the /extension directory to use the "MCP"
acronym, instead of "context servers".

Release Notes:

- N/A

Danilo Leal created

3db0038 agent: Improve generating dots display (#32421)

Click to expand commit body
Previously, upon hitting the "Continue" button to restart an interrupted
thread due to consecutive tool calls reaching its limit, you wouldn't
see the loading dots and the UI would be a weird state. This PR improves
when these loading dots actually show up, including in their conditional
a check for `message.is_hidden`.

Also took advantage of the opportunity to quickly organize some of these
variables. The `render_message` function could potentially be chopped up
in more smaller pieces. Lots of things going on here.

Release Notes:

- N/A

Danilo Leal created

3dfbd9e Fix ruby debugger (#32407)

Click to expand commit body
Closes #ISSUE

Release Notes:

- debugger: Fix Ruby (was broken by #30833)

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Piotr Osiewicz <peterosiewicz@gmail.com>
Co-authored-by: Cole Miller <m@cole-miller.net>

Conrad Irwin , Anthony Eid , Piotr Osiewicz , and Cole Miller created

b103d76 Improve handling of large output in embedded terminals (#32416)

Click to expand commit body
#31922 made embedded terminals automatically grow to fit the content. We
since found some issues with large output which this PR addresses by:

- Only shaping / laying out lines that are visible in the viewport
(based on `window.content_mask`)
- Falling back to embedded scrolling after 1K lines. The perf fix above
actually makes it possible to handle a lot of lines, but:
- Alacrity uses a `u16` for rows internally, so we needed a limit to
prevent overflow.
- Scrolling through thousands of lines to get to the other side of a
terminal tool call isn't great UX, so we might as well set the limit
low.
- We can consider raising the limit when we make card headers sticky.

Release Notes:

- Agent: Improve handling of large terminal output

Agus Zubiaga created

ab70e52 agent: Improve MCP status indicator tooltip and loading state (#32414)

Click to expand commit body
Mostly a small tweak making sure that the indicator tooltip hit area is
bigger and the loading state is clearer (not using an indicator
anymore). Way more little improvement opportunities in this component to
do, though.

Release Notes:

- N/A

Danilo Leal created

f0ce62e editor: Add trailing whitespace rendering (#32329)

Click to expand commit body
Closes #5237

- Adds "trailing" option for "show_whitespaces" in settings.json
- Supports importing this setting from vscode

The option in question will render only whitespace characters that
appear after every non-whitespace character in a given line.

Release Notes:

- Added trailing whitespace rendering

JonasKaplan created

f0345df debugger: Undo conversion of stack frames list to uniform list (#32413)

Click to expand commit body
Partially reverts #30682

A uniform list is desirable for the scrolling behavior, but this breaks
badly when there are collapsed entries or entries without paths, both of
which seem common with the JS adapter.

It would be nice to go back to a uniform list if we can come up with a
set of design tweaks that allow all entries to be the same height.

Release Notes:

- Debugger Beta: fixed an issue that caused entries in the stack frame
list to overlap in some situations.

Cole Miller created

bbd2262 Fix buffer rendering on every mouse move (#32408)

Click to expand commit body
Closes #32210

This notify was added in #13433. Solution is to only notify when the
breakpoint indicator state has changed.

Also improves the logic for enqueuing a task to delay showing - now only
does this if it isn't already visible, and that delay task now only
notifies if still hovering.

Release Notes:

- Fixed a bug where buffers render on every mouse move.

Michael Sloan created

c4fd9e1 Switch to using weak transactions for queries happening on connection (#32411)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Conrad <conrad@zed.dev>

Antonio Scandurra and Conrad created

0b7583b Refine styling of merge conflicts (#31012)

Click to expand commit body
- Improved colors
- Blank out diff hunk gutter highlights in conflict regions
- Paint conflict marker highlights all the way to the gutter

Release Notes:

- Improved the highlighting of merge conflict markers in editors.

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Co-authored-by: Cole Miller <cole@zed.dev>

Nate Butler , Marshall Bowers , and Cole Miller created

e4bd115 More resilient eval (#32257)

Click to expand commit body
Bubbles up rate limit information so that we can retry after a certain
duration if needed higher up in the stack.

Also caps the number of concurrent evals running at once to also help.

Release Notes:

- N/A

Ben Brandt created

fa54fa8 Store pulled diagnostics' result_ids more persistently (#32403)

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

`BufferId` can change between file reopens: e.g. open the buffer, close
it, go back in history to reopen it — the 2nd one will have a different
`BufferId`, but the same `result_ids` semantically.

Release Notes:

- N/A

Kirill Bulatov created

de16f2b Bypass account age check when feature flag is set (#32393)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

e3b13b5 title_bar: Merge Linux only code into `platform_linux` (#32401)

Click to expand commit body
Release Notes:

- N/A

Jason Lee created

2c5d2a5 Do not skip punctuation characters with `alt-arrow` if next character is `\n` (#32368)

Click to expand commit body
Closes #32356

Release Notes:

- N/A

Tommy D. Rossi created

3485b77 Update GitHub Issue Templates (June 2025) (#32399)

Click to expand commit body
- Remove git/edit predictions templates
- Rename Agent to AI related (include edit predictions, copilot, etc)
- Other minor adjustments

Release Notes:

- N/A

Peter Tripp created

6801b91 context_server: Make notifications type safe (#32396)

Click to expand commit body
Follow up to #32254 

Release Notes:

- N/A

Bennet Bo Fenner created

3853e83 git_ui: Improve error handling in commit message generation (#29005)

Click to expand commit body
After and Before video of the issue and solution.


https://github.com/user-attachments/assets/40508f20-5549-4b3d-9331-85b8192a5b5a



Closes #27319

Release Notes:

- Provide Feedback on commit message generation error

---------

Signed-off-by: Umesh Yadav <umesh4257@gmail.com>
Co-authored-by: Cole Miller <cole@zed.dev>

Umesh Yadav and Cole Miller created

047a7f5 Decrease the size of the branch picker icon (#32387)

Click to expand commit body
<img width="323" alt="image"
src="https://github.com/user-attachments/assets/0060eaf3-35f9-4f0f-b9b6-e26ffad853c2"
/>

<img width="323" alt="image"
src="https://github.com/user-attachments/assets/57b66dae-2a74-401f-82c1-8fc730a98fb0
" />

Release Notes:

- Adjusted size of the icon inside the title bar's branch picker when
that's turned on.

Ben Hamment created

8332e60 language: Don't add final newline on format for an empty buffer (#32320)

Click to expand commit body
Closes #32313

Release Notes:

- Fixed newline getting added on format to empty files

Evan Simkowitz created

afab4b5 agent: Add tests for thread serialization code (#32383)

Click to expand commit body
This adds some unit tests to ensure that the `update(...)`/migration
path to the latest versions works correctly

Release Notes:

- N/A

Bennet Bo Fenner created

0cb7dd2 git_panel: Persist dock size (#32111)

Click to expand commit body
Closes #32054

The dock size for the git panel wasn't being persisted across Zed
restarts. This was because the git panel lacked the serialization
pattern used by other panels.

Please let me know if you have any sort of feedback or anything, as i'm
still trying to learn :]

Release Notes:

- Fixed Git Panel dock size not being remembered across Zed restarts

## TODO
- [x] Update/fix tests that may be broken by the GitPanel constructor
changes

vipex created

387281f project_panel: Add `hide_root` when only one folder in the project (#25289)

Click to expand commit body
Closes #24188

Todo:
- [x] Hide root when only one worktree
- [x] Basic tests
- [x] Docs
- [x] Fix `select_first` + tests
- [x] Fix auto collapse dir + tests
- [x] Fix file / dir creation + tests
- [x] Fix root rename case

| Show root | Hide root |
|--------|--------|
| <img width="272" alt="Screenshot 2025-02-20 alle 22 35 55"
src="https://github.com/user-attachments/assets/361d93c7-e1ad-4419-a5f4-be62c9632807"
/> | <img width="269" alt="Screenshot 2025-02-20 alle 22 36 11"
src="https://github.com/user-attachments/assets/62011f76-a24b-4297-9734-f5c3b9f75760"
/> |
| <img width="275" alt="Screenshot 2025-02-20 alle 22 56 33"
src="https://github.com/user-attachments/assets/77e7e6e6-3dfe-4e88-b4b0-b620cb809d2b"
/> | <img width="267" alt="Screenshot 2025-02-20 alle 22 55 53"
src="https://github.com/user-attachments/assets/fa1099c8-7ed0-45ef-a7cf-aeb54b8283b1"
/> |


Release Notes:

- Added support to hide the root entry of the Project Panel when there’s
only one folder in the project. This can be enabled by setting
`hide_root` to `true` in the `project_panel` config.

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

Angelk90 and Smit Barmase created

72bcb0b chore: Fix warnings for Rust 1.89 (#32378)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

4ff41ba context_server: Update types to reflect latest protocol version (`2025-03-26`) (#32377)

Click to expand commit body
This updates the `types.rs` file to reflect the latest version of the
MCP spec. Next up is making use of some of these new capabilities. Would
also be great to add support for [Streamable HTTP
Transport](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http)

Release Notes:

- N/A

Bennet Bo Fenner created

16e901f docs: Remove reference to outdated Gemini models (#32379)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

54b4587 Add bound checks for resizing right dock (#32246)

Click to expand commit body
Closes #30293


[Before](https://github.com/user-attachments/assets/0b95e317-391a-4d90-ba78-ed3d4f10871d)
|
[After](https://github.com/user-attachments/assets/23002a73-103c-4a4f-a7a1-70950372c9d9)

Release Notes:

- Fixed right panel expanding in backwards, when dragged out of its
intended bounds, by adding a bounds check to ensure its size never gets
to high.

smaster created

1fe1011 Add GitHub token environment variable support for Copilot (#31392)

Click to expand commit body
Add support for environment variables as authentication alternatives to
OAuth flow for Copilot. Closes #31172

We can include the token in HTTPS request headers to hopefully resolve
the rate limiting issue in #9483. This change will be part of a separate
PR.

Release Notes:

- Added support for manually providing an OAuth token for GitHub Copilot
Chat by assigning the GH_COPILOT_TOKEN environment variable

---------

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

Clauses Kim and Bennet Bo Fenner created

78fd268 gemini: Fix edge case when transforming MCP tool schema (#32373)

Click to expand commit body
Closes #31766

Release Notes:

- Fixed an issue where some MCP tools would not work when using Gemini

Bennet Bo Fenner created

da9e958 ruby: Update documentation (#32345)

Click to expand commit body
Hi! This pull request updates the Ruby extension documentation for [the
upcoming v0.9.0
upgrade](https://github.com/zed-extensions/ruby/pull/106):

- Added documentation for two newly added language servers: `sorbet` and
`steep`.
- Updated documentation on using the `ZED_CUSTOM_RUBY_TEST_NAME` symbol
for tasks.

Thanks!

Release Notes:

- N/A

Vitaly Slobodin created

3908ca9 docs: Add JavaScript configuration to the example setup of Deno (#32104)

Click to expand commit body
When using Deno with the example configuration as described here,
duplicate lsp information is displayed in Javascript files.

This pull request solves that issue by adding Javascript to the
configuration.

Release Notes:

- Improve LSP support when using Deno with Javascript using the default
configuration.

dannybunschoten created

6fe58a2 Allow to run dynamic TypeScript and JavaScript tests (#31499)

Click to expand commit body
First of all thank you for such a fast editor!

I realized that the existing support for detecting runnable test cases
for typescript/javascript is not full. Meanwhile I can run most of test
by pressing "run button":

<img width="713" alt="image"
src="https://github.com/user-attachments/assets/e8bb1cb1-f0a5-4eb1-b9a6-7188a9fa47ae"
/>

I can't run dynamic tests:

<img width="703" alt="image"
src="https://github.com/user-attachments/assets/d7eef1bc-e99a-4f05-9d62-ec49b8194959"
/>

I was curious whether I can improve it on my own and created this pr. I
edited schemas and added minor changes in `TaskTemplate` to allow to
replace '%s' with regexp pattern, so it can match test cases:

<img width="772" alt="image"
src="https://github.com/user-attachments/assets/db3a6fe0-ad90-4853-8e98-4215e41dfe88"
/>

Release Notes:

- Allow to run dynamic TypeScript/JavaScript tests

---------

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

Alexander and Piotr Osiewicz created

79e7ccc vim: Handle case sensitive search editor setting (#32276)

Click to expand commit body
Update the `vim::normal::search::Vim.search` method in order to
correctly set the search bar's case sensitive search option if the
`search.case_sensitive` setting is enabled.

Closes #32172 

Release Notes:

- vim: Fixed a bug where the `search.case_sensitive` setting was not respected when activating search with <kbd>/</kbd> (`vim::Search`)

Dino created

0bc9478 language_models: Add support for images to Mistral models (#32154)

Click to expand commit body
Tested with following models. Hallucinates with whites outline images
like white lined zed logo but works fine with zed black outlined logo:

Pixtral 12B (pixtral-12b-latest)
Pixtral Large (pixtral-large-latest)
Mistral Medium (mistral-medium-latest)
Mistral Small (mistral-small-latest)

After this PR, almost all of the zed's llm provider who support images
are now supported. Only remaining one is LMStudio. Hopefully we will get
that one as well soon.

Release Notes:

- Add support for images to mistral models

---------

Signed-off-by: Umesh Yadav <git@umesh.dev>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>

Umesh Yadav , Bennet Bo Fenner , and Bennet Bo Fenner created

4ac7935 language_models: Add thinking support to LM Studio provider (#32337)

Click to expand commit body
It works similar to how deepseek works where the thinking is returned as
reasoning_content and we don't have to send the reasoning_content back
in the request.

This is a experiment feature which can be enabled from settings like
this:
<img width="1381" alt="Screenshot 2025-06-08 at 4 26 06 PM"
src="https://github.com/user-attachments/assets/d2f60f3c-0f93-45fc-bae2-4ded42981820"
/>

Here is how it looks to use(tested with
`deepseek/deepseek-r1-0528-qwen3-8b`

<img width="528" alt="Screenshot 2025-06-08 at 5 12 33 PM"
src="https://github.com/user-attachments/assets/f7716f52-5417-4f14-82b8-e853de054f63"
/>


Release Notes:

- Add thinking support to LM Studio provider

Umesh Yadav created

c75ad2f language_models: Add thinking support to DeepSeek provider (#32338)

Click to expand commit body
For DeepSeek provider thinking is returned as reasoning_content and we
don't have to send the reasoning_content back in the request.

Release Notes:

- Add thinking support to DeepSeek provider

Umesh Yadav created

365997d docs: Remove duplicate Clang-Format link (#32359)

Click to expand commit body
Release Notes:

- N/A

andrewkolda created