Commit log

5eb68f0 debugger: Fix panic when handling invalid `RunInTerminal` request (#32500)

Click to expand commit body
The new dap-types version has a default to cwd for the
RunInTerminalRequest

Closes #31695

Release Notes:

- debugger beta: Fix panic that occurred when a debug adapter sent an
invalid `RunInTerminal` request

Anthony Eid created

9c51322 Add initial `package.json` scripts task autodetection (#32497)

Click to expand commit body
Now, every JS/TS-related file will get their package.json script
contents added as tasks:

<img width="1020" alt="image"
src="https://github.com/user-attachments/assets/5bf80f80-fd72-4ba8-8ccf-418872895a25"
/>

To achieve that, `fn associated_tasks` from the `ContextProvider` was
made asynchronous and the related code adjusted.

Release Notes:

- Added initial `package.json` scripts task autodetection

---------

Co-authored-by: Piotr Osiewicz <piotr@zed.dev>

Kirill Bulatov and Piotr Osiewicz created

0c0933d debugger: Ungate locator for JS tasks (#32495)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Cole Miller and Anthony Eid created

a4c5a2d debugger: Add 'open docs' button in the panel and mention onboarding in the docs (#32496)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

311e136 debugger: Reuse parent's debug terminal for child sessions (#32493)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Debugger Beta: fixed an issue where the terminal pane of the debug
panel would be empty when debugging JavaScript.

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Cole Miller , Conrad Irwin , and Anthony Eid created

4f5433a Filter language server completions even when `is_incomplete: true` (#32491)

Click to expand commit body
In #31872 I changed the behavior of completions to not filter instead of
requerying completions when `is_incomplete: false`. Unfortunately this
also stopped filtering completions when `is_incomplete: true` - we still
want to filter the incomplete completions so that the menu updates
quickly even when completions are slow. This does mean that the
completions menu will display partial results, hopefully only briefly
while waiting for fresh completions.

Thanks to @mikayla-maki for noticing the regression. Thankfully just in
time to fix it before this makes it into a stable release. Leaving off
release notes since I will cherry-pick this to the current preview
version, 190.x, and there probably won't be a preview release before the
next stable.

Release Notes:

- N/A

Michael Sloan created

295db79 debugger: Fix phantom JavaScript frames (#32469)

Click to expand commit body
JavaScript debugger is using a phantom stack frame to delineate await
points; that frame reuses a frame ID of 0, which collides with other
frames returned from that adapter.

https://github.com/microsoft/vscode-js-debug/blob/934075df8c3c9726ead99aa8ee6815b36d835c34/src/adapter/stackTrace.ts#L287

The bug has since been fixed in
https://github.com/microsoft/vscode-js-debug/issues/2234, but we'll need
to wait for a new release of node debugger for that to make a
difference. Until then..

Release Notes:

- Fixed a bug with JavaScript debugging which led to stack trace list
containing excessive amount of `await` entries.

---------

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

Piotr Osiewicz , Conrad Irwin , and Conrad Irwin created

71d5c57 debugger: Specify runtimeExecutable in output of node locator (#32464)

Click to expand commit body
This appears to fix some cases where we fail to launch JS tests under
the debugger.

Release Notes:

- N/A (node locator is still gated)

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Cole Miller , Anthony Eid , and Conrad Irwin created

dd17fd3 debug: Launch custom commands from start modal (#32484)

Click to expand commit body
Release Notes:

- Add custom command launching from the `debug: start` modal

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Julia Ryan and Anthony Eid created

e4f8c4f debugger: Don't spin forever when adapter disconnects unexpectedly (#32489)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Debugger Beta: made the debug panel UI more helpful when an invalid
configuration is sent to the debug adapter.

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Cole Miller , Anthony Eid , and Conrad Irwin created

e62e9fa docs: Condense Ruby test framework docs (#32472)

Click to expand commit body
Since `tldr` and `quickdraw` use the same kind of task syntax as RSpec,
I don't think it's necessary to have separate examples.

cc @joeldrapper @vitallium 

Release Notes:

- N/A

Andy Waite created

3f419b3 docs: Update Ruby docs about `args` syntax in tasks (#32471)

Click to expand commit body
Due to https://github.com/zed-industries/zed/pull/32345

cc @vitallium 

Release Notes:

- N/A

Andy Waite created

5270844 Revert "Preserve selection direction when running `editor: open selections in multibuffer`" (#32483)

Click to expand commit body
Reverts zed-industries/zed#31399

I found that in some cases, Zed will panic when using `editor: open
selections in multibuffer` if the selection is reversed. It doesn't
happen in most cases that I've tested, but in some strange edge cases
(that I dont fully understand ATM), it does. I'm reverting for now, as
the previous behavior is better than a panic, but will re-implement this
fix to preserving selection directions in a new PR with comprehensive
testing

Release Notes:

- N/A

Joseph T. Lyons created

f567bb5 gpui: Simplify uniform list API by removing entity param (#32480)

Click to expand commit body
This PR also introduces `Context::processor`, a sibling of
`Context::listener` that takes a strong pointer to entity and allows for
a return result.

Release Notes:

- N/A

Co-authored-by: Mikayla <mikayla@zed.dev>

Ben Kunkle and Mikayla created

c556308 debugger: Run jest tests serially (#32473)

Click to expand commit body
Pass `--runInBand` to jest when debugging. This prevents jest from
creating a bunch of child processes that clutter the session list.

It might be a bit more natural to add this argument in the test
templates themselves, but I don't think we want to give up parallelism
when running via `task: spawn`.

Release Notes:

- N/A (JS locator is still gated)

Cole Miller created

e0ca427 debugger: Use JS adapter's suggested names for child sessions (#32474)

Click to expand commit body
Also introduces an extension point for other adapters to do this if it
turns out they also send this information.

Release Notes:

- N/A (JS locator is still gated)

Cole Miller created

02dfaf7 ci: Suppress evals on forks (#32479)

Click to expand commit body
Be kind to those with Zed forks.

Example [action run on
fork](https://github.com/G36maid/freebsd-ports-zed/actions/runs/15525942275)
where [this
job](https://github.com/G36maid/freebsd-ports-zed/actions/runs/15549650437/job/43777665341)
will wait forever. Sorry @G36maid

Release Notes:

- N/A

Peter Tripp created

c9972ca docs: Consolidate and improve organization of Linux GPU issue documentation (#32468)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Ben Kunkle created

9334e15 Allow identifiers in TypeScript/JavaScript test names (#32467)

Click to expand commit body
Current behavior (not detected as runnable):

<img width="1105" alt="image"
src="https://github.com/user-attachments/assets/7d3b7936-43d8-4645-bbbb-e81ed5f9b35a"
/>

New behavior:



https://github.com/user-attachments/assets/524e2a56-cb30-4dc0-98ec-b34b510015e0

Release Notes:

- Improved detection of runnable TypeScript/JavaScript test cases when
they contain identifier

Alexander created

9c47c52 ci: Restore lychee link check. Only validate internal links (#32463)

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

Release Notes:

- N/A

Peter Tripp created

286b97c agent: Fix agent panel model selector layout pushing send button off screen (#32251)

Click to expand commit body
| Before | After |
|--------|-------|
| <video
src="https://github.com/user-attachments/assets/db4dcc91-9a32-4621-be78-87fe9d80b801"
controls width="400"></video> | <video
src="https://github.com/user-attachments/assets/8ee31d6d-5150-4239-a4af-eeca112d56d5"
controls width="400"></video> |

While working on something else I found this weird behaviour in message
editor of agent panel. When model names are too long, the model selector
would expand and push the send button outside the visible area. This
change fixes the flex layout to ensure the send button always remains
accessible while properly truncating long model names.

Closes #ISSUE

Release Notes:

- Fix agent panel model selector layout pushing send button off screen

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>

Umesh Yadav , Danilo Leal , and Danilo Leal created

415d482 agent: Only show the MCP configuration modal in the active window (#32450)

Click to expand commit body
We were previously displaying this modal in all open Zed windows if
triggered. That was a bit annoying because I had to go to each window
individually to close it, which meant doing it multiple times. 😅

Release Notes:

- agent: Fixed the MCP configuration modal to show only in the active
window.

Danilo Leal created

a9d0eee docs: Add link to MCP extensions in the overview page (#32458)

Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/32422. Missed
this one in this latest round of MCP-related docs changes.

Release Notes:

- N/A

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

Danilo Leal and Peter Tripp created

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