Commit log

fc26946 extension: Update DAP extension API (#32448)

Click to expand commit body
- DAP schemas will be stored in `debug_adapters_schemas` subdirectory in
extension work dir.
- Added Debug Config integration and such.

Release Notes:

- N/A

Piotr Osiewicz created

85dd7d0 Pass project environment to runInTerminal requests (#32720)

Click to expand commit body
Closes #ISSUE

Release Notes:

- debugger: Pass environment to run in terminal requests

Conrad Irwin created

628873c Attempt to log error instead of crash in bracket highlighting (cherry-pick #32837) (#32841)

Click to expand commit body
Cherry-picked Attempt to log error instead of crash in bracket
highlighting (#32837)

Crashes look like:

```
Panic `offset 632 is greater than the snapshot.len() 631` on thread 0 (com.apple.main-thread)

<multi_buffer::MultiBufferSnapshot>::innermost_enclosing_bracket_ranges::<usize>
editor::highlight_matching_bracket::refresh_matching_bracket_highlights
<gpui::app::App>::update_window_id::<bool, <gpui::app::context::Context<editor::Editor>>::subscribe_in<multi_buffer::MultiBuffer, multi_buffer::Event, <editor::Editor>::on_buffer_event>::{closure#0}::{closure#0}>::{closure#0}
<gpui::app::context::Context<editor::Editor>>::subscribe_in::<multi_buffer::MultiBuffer, multi_buffer::Event, <editor::Editor>::on_buffer_event>::{closure#0}
<gpui::app::App>::flush_effects
<project::lsp_store::LocalLspStore>::format_buffer_locally::{closure#0}
<project::lsp_store::LspStore>::format::{closure#1}::{closure#0}::<i32>
```

Though `format_buffer_locally` is not always present. Both issue reports
mention usage of the agent. I suspect this is somehow a result of agent
format-on-save combined with the user's cursor being at the end of the
buffer as it's getting edited by the agent.

The offsets are always off-by-one in the error, so at first I thought
the issue was the condition `head < snapshot.buffer_snapshot.len()`
before setting `tail` to be `head + 1`, but an offset equal to len is
valid. Seems like to get a `to_offset` crash, `head` must be greater
than `len`. Which is quite weird, a selection's offset should never be
out of bounds.

Since this code is just about highlighting brackets, this PR logs an
error instead of crashing in the `head > len` case.

Closes #32732, #32171

Release Notes:

- N/A

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

gcp-cherry-pick-bot[bot] and Michael Sloan created

f1ddd33 Cherry-pick "linux: Add mouse cursor icon name synonyms #32820" (#32833)

Click to expand commit body
Most of the default icon sets on Ubuntu do not use the names that were
there. To fix, using the icon synonyms from the chromium source. This
will probably fix some of the linux mouse cursor issues tracked in
https://github.com/zed-industries/zed/issues/26141

Also adds a note in the load failure logs mentioning that misconfigured
XCURSOR_PATH may be the issue. I ran into this because
https://github.com/snapcrafters/alacritty/issues/21.

On X11 also adds:

Caching of load errors to log once for missing cursor icons.

Fallback on default cursor icon. This way if there was a transition from
a non-default icon to a missing icon it doesn't get stuck showing the
non-default icon.

Leaving release notes blank as I have other mouse cursor fixes and would
prefer to just have one entry in the release notes.

Release Notes:

Linux: Fixed a couple bugs that can cause the mouse cursor to not appear
or only appear as an arrow

Michael Sloan created

44a31e2 Use a proper snapshot version when resolving for utf16 points (cherry-pick #32815) (#32826)

Click to expand commit body
Cherry-picked Use a proper snapshot version when resolving for utf16
points (#32815)

Release Notes:

- Fixed a panic when merging pull and (newer) push diagnostics

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

Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: Conrad Irwin <conrad@zed.dev>

gcp-cherry-pick-bot[bot] , Kirill Bulatov , and Conrad Irwin created

587da10 Deploy code runner menu from correct display row (cherry-pick #32594) (#32825)

Click to expand commit body
Cherry-picked Deploy code runner menu from correct display row (#32594)

This fixes a bug introduced in #32579 where the code runner menu would
be deployed from the most recent cursor position instead of the row that
the runner icon was rendered on.

Release Notes:

- N/A

Co-authored-by: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com>

gcp-cherry-pick-bot[bot] and Anthony Eid created

71e0df8 inline assistant: Do not dismiss while generating when hitting enter (#32810)

Click to expand commit body
Closes #32798

Release Notes:

- Fixed an issue where the inline assistant would be dismissed when
hitting enter while generating code

Bennet Bo Fenner created

80d56e2 zed 0.191.3

Joseph T. Lyons created

657247e debugger: Fix module list getting queried when not shown (#32761)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

82c1ae5 debugger: Select first stack frame with valid path (#32724)

Click to expand commit body
This PR addresses an issue where we could get a stack frame list and
automatically select a stack frame that didn't have a valid path.
Causing a failure on Zed's end to select/update the active debug line.
The fix for this is selecting the first non-subtle stack frame that has
the optional path parameter.

We also made subtle stack frames move into their own collapsable list as
well.

Release Notes:

- debugger: Fix edge case where hitting a breakpoint wouldn't take you
to the active debug line

Co-authored-by: Remco Smits <djsmits12@gmail.com>

Anthony Eid and Remco Smits created

d5fe212 debugger: Use the right adapter for `type: node-terminal` (#32723)

Click to expand commit body
Closes #32690 

Release Notes:

- Debugger Beta: fixed `node-terminal` JavaScript configurations from
launch.json not working.

Cole Miller created

b1b247d debugger: Add support for label presentation hints for stack frames (#32719)

Click to expand commit body
Release Notes:

- debugger: Add support for `Label` stack frame kinds

Co-authored-by: Remco Smits <djsmits12@gmail.com>

Anthony Eid and Remco Smits created

484cc91 debugger: Improve logging of debug sessions (#32718)

Click to expand commit body
This PR fixes a common issue where a debug session won't start up and
user's weren't able to get any logs from the debug session. We now do
these three things

1. We know store a history of debug sessions
2. We added a new option to only look at the initialization sequence 
3. We default to selecting a session in dap log view in stead of none

Release Notes:

- debugger: Add history to debug session logging

---------

Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Remco Smits <djsmits12@gmail.com>

Anthony Eid , Cole Miller , and Remco Smits created

bb0c932 debugger: Focus child sessions if parent has never stopped (#32693)

Click to expand commit body
Closes #ISSUE

Release Notes:

- When debugging JavaScript, Zed will now preselect child sessions by
default.

Piotr Osiewicz created

42608ef zed 0.191.2

Joseph T. Lyons created

b217dae debugger: Mark DapLocator::create_scenario as an async function (#32680)

Click to expand commit body
Paves way for locators in extensions.

Release Notes:

- N/A

Piotr Osiewicz created

8d40bc6 Fix code actions run confusion (#32579)

Click to expand commit body
Now if you click the triangle you get runnables, if you click the
lightning bolt you get code actions, if you trigger the code actions
menu with the mouse/keyboard you still get both.

Release Notes:

- Fixed the run/code actions menu to not duplicate content when opened
from the respective icons.

---------

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

Conrad Irwin and Anthony Eid created

5170bc3 debugger: Fix regression in rendering of stack frame list (#32682)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

1b3a5d9 debugger: Show errors loading stack (#32658)

Click to expand commit body
- **TEMP**
- **Show errors loading stack frames**
- **Stop cloning every DAP response unnecessarily**

Closes #ISSUE

Release Notes:

- debugger: Show errors loading stack frames.

<img width="1840" alt="Screenshot 2025-06-12 at 23 53 42"
src="https://github.com/user-attachments/assets/310d3046-f34c-4964-acef-f9742441c9db"
/>

Conrad Irwin created

a5113d8 debugger: Fix running JS tests when worktree root and package root do not coincide (#32644)

Click to expand commit body
- construct the correct path to the test library based on the location
of package.json
- run scripts from the package root where they were defined
- run tests in the directory of the defining file

Release Notes:

- Debugger Beta: fixed running JS tests when the worktree root is above
the location of package.json.

---------

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

Cole Miller , Anthony , and Conrad Irwin created

66427e5 debugger: Add an action to copy debuggee info and initialization args (#32647)

Click to expand commit body
Release Notes:

- Debugger Beta: added the `dev: copy debug adapter arguments` action to
help troubleshoot debug configurations.

Cole Miller created

112a11d debugger: Pass --nocapture to cargo tests when building debug tasks with locator (#32633)

Click to expand commit body
Release Notes:

- Add --nocapture as a default argument when debugging rust tests

Co-authored-by: Cole Miller <m@cole-miller.net>

Anthony Eid and Cole Miller created

631b643 debugger: Do not swallow `port` property when converting launch.json (#32621)

Click to expand commit body
with JavaScript scenarios.

Closes #32187

Release Notes:

- Fixed `port` property not being respected in debug scenarios converted
from VSC's launch.json

Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>

Piotr Osiewicz and Ben Kunkle created

89f0c72 client: Fix an issue where non-IP proxy URLs didn’t resolve correctly (cherry-pick #32664) (#32679)

Click to expand commit body
Cherry-picked client: Fix an issue where non-IP proxy URLs didn’t
resolve correctly (#32664)

If the proxy URL is in the form of `example.com` instead of a raw IP
address, and `example.com` isn't a well-known domain, then the default
URL resolution can fail.

The test setup:

A Linux machine runs a CoreDNS server with a custom entry: `10.254.7.38
example.com`. On a Windows machine, if the proxy URL is set to
`example.com`, the resolved address does **not** end up being
`10.254.7.38`.

Using `hickory_resolver` for more advanced DNS resolution fixes this
issue.


Release Notes:

- Fixed proxy URL resolution when using custom DNS entries.

Co-authored-by: 张小白 <364772080@qq.com>

gcp-cherry-pick-bot[bot] and 张小白 created

85b6ca1 Use `git config --global user.email` for email address in automatic `Co-authored-by` (cherry-pick #32624) (#32639)

Click to expand commit body
Release Notes:

- Automatic population of `Co-authored-by` now uses `git config --global
user.email`

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

Michael Sloan and Conrad created

2f19e42 zed 0.191.1

Joseph T. Lyons created

8124758 debugger: Allow use of externally-managed Delve for Go debugging (#32613)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Go debug scenarios can now use an externally-managed Delve instance.
Use `tcp_connection` in your debug scenario definition to provide
adapter's address.

Piotr Osiewicz created

441d738 debugger: Handle session restart failures instead of hanging (#32595)

Click to expand commit body
I also enabled the `Restart` action even for sessions that don't support
restarting because we have a restart fallback now.

Closes #31408

Release Notes:

- Fix bug where a debugger session would never be shutdown on a failed
restart attempt

Anthony Eid created

fa00379 debugger: Don't show VSCode worktree tasks when Zed ones exist (#32589)

Click to expand commit body
Fixes #31699

Eventually we might want to merge the lists and deduplicate based on the
command and args that it's running. For now we'll just use the presence
of _any_ worktree local zed debug tasks to disable all VSCode ones.

Release Notes:

- N/A

Julia Ryan created

38e00a7 debugger: Fix DebugAdapterDelegate::worktree_root always using the first visible worktree (#32585)

Click to expand commit body
Closes #32577

Release Notes:

- Fixed debugger malfunctioning when using ZED_WORKTREE_ROOT env
variable in multi-worktree workspaces.

Piotr Osiewicz created

c14c370 debugger: Special-case `npm` et al. as `program` field for JS debug definitions (#32549)

Click to expand commit body
Send `runtimeExecutable` and `runtimeArgs` instead of `program` and
`args` to avoid the DAP implicitly wrapping the command in `node`.

This means that putting `pnpm vitest <file>` as the command in the
launch modal will work, as will this in debug.json:

```
[
  {
    "adapter": "JavaScript",
    "type": "pwa-node",
    "label": "Label",
    "request": "launch",
    "program": "pnpm",
    "args": ["vitest", "<file>"],
    "cwd": "/Users/name/project"
  }
]
```


Release Notes:

- Debugger Beta: made it possible to use commands like `pnpm
<subcommand> <args>` in the launch modal and debug.json

Cole Miller created

bc6d75b debugger: Fix issues with launch.json handling (#32563)

Click to expand commit body
After this PR we can run all the in-tree launch.json examples from [this
repo](https://github.com/microsoft/vscode-recipes).

Things done:

- Fill in default cwd at a lower level for all adapters
- Update launch.json parsing for DebugScenario changes
- Imitate how VS Code normalizes the `type` field for JS debug tasks
- Make version field optional
- Extend the variable replacer a bit

Release Notes:

- Debugger Beta: fixed issues preventing loading and running of debug
tasks from VS Code's launch.json.

---------

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

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

55d751a Hush breakpoint deserialization logs (#32430)

Click to expand commit body
Release Notes:

- debugger: Remove "Deserializing N breakpoints" from the Zed log

Conrad Irwin created

2562daa Rerun debug scenario now uses latest definition from JSON (#32569)

Click to expand commit body
Co-authored-by: Piotr Osiewicz <piotr@zed.dev>

Closes #ISSUE

Release Notes:

- debugger: Re-running a debug scenario that has been edited on disk now
uses the latest version

Co-authored-by: Piotr Osiewicz <peterosiewicz@gmail.com>

Conrad Irwin and Piotr Osiewicz created

10d00e1 debugger: Fix preselection of debug adapters to not pick CodeLLDB by default (#32557)

Click to expand commit body
Closes #ISSUE

Release Notes:

- debugger: Fix preselection of debug adapters to not pick CodeLLDB by
default

Piotr Osiewicz created

720fe2f agent: Don't stop following after edits (cherry-pick #32606) (#32608)

Click to expand commit body
Cherry-picked agent: Don't stop following after edits (#32606)

This is reverting a change from #32071 which caused agent following to
stop after the file was edited.

This will reintroduce the behavior that the keyboard shortcuts don't
work until the model is done generating, but we will revisit that
afterwards.

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

Release Notes:

- agent: Fix a regression in agent following behavior after file edits

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

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

gcp-cherry-pick-bot[bot] , Ben Brandt , and Bennet Bo Fenner created

28f1409 gpui: Fix window cursor style flickering (cherry-pick #32596) (#32600)

Click to expand commit body
Cherry-picked gpui: Fix window cursor style flickering (#32596)

Closes #32592
Follow-up to #31965 

This PR fixes the cursor style flickering on Linux systems. The issue
arose since the window cursor style was not reused anymore for
subsequent frames after the changes in #31965. This works on MacOS for
hiding cursors, since they are hidden until the next mouse movement
occurs, which is not the case for other systems.

This PR re-adds this whilst keeping the fixes applied in #31965. We now
determine the first cursor style that is hovered and continue searching
for a cursor style that should be applied globally. If one to apply for
the whole window is found, we return that cursor style early instead.

Alternatively, we could store window cursor style request in a vector
similar to normal cursor styles. That would require more memory in
exchange for fewer checks which cursor style to apply. I preferred the
approach here, though, but can change this should the other method be
preferred.

CC @smitbarmase since you assigned yourself that issue.

Release Notes:

- Fixed an issue where the cursor would flicker whilst typing.

Co-authored-by: Finn Evers <dev@bahn.sh>

gcp-cherry-pick-bot[bot] and Finn Evers created

ff66620 Use buffer's main language when fetching language tasks (cherry-pick #32580) (#32582)

Click to expand commit body
Cherry-picked Use buffer's main language when fetching language tasks
(#32580)

Closes https://github.com/zed-industries/zed/issues/32465

Release Notes:

- Fixed language tasks fetched incorrectly for certain selections

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

gcp-cherry-pick-bot[bot] and Kirill Bulatov created

d8d6866 v0.191.x preview

Joseph T. Lyons created

06f7d79 debugger: Fix a couple of issues with vitest (#32543)

Click to expand commit body
- Pass the right test name filter
- Limit the number of forks used by the testing pool in the spirit of
#32473

Release Notes:

- Debugger Beta: switched to running vitest tests serially when
debugging.

Cole Miller created

2ecc24e eval: Add jitter to retry attempts (#32542)

Click to expand commit body
Adds some jitter to avoid the issue that all requests will retry at
roughly the same time in eval where we have a lot of concurrent
requests.

Release Notes:

- N/A

Ben Brandt created

6c4728f debugger: Mark DebugAdapterBinary::program as optional (#32534)

Click to expand commit body
This allows us to support debugging with a debug adapter not managed by
Zed. Note that this is not a user facing change, as DebugAdapterBinary
is used to determine how to spawn a debugger. Thus, this should not
break any configs or anything like that.

Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

a3cc063 windows: Show error messages when zed failed to lanuch (#32537)

Click to expand commit body
Now, if either `WindowsPlatform` or `BladeRenderer` fails to initialize,
a window will pop up to notify the user.


![image](https://github.com/user-attachments/assets/40fe7f1d-5218-4ee2-b4ec-0945fed2b743)


Release Notes:

- N/A

张小白 created

7d5a5d0 Make minimum width for line numbers in gutter configurable (#31959)

Click to expand commit body
Closes #7334

# Changes
This PR makes the minimum width allocated for line numbers in the side
gutter configurable in units of character width via the
`"line_number_base_width"` attribute in `gutter` settings. Set the
previously hard coded value of `4` as default.

Together with other settings (`"folds"`, `"breakpoints"`,...) this gives
the user control over the gutter width.

If the number of lines exceedes the base width, the number of digits in
the largest line number is chosen instead. This is consistent with
previous behaviour.

Screenshot for reference:
<img width="1104" alt="Screenshot 2025-06-03 at 12 15 29"
src="https://github.com/user-attachments/assets/77c869ad-164b-4b74-8e39-8be43d740ad4"
/>


P.S.: This is my first time contributing to zed (yay!🎉). Let me know if
i'm missing something.

Release Notes:

- Make minimum line number width in gutter configurable

Max Mynter created

4c3ada5 windows: Add back `hide_title_bar` checks (#32427)

Click to expand commit body
These `if` condition checks were removed in #30828, and this PR adds
them back. This is especially important in the handling of
`WM_NCHITTEST`, where all the calculations are based on the assumption
that `hide_title_bar = true`.


Release Notes:

- N/A

张小白 created

b3a8816 agent: Add completion cancellation when editing messages (#32533)

Click to expand commit body
When editing a message, cancel any in-progress completion before
starting a new request to prevent overlapping model responses.

Release Notes:

- agent: Fixed previous completion not cancelling when editing a
previous message

Ben Brandt created

6d9bcdb editor: Fix certain unwanted pre-emptive keys been shown in buffer (#32528)

Click to expand commit body
Closes #32456

https://github.com/zed-industries/zed/pull/32007 added showing
pre-emptive keys for multi-key bindings. But for certain keys like
"control", "backspace", "escape", "shift", "f1", etc., shouldn't be
shown as these keys would not end up in buffer after pending input
delay. This PR changes it to use just `key_char`, as it represents
actual text that will end up in buffer and is `None` for all mentioned
keys.


https://github.com/zed-industries/zed/blob/fad4c17c97927626792228bfbf92494b4cd35c40/crates/gpui/src/platform/keystroke.rs#L14-L21

cc @ConradIrwin 

Release Notes:

- Fixed issue where triggering multi-key binding like "shift",
"control", etc. would write them to the buffer for a short time.

Smit Barmase created

0852912 language_models: Add image support to OpenRouter models (#32012)

Click to expand commit body
- [x] Manual Testing(Tested this with Qwen2.5 VL 32B Instruct (free) and
Llama 4 Scout (free), Llama 4 Maverick (free). Llama models have some
issues in write profile due to one of the in built tools schema, so I
tested it with minimal profile.

Closes #ISSUE

Release Notes:

- Add image support to OpenRouter models

---------

Signed-off-by: Umesh Yadav <umesh4257@gmail.com>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

Umesh Yadav and Ben Brandt created

47ac018 ci: Fix cachix secrets (#32259)

Julia Ryan created

5b22994 Log error instead of panics in `InlineAssistant::scroll_to_assist` (#32519)

Click to expand commit body
Leaving release notes blank as it's not very actionable to know that a
rare crash might be fixed.

Release Notes:

- N/A

Michael Sloan created