Commit log

861ca05 Support loading environment from plan9 `rc` shell (#33599)

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

Add support for loading environment from Plan9 shell
Document esoteric shell behavior.
Remove two useless tests.

Follow-up to: 
- https://github.com/zed-industries/zed/pull/32702
- https://github.com/zed-industries/zed/pull/32637

Release Notes:

- Add support for loading environment variables from Plan9 `rc` shell.

Peter Tripp created

f785853 ssh: Fix incorrect handling of ssh paths that exist locally (#33743)

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

I also tested that remote canonicalization of symlink directories still
works. (e.g. `zed ssh://hostname/~/foo` where `foo -> foobar` will open
`~/foobar` on the remote).

I believe this has been broken since 2024-10-11 from
https://github.com/zed-industries/zed/pull/19057. CC: @SomeoneToIgnore.
I guess I'm the only person silly enough to run `zed
ssh://hostname/tmp`.

Release Notes:

- ssh: Fixed an issue where Zed incorrectly canonicalized paths locally
prior to connecting to the ssh remote.

Peter Tripp created

82aee6b Another lsp tool UI migration (#34009)

Click to expand commit body
https://github.com/user-attachments/assets/54182f0d-43e9-4482-89b9-94db5ddaabf8

Release Notes:

- N/A

Kirill Bulatov created

955580d Adjust Go outline query for method definition to avoid pesky whitespace (#33971)

Click to expand commit body
Closes #33951 

There's an adjustment that kicks in to extend `name_ranges` when we
capture more than one `@name` for an outline `@item`. That was happening
here because we captured both the parameter name for the method receiver
and the name of the method as `@name`. It seems like only the second one
should have that annotation.

Release Notes:

- Fixed extraneous leading space in `$ZED_SYMBOL` when used with Go
methods.

Cole Miller created

c99e42a windows: Properly handle surrogates (#34006)

Click to expand commit body
Closes #33791

Surrogate pairs are now handled correctly, so input from tools like
`WinCompose` is properly received.

Release Notes:

- N/A

张小白 created

018dbfb agent: Show line numbers of symbols when using `@symbol` (#34004)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Bennet Bo Fenner created

30a441b agent_ui: Fix disabled context servers not showing in agent setting (#33856)

Click to expand commit body
Previously if I set enabled: false for one the context servers in
settings.json it will not show up in the settings in agent panel when I
start zed. But if I enabled it from settings it properly showed up. We
were filtering the configuration to only get the enabled context servers
from settings.json. This PR adds fetching all of them.

Release Notes:

- agent: Show context servers which are disabled in settings in agent
panel settings.

Umesh Yadav created

83562fc copilot: Indicate whether a request is initiated by an agent to Copilot API (#33895)

Click to expand commit body
Per [GitHub's documentation for VSCode's agent
mode](https://docs.github.com/en/copilot/how-tos/chat/asking-github-copilot-questions-in-your-ide#agent-mode),
a premium request is charged per user-submitted prompt. rather than per
individual request the agent makes to an LLM. This PR matches Zed's
functionality to VSCode's, accurately indicating to GitHub's API whether
a given request is initiated by the user or by an agent, allowing a user
to be metered only for prompts they send.

See also: #31068

Release Notes:

- Improve Copilot premium request tracking

Liam created

6b456ed languages: Fix string override to match just `string_fragment` part of `template_string` (#33997)

Click to expand commit body
Closes #33703

`template_string` consists of `template_substitution` and
`string_fragment` chunks. `template_substitution` should not be
considered a string.

```ts
const variable = `this is a string_fragment but ${this.is.template_substitution}`;
```

Release Notes:

- Fixed auto-complete not showing on typing `.` character in template
literal string in JavaScript and TypeScript files.

Smit Barmase created

6efc5ec project_panel: Add Sticky Scroll (#33994)

Click to expand commit body
Closes #7243

- Adds `top_slot_items` to `uniform_list` component to offset list
items.
- Adds `ToPosition` scroll strategy to `uniform_list` to scroll list to
specified index.
- Adds `sticky_items` component which can be used along with
`uniform_list` to add sticky functionality to any view that implements
uniform list.


https://github.com/user-attachments/assets/eb508fa4-167e-4595-911b-52651537284c

Release Notes:

- Added sticky scroll to the project panel, which keeps parent
directories visible while scrolling. This feature is enabled by default.
To disable it, toggle `sticky_scroll` in settings.

Smit Barmase created

2246b01 Allow remote loading for DAP-only extensions (#33981)

Click to expand commit body
Closes #ISSUE


![image](https://github.com/user-attachments/assets/8e1766e4-5d89-4263-875d-ad0dff5c55c2)


Release Notes:

- Allow remote loading for DAP-only extensions

feeiyu created

01295aa debugger: Fix the JavaScript debug terminal scenario (#33924)

Click to expand commit body
There were a couple of things preventing this from working:

- our hack to stop the node REPL from appearing broke in recent versions
of the JS DAP that started passing `--experimental-network-inspection`
by default
- we had lost the ability to create a debug terminal without specifying
a program

This PR fixes those issues. We also fixed environment variables from the
**runInTerminal** request not getting passed to the spawned program.

Release Notes:

- Debugger: Fix RunInTerminal not working for JavaScript debugger.

---------

Co-authored-by: Cole Miller <cole@zed.dev>

Remco Smits and Cole Miller created

66e4581 debugger: Improve debug console autocompletions (#33868)

Click to expand commit body
Partially fixes:
https://github.com/zed-industries/zed/discussions/33777#discussioncomment-13646294

### Improves debug console autocompletion behavior

This PR fixes a regression in completion trigger support for the debug
console, as we only looked if a completion trigger, was in the beginning
of the search text, but we also had to check if the current text is a
word so we also show completions for variables/input that doesn't start
with any of the completion triggers.

We now also leverage DAP provided information to sort completion items
more effectively. This results in improved prioritization, showing
variable completions above classes and global scope types.

I also added for completion the documentation field, that directly comes
from the DAP server. NOTE: I haven't found an adapter that returns this,
but it needs to have.

**Before**
<img width="1200" alt="Screenshot 2025-07-03 at 21 00 19"
src="https://github.com/user-attachments/assets/611e8d38-e302-4995-a425-ce2c0a1843d4"
/>

**After**
<img width="1200" alt="Screenshot 2025-07-03 at 20 59 38"
src="https://github.com/user-attachments/assets/ab1312db-bbad-49b7-872d-712d6ec708d7"
/>

Release Notes:

- Debugger: Improve autocompletion sorting for debug console
- Debugger: Fix autocompletion menu now shown when you type
- Debugger: Fix completion item showing up twice for some adapters

Remco Smits created

76fe332 project_panel: Fix indent guide collapse on secondary click for multiple worktrees (#33939)

Click to expand commit body
Release Notes:

- Fixed issue where `cmd`/`ctrl` click on indent guide would not
collapse directory in case of multiple projects.

Smit Barmase created

44d1f51 Use /usr/bin/env to run bash restart script (#33936)

Click to expand commit body
Closes #33935

Release Notes:

- Use `/usr/bin/env` to launch the bash restart script

Alvaro Parker created

69fd23e Fix path parsing for goto syntax provided by Haskell language server (#33697)

Click to expand commit body
path parsing for multiline errors provided by haskell language server
where not working correctly

<img width="875" alt="image"
src="https://github.com/user-attachments/assets/967d2e03-e167-4055-9c8e-31531cca1471"
/>

while its being parsed correctly in vscode

<img width="934" alt="image"
src="https://github.com/user-attachments/assets/a881cf0e-f06e-4b44-8363-6295bcc825fd"
/>

Release Notes:

- Fixed path parsing paths in the format of the Haskell language server

abhimanyu maurya created

4ad47fc emmet: Enable in `HTML/ERB` files (#33865)

Click to expand commit body
Closes [#133](https://github.com/zed-extensions/ruby/issues/133)

This PR enables the Emmet LS in `HTML/ERB` files that we added in the
https://github.com/zed-extensions/ruby/pull/113. Let me know if I picked
the right approach here.

Thanks!

Release Notes:

- N/A

Vitaly Slobodin created

0555bbd ruby: Document how to use `erb-formatter` for ERB files (#33872)

Click to expand commit body
Hi! This is a small pull request that adds a new section about
configuring the `erb-formatter` for formatting ERB files. Thanks.

Release Notes:

- N/A

Vitaly Slobodin created

d3da0a8 Update documentation for tailwindcss language server now that HTML/ERB is it's own file. (#33684)

Click to expand commit body
Hello,

Recently my tailwind auto completion broke in ERB files. I noticed that
HTML/ERB is it's own file type now. It used to be ERB. This broke the
previous tailwindcss ERB configuration. I made the attached change to my
configuration and it works now.

Jacob Duba created

31ec7ef Debugger: check for `supports_single_thread_execution_requests` in continue (#33937)

Click to expand commit body
i found this to break my ability to continue with an lldb fork i use

Release Notes:

- N/A

xdBronch created

75928f4 Sync extension debuggers to remote host (#33876)

Click to expand commit body
Closes #33835

Release Notes:

- Fixed debugger extensions not working in remote projects.

Ryan Hawkins created

543a7b1 debugger: Fix errors in JavaScript DAP schema (#33884)

Click to expand commit body
`program` isn't required, and in fact our built-in `JavaScript debug
terminal` configuration doesn't have it.

Also add `node-terminal` to the list of allowed types.

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

Release Notes:

- N/A

Cole Miller created

8fecacf settings: Remove version keys from default settings (#33921)

Click to expand commit body
Follow up to #33372

Release Notes:

- N/A

Bennet Bo Fenner created

59cdea0 agent: Fix context server restart when settings unchanged (#33920)

Click to expand commit body
Closes #33891

Release Notes:

- agent: Fix an issue where configuring an MCP server would not restart
the underlying server correctly

Bennet Bo Fenner created

3d7e012 gemini: Fix issue with builtin tool schemas (#33917)

Click to expand commit body
Closes #33894

After #33635 Gemini Integration was broken because we now produce
`const` fields for enums, which are not supported.
Changing this to `openapi3` fixes the issue.

Release Notes:

- Fixed an issue where Gemini Models would not work because of
incompatible tool schemas

Bennet Bo Fenner created

8ebea17 debugger: Add history to console's query bar (#33914)

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

Release Notes:

- debugger: Added query history to the console

Piotr Osiewicz created

5253702 Move the `LoadingLabel` component to the UI crate (#33893)

Click to expand commit body
So we can use it in other places and don't require them to depend on the
`agent_ui`. This PR also renames it from `AnimatedLabel` to
`LoadingLabel`.

Release Notes:

- N/A

Danilo Leal created

ed7552d Default `#[schemars(deny_unknown_fields)] for json-language-server schemas (#33883)

Click to expand commit body
Followup to #33678, doing the same thing for all JSON Schema files
provided to json-language-server

Release Notes:

* Added warnings for unknown fields when editing `tasks.json` /
`snippets.json`.

Michael Sloan created

38544e5 debugger: Use debugpy's suggested names for child sessions (#33885)

Click to expand commit body
Just like vscode-js-debug, debugpy uses the `name` key in
StartDebuggingRequestArguments for this:


https://github.com/microsoft/debugpy/blob/0d65353cc6e519292296bf567bdc6dfa5bcd4ffc/src/debugpy/adapter/clients.py#L753

Release Notes:

- debugger: Made the names of Python subprocesses in the session list
more helpful.

Cole Miller created

03ca2f4 Fix yaml comment indent (#33882)

Click to expand commit body
Closes #33761

The problem was that in the indentation regex we were treating lines
that had `:` in them as requiring an indent on the next line, even if
that `:` was inside a comment.

Release Notes:

- Fixed YAML indentation for lines containing comments with `:` in them

Richard Feldman created

91bfe6f debugger: Improve performance with large # of output (#33874)

Click to expand commit body
Closes #33820

Release Notes:

- Improved performance of debug console when there are lots of output
events.

---------

Co-authored-by: Cole Miller <cole@zed.dev>

Piotr Osiewicz and Cole Miller created

0ebf7f5 Fix Shift+Enter to send newline instead of carriage return in terminal (#33859)

Click to expand commit body
Closes #33858

Changes Shift+Enter in the built-in terminal to send line feed (`\x0a`)
instead of carriage return (`\x0d`), enabling multi-line input in Claude
Code and other terminal applications.

Release Notes:

- Fixed the issue where Claude Code and other multi-line terminal
applications couldn't use Shift+Enter for newlines.

Taras Martyniuk created

7a2593e Fix JSON Schema definitions path used for debug task (#33873)

Click to expand commit body
Regression in #33678

Release Notes:

- (Preview Only) Fixed invalid json schema for `debug.json`.

Michael Sloan created

fcd9da6 Fix panic on inlay split (#33676)

Click to expand commit body
Closes #33641

Release Notes:

- Fixed panic when trying to split on multibyte UTF-8 sequences.

Richard Feldman created

fcdd99e keymap_ui: Syntax highlight context (#33864)

Click to expand commit body
Closes #ISSUE

Uses Rust for syntax highlighting of context in the keymap editor.
Future pass will improve color choice to make colors less abrasive

Release Notes:

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

Ben Kunkle created

4e6b7ee keymap_ui: Hover tooltip for action documentation (#33862)

Click to expand commit body
Closes #ISSUE

Show the documentation for an action when hovered. As a bonus, also show
the humanized command palette name!

Release Notes:

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

Ben Kunkle created

34322ef agent: Fix bug that prevented MCP servers to appear in the settings view (#33857)

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

After #33644 was merged, we would not start MCP servers coming from
extensions correctly anymore. The optimization uncovered a bug in the
implementation of `ContextServerDescriptorRegistry`, because we never
called `cx.notify()` when adding/removing context servers.
`ContextServerStore` listens for these events, and before #33644 this
was just working because of aace condition.

Release Notes:

- agent: Fixed bug that prevented MCP servers to appear in the settings
view.

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

Danilo Leal and Bennet Bo Fenner created

cc0d8a4 Add Danger check for changes to eval fixtures (#33852)

Click to expand commit body
Also, revert unintentional changes to fixtures.

Changes to test fixtures are intentional and necessary.

Release Notes:

- N/A

Oleksiy Syvokon created

12ab53b Fix documentation of view release notes actions (#33851)

Click to expand commit body
Follow up for: #33809 

Release Notes:

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

Ben Kunkle created

b46e961 agent_ui: Clear error message callout when message is edited or added in same thread (#33768)

Click to expand commit body
Currently if error occurs in the agent thread and user updates the same
messages or sends a new message the error callout is still present and
is not cleared. In this PR we are clearing the last error in case user
sends a new messages or resend the previous message after editing.

Before:


https://github.com/user-attachments/assets/44994004-4cf0-45bc-8b69-88546f037372

After:


https://github.com/user-attachments/assets/993a2a63-8295-47d3-bbda-a2669dee2d5f

Release Notes:

- Fix bug in agent panel error callout not getting removed when a
message is edited or new a message is send.

Umesh Yadav created

42aca41 agent: Improve provider section spacing in settings view (#33850)

Click to expand commit body
Some design polish here as a follow-up to making the provider accordion
header entirely clickable.

Release Notes:

- agent: Improved design in the provider section by refining spacing.

Danilo Leal created

f34a7ab gpui: Add `shadow_xs`, `shadow_2xs` and fix shadow values to match Tailwind CSS (#33361)

Click to expand commit body
Release Notes:

- N/A

---

https://tailwindcss.com/docs/box-shadow

| name | value |
| -- | -- |
| shadow-2xs | box-shadow: var(--shadow-2xs); /* 0 1px rgb(0 0 0 / 0.05)
*/ |
| shadow-xs | box-shadow: var(--shadow-xs); /* 0 1px 2px 0 rgb(0 0 0 /
0.05) */ |
| shadow-sm | box-shadow: var(--shadow-sm); /* 0 1px 3px 0 rgb(0 0 0 /
0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1) */ |
| shadow-md | box-shadow: var(--shadow-md); /* 0 4px 6px -1px rgb(0 0 0
/ 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) */ |
| shadow-lg | box-shadow: var(--shadow-lg); /* 0 10px 15px -3px rgb(0 0
0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1) */ |
| shadow-xl | box-shadow: var(--shadow-xl); /* 0 20px 25px -5px rgb(0 0
0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1) */ |
| shadow-2xl | box-shadow: var(--shadow-2xl); /* 0 25px 50px -12px rgb(0
0 0 / 0.25) */ |

## Before

<img width="1112" alt="SCR-20250625-nnxn"
src="https://github.com/user-attachments/assets/3bd44938-5de8-4d67-b323-c444b023a4b6"
/>

## After

<img width="1112" alt="SCR-20250625-nnrt"
src="https://github.com/user-attachments/assets/a5bf2401-f808-4712-9cc6-299f530f9165"
/>

Jason Lee created

2bf2c5c Add more refinements to the keymap edit UI (#33847)

Click to expand commit body
Quick follow-up to https://github.com/zed-industries/zed/pull/33816,
tidying it up some things a bit more.

Release Notes:

- N/A

Danilo Leal created

a6ee4a1 Fix remote binary bundling (#33845)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/32937
Fixes remote server bundling:
https://github.com/zed-industries/zed/actions/runs/16043840539/job/45271137215#step:6:2079

Excludes `screen-capture` feature from Zed's default, use it only in the
components that need it.

Release Notes:

- N/A

Kirill Bulatov created

cdb7564 windows: More precise handling of `WM_SETTINGCHANGE` and appearance updates (#33829)

Click to expand commit body
This PR adds more fine-grained handling of the `WM_SETTINGCHANGE`
message.
Plus, we now only trigger the `appearance_changed` callback when the
actual window appearance has changed, rather than calling it every time.


Release Notes:

- N/A

张小白 created

968587a worspace: Add partial window bound fix when switching between CSD and SSD on Wayland (#31335)

Click to expand commit body
Partial fix for #31330

It fix the problem that the inset stay on after switching to SSD, but it
still have the problem that after that first redraw, it have the wrong
size. Just resizing it even once work. I guess the relevant code to fix
that would be ``handle_toplevel_decoration_event`` of
``crates/gpui/src/platform/linux/wayland/window.rs``, but trying to call
resize here does not seems to work correctly (might be just wrong
argument), and I would like to take a break on that for now.

Release Notes:

- N/A

(better wait for that to be completely fixed before adding it in the
changelog)

---------

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

marius851000 and Michael Sloan created

48c8555 Show more info in the UI and logs (#33841)

Click to expand commit body
Addresses the `The binding is not displayed, though:` part from
https://github.com/zed-industries/zed/discussions/29498#discussioncomment-13649543

Release Notes:

- N/A

Kirill Bulatov created

06ddc74 editor: Reapply fix for wrap guide positioning (#33776)

Click to expand commit body
Reapplies the fix from #33514 which was removed in #33554. Wrap guides
are currently drifting again due to this on main.

Slightly changed the approach here so that we now actually only save the
wrap guides in the `EditorLayout` that will actually be painted. Also
ensures that we paint indent guides that were previously hidden behind
the vertical scrollbar once it auto-hides.

I wanted to add tests for this, however, I am rather sure this depends
on the work/fixes in #33590 and thus I'd prefer to add these later so we
can have this fix in the next release.

Release Notes:

- N/A

Finn Evers created

5c88e9c terminal: Expose `selection` in context and add `keep_selection_on_copy` setting (#33491)

Click to expand commit body
Closes #21262

Introduces a new setting `keep_selection_on_copy`, which controls
whether the current text selection is preserved after copying in the
terminal. The default behavior remains the same (`true`), but setting it
to `false` will clear the selection after the copy operation, matching
VSCode's behavior.

Additionally, the terminal context now exposes a `selection` flag
whenever text is selected.

This allows users to match VSCode and other terminal's smart copy
behavior.

Release Notes:

- Expose `selection` to terminal context when there is text selected in
the terminal
- Add `keep_selection_on_copy` terminal setting. Can be set to false to
clear the text selection when copying text.

**VSCode Behavior Example:**

**settings.json:**
```json
  "terminal": {
    "keep_selection_on_copy": false
  },
```
**keymap.json:**
```json
  {
    "context": "Terminal && selection",
    "bindings": {
      "ctrl-c": "terminal::Copy"
    }
  }
```

chico ferreira created

2a8121f Clean up project repositories / repository statuses too (#33803)

Click to expand commit body
Co-authored-by: Cole Miller <cole@zed.dev>

Closes #ISSUE

Release Notes:

- N/A

---------

Co-authored-by: Cole Miller <cole@zed.dev>

Conrad Irwin and Cole Miller created