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.
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)
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>
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.
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`.
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)
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)
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>
Closes #ISSUE
Adds a new `documentation` method to actions, that is extracted from doc
comments when using the `actions!` or derive macros.
Additionally, this PR adds doc comments to as many action definitions in
Zed as possible.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
def8bab
Fix script/symbolicate for Linux panic reports (#33822)
Click to expand commit body
Release Notes:
- N/A
Cole Miller
created
32d058d
Fix remote server (ssh) crash when editing json (#33818)
Click to expand commit body
Closes #33807
Release Notes:
- (Preview Only) Fixes a remote server (ssh) crash when editing json
files
---------
Co-authored-by: Cole <cole@zed.dev>
This includes mostly polishing up the keystroke editing modal, and some
other bits like making the keystroke rendering function more composable.
Release Notes:
- Added refinements to the keymap UI design.
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Ben Kunkle <Ben.kunkle@gmail.com>
Danilo Leal
,
Ben Kunkle
, and
Ben Kunkle
created
fbc4256
debugger: Fix update inline values on settings change (#33808)
Click to expand commit body
Release Notes:
- Debugger: fixed that inline values would not update (hide/show) on
settings change
Remco Smits
created
82fac9d
debugger: Always use runtimeExecutable for node-terminal scenarios (#33794)
Click to expand commit body
cc @afgomez
Release Notes:
- debugger: Fixed `node-terminal` debug configurations not working with
some commands.
Cole Miller
created
e224da8
Disambiguate package.json tasks by parent directory as needed (#33798)
Click to expand commit body
Closes #33701, cc @afgomez
Release Notes:
- Added the parent directory to the label as needed to disambiguate
tasks from package.json