Commit log

9427833 Distinguish between missing models and registries in error messages (#32678)

Click to expand commit body
Consolidates configuration error handling by moving the error type and
logic from assistant_context_editor to language_model::registry.

The registry now provides a single method to check for configuration
errors, making the error handling more consistent across the agent panel
and context editor.

This also now checks if the issue is that we don't have any providers,
or if we just can't find the model.

Previously, an incorrect model name showed up as having no providers,
which is very confusing.

Release Notes:

- N/A

Ben Brandt created

fc7c106 chore: Use workspace `tiny_http` (#32672)

Click to expand commit body
Release Notes:

- N/A

张小白 created

83cd1d2 Improve logging of prettier errors (#32665)

Click to expand commit body
In particular, seems like the error message and the message sent to
prettier were mixed up before

Release Notes:

- N/A

Michael Sloan created

bc68455 client: Fix an issue where non-IP proxy URLs didn’t resolve correctly (#32664)

Click to expand commit body
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.

张小白 created

20793fc Autoformat `prettier_server.js` (#32661)

Click to expand commit body
Formatted via format-on-save in Zed with prettier version 3.5.3

Release Notes:

- N/A

Michael Sloan created

cb57317 project_panel: Allow collapse all from workspace context (#32660)

Click to expand commit body
Closes #4385

Allow action `project_panel::CollapseAllEntries` to trigger from
workspace context without focusing the project panel.

Release Notes:

- Added a way to collapse all entries in the Project Panel without
having to focus it. This can be done by using the
`project_panel::CollapseAllEntries` action.

Smit Barmase created

9cc8221 Remove `separator!` macro and make `path!` handle relative paths (#32527)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

babf846 Fix newlines in language server logs when switching log types + misc (#32659)

Click to expand commit body
Mistake in #31863 where the stored log entries no longer had a format
that could simply have `\n` added after each entry.

Also fixes a potential crash in the long line folding logic if unicode
was in the logs - introduced in #22996.

Also updates the log line truncation logic to never exceed the
pre-allocated capacity

Release Notes:

- N/A

Michael Sloan created

9a6e8a1 vim: Add horizontal scrolling support in vim mode (#32558)

Click to expand commit body
Release Notes:

- Added initial support for both `z l` and `z h` in vim mode

These changes relate to #17219 but don't yet close the issue, as this
Pull Request is simply adding support for horizontal scrolling in vim
mode and actually moving the cursor to the correct column in the current
row will be handled in a different Pull Request.

Some notes on these changes:

- 2 new default keybindings added to vim's keymap
    - `z l` which triggers the new `vim::ColumnRight` action
    - `z h` which triggers the new `vim::ColumnLeft` action
- Introduced a new `ScrollAmount` variant, `ScrollAmount::Column(f32)`
to represent horizontal scrolling
- Replaced usage of `em_width` with `em_advance` to actually scroll by
the width of the cursor, instead of the width of the character

---------

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

Dino and Conrad Irwin created

f63ae43 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

bcd7933 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

9166e66 Disable nav history in vim scrolls (#32656)

Click to expand commit body
Reland of #30345 to fix merge conflicts with the new skip-completions
option

Fixes #29431
Fixes #17592

Release Notes:

- vim: Scrolls are no longer added to the jumplist

Conrad Irwin created

0fe35f4 vim: Exit temporary normal after scroll (#32653)

Click to expand commit body
Closes #ISSUE

Release Notes:

- vim: Exit temporary normal after scrolling

Conrad Irwin created

f227c2f 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

1078f92 Update names of collab auth functions to clarify behavior (#32648)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

cef0c41 Don't autosave unmodified buffers (#32626)

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

Proper redo of https://github.com/zed-industries/zed/pull/32603

Release Notes:

- Fixed formatting effects not triggered when saving unmodified
singleton buffers

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Cole Miller <m@cole-miller.net>

Kirill Bulatov , Max Brunsfeld , and Cole Miller created

cd018da docs: Fix headings in debugger docs (#32641)

Click to expand commit body
Reported by calebmeyer on Discord.
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

d725371 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

7d708c1 Use `git config --global user.email` for email address in automatic `Co-authored-by` (#32624)

Click to expand commit body
Release Notes:

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

---------

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

Michael Sloan , Conrad Irwin , and Conrad created

e56a027 Store `result_id`s per language server (#32631)

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


Release Notes:

- N/A

Kirill Bulatov created

1e244f4 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

c13be16 Add `git: open modified files` action (#32347)

Click to expand commit body
Ported over a vscode/cursor command that I like using : )

Release Notes:

- Added "open modified files" command

Gabe Shahbazian created

0ee6a90 Update invisibles' default.json docs (#32601)

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

Release Notes:

- N/A

Kirill Bulatov created

4236c9e gpui: Fix data_table example overflow subtracting crash error (#32617)

Click to expand commit body
Release Notes:

- N/A

Just make a simple change to avoid crash.

```
thread 'main' panicked at library\std\src\time.rs:436:33:
overflow when subtracting duration from instant
stack backtrace:
   0: std::panicking::begin_panic_handler
             at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\panicking.rs:697
   1: core::panicking::panic_fmt
             at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\core\src\panicking.rs:75
   2: core::panicking::panic_display
             at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\core\src\panicking.rs:261
   3: core::option::expect_failed
             at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\core\src\option.rs:2024
   4: core::option::Option::expect
             at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\core\src\option.rs:933
   5: std::time::impl$3::sub
             at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\time.rs:436
   6: data_table::Quote::random
             at .\crates\gpui\examples\data_table.rs:54
```

Jason Lee created

5923ba4 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

bb5a763 title_bar: Use theme colors for window controls on Windows (#32400)

Click to expand commit body
Release Notes:

- N/A

----

Fix Windows title bar window button color by use theme colors.

The `ghost_element_hover` and `ghost_element_active` is same color as
the Buttons in title bar.

## Before


https://github.com/user-attachments/assets/e38a4f9c-7e5c-4d50-b578-608baebaf03c

## After


https://github.com/user-attachments/assets/a32e4d88-1e64-407e-a601-716ca7584111

Jason Lee created

f541294 editor: Improve completions sort order for Tailwind classes (#32612)

Click to expand commit body
Closes #32532

Before:
<img width="479" alt="Image"
src="https://github.com/user-attachments/assets/5eeee2b8-7f0f-43c1-bbde-65db8ae0dce1"
/>

After:
<img width="580" alt="image"
src="https://github.com/user-attachments/assets/6c6f30ea-e92e-41f7-ba5e-b1616652d367"
/>


Release Notes:

- Improved auto-complete suggestions for Tailwind classes.

Smit Barmase created

dc8eb55 agent: Scroll to first diff hunk when clicking on edit tool card header (#32611)

Click to expand commit body
Release Notes:

- agent: Clicking on header of an edit file card now takes you to the
first modified hunk

Bennet Bo Fenner created

f14a923 agent: Allow to see the review button while generating (#32610)

Click to expand commit body
I think we mistakenly added an early return for the review multibuffer
button if `has_pending_edit_tool_uses` is true. It is totally fine _to
access_ the review multibuffer while that's happening. It's another
thing to _accept and reject_ changes while they're still ongoing!

Release Notes:

- agent: Fixed access to the review multibuffer from the agent panel.

Danilo Leal created

47af72b project_panel: Don't add extra margin-left to file name labels (#32602)

Click to expand commit body
In this PR I want to improve the UI of the project panel's files tree.
Currently, the project panel renders an extra gap between file icons and
the file name, making it visually unpleasant. The changes in the PR
remove the gap, bringing the labels closer to their icon:

_Before/After_

<img width="647" alt="zed-before-after"
src="https://github.com/user-attachments/assets/d815c075-f1f8-4a77-a3b3-d1275988a5dc"
/>

Also, this extra gap between the icon and the label seems inconsistent
with how other similar components, which are based on the `ListItem`,
are used.

Release Notes:

- Fixed an extra gap between the file icon and the file name label in
the project panel.

Vladimir Varankin created

c7ee489 agent: Don't stop following after edits (#32606)

Click to expand commit body
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>

Ben Brandt and Bennet Bo Fenner created

5e07d0f Trigger formatting effects when saving unmodified singleton buffers (#32603)

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

Use `"save_non_dirty_buffers": false` editor settings to disable this
behavior.

Release Notes:

- Fixed formatting effects not triggered when saving unmodified
singleton buffers

Kirill Bulatov created

7ecad2b gpui: Fix window cursor style flickering (#32596)

Click to expand commit body
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.

Finn Evers created

2d4e427 OpenAI cleanups (#32597)

Click to expand commit body
Release Notes:

- openai: Remove support for deprecated o1-preview and o1-mini models 
- openai: Support streaming for o1 model

Ben Brandt created

4e4856f 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

d1ca6db pane: Apply `max_tabs` change immediately (#32447)

Click to expand commit body
Closes #32217

Follow up of https://github.com/zed-industries/zed/pull/32301, sorry
about the messy rebase in the previous PR.

Release Notes: 
- Fixed `max_tabs` setting not applying immediately when changed
 
TODO: 
- [x] Fix the off-by-one bug (currently closing one more tab than the
max_tabs setting) while perserving "+1 Tab Allowance" feature.
- [x] Investigate Double Invocation of `settings_changed`
- [x] Write test that:
  - Sets max_tabs to `n`
  - Opens `n` buffers
  - Changes max_tabs to `n-1`
  - Asserts we have exactly `n-1` buffers remaining

---------

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

vipex and Joseph T. Lyons created

c7ee635 Deploy code runner menu from correct display row (#32594)

Click to expand commit body
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

Anthony Eid created

106b98f workspace: Persist centered layout across project switches (#32299)

Click to expand commit body
Closes #32297

Changes:

- Added restoration of `workspace.centered_layout` from
`serialized.centered_layout`
- Ensures the centered layout state persists across project switches

Release Notes:

- Fixed centered layout not persisting when switching between projects

vipex created

1a321b5 Rewrite documentation comment for right movement (#32547)

Click to expand commit body
I don't think the documentation comment is saying the right thing. This
version is more similar to the comment of the left movement function.

Release Notes:

- N/A

fantacell created

242af86 Use ch-width (`0`) instead of em-width (`m`) for gutter width calculation (#32548)

Click to expand commit body
Closes #21860

Release Notes:

- Added `ch_width` and `ch_advance` function alongside their `em_*`
counterparts
- Use `ch_*` version to calculate gutter layouts
- Update a stale comment from changes in #31959

The ch units refer to the width of the number `0` whereas em is the
width of `m` and the actual font size (e.g. 16px means 16 px width of
`m`).

This change has no effect for monospaced fonts but can be drastic for
proportional ones as seen below for "Zed Plex Sans" with a
`"min_line_number_width" = 4`.

<img width="726" alt="Screenshot 2025-06-11 at 15 47 35"
src="https://github.com/user-attachments/assets/aa73f4d4-32bc-42cf-a9f6-7e25fee68c9a"
/>

Max Mynter created

f428d54 task: Don't show VSCode worktree tasks when Zed ones exist (#32590)

Click to expand commit body
Fixes #23110

Similar to #32589, we may eventually want to merge instead of making
these lists mutually exclusive.

Release Notes:

- N/A

Julia Ryan created

3850da6 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

13ee78c editor: Add delay for selection drag to prevent accidental drag over attempt for new selection (#32586)

Click to expand commit body
- Add `300ms` delay for it to consider it as selection drag instead of
an attempt to make a new selection.
- Add cursor icon while dragging the selection.

This is same as what chromium does:
https://chromium.googlesource.com/chromium/blink/+/master/Source/core/input/EventHandler.cpp#142

Release Notes:

- Fixed issue where you accidentally end up dragging the selection where
intent was to make a new one instead. To drag selection now, you need to
hold just a little longer before dragging.

Smit Barmase created

04223f3 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

1083c0a 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

2a63c5f 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

9032ea9 Use buffer's main language when fetching language tasks (#32580)

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

Release Notes:

- Fixed language tasks fetched incorrectly for certain selections

Kirill Bulatov created

8cc5b04 open_ai: Remove redundant serde aliases and add model limits (#32572)

Click to expand commit body
Remove unnecessary alias attributes from Model enum variants and add
max_output_tokens limits for all OpenAI models. Also fix
supports_system_messages to explicitly handle all model variants.

Release Notes:

- N/A

Ben Brandt created

c427768 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

0e0ac9b Hush breakpoint deserialization logs (#32430)

Click to expand commit body
Release Notes:

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

Conrad Irwin created