Closes #ISSUE
Separate out the keystroke input into it's own component and add a bunch
of tests for it's core keystroke+modifier event handling logic
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
65250fe
cloud provider: Use `CompletionEvent` type from `zed_llm_client` (#35285)
Click to expand commit body
Release Notes:
- N/A
Michael Sloan
created
77dc65d
collab: Attach `User-Agent` to `handle connection` span (#35282)
Click to expand commit body
This PR makes it so we attach the value from the `User-Agent` header to
the `handle connection` span.
We'll start sending this header in
https://github.com/zed-industries/zed/pull/35280.
Release Notes:
- N/A
Marshall Bowers
created
f9224b1
client: Send `User-Agent` header on WebSocket connection requests (#35280)
Click to expand commit body
This PR makes it so we send the `User-Agent` header on the WebSocket
connection requests when connecting to Collab.
We use the user agent set on the parent HTTP client.
Release Notes:
- N/A
Marshall Bowers
created
aa3437e
Allow installing from an administrator user (#35202)
Click to expand commit body
Release Notes:
- N/A
localcc
created
397b5f9
Ensure context servers are spawned in the workspace directory (#35271)
Click to expand commit body
This fixes an issue where we were not setting the context server working
directory at all.
Release Notes:
- Context servers will now be spawned in the currently active project
root.
---------
Co-authored-by: Danilo Leal <danilo@zed.dev>
511fdae
Allow searching Windows paths with forward slash (#35198)
Click to expand commit body
Release Notes:
- Searching windows paths is now possible with a forward slash
localcc
created
a8bdf30
client: Fix typo in the error message (#35275)
Click to expand commit body
This PR fixes a typo in the error message for when we fail to parse the
Collab URL.
Release Notes:
- N/A
Marshall Bowers
created
2fced60
paths: Fix using relative path as custom_data_dir (#35256)
Click to expand commit body
This PR fixes issue of incorrect LSP path args caused by using a
relative path when customizing data directory.
command:
```bash
.\target\debug\zed.exe --user-data-dir=.\target\data
```
before:
```log
2025-07-29T14:17:18+08:00 INFO [lsp] starting language server process. binary path: "F:\\nvm\\nodejs\\node.exe", working directory: "F:\\zed\\target\\data\\config", args: [".\\target\\data\\languages\\json-language-server\\node_modules/vscode-langservers-extracted/bin/vscode-json-language-server", "--stdio"]
2025-07-29T14:17:18+08:00 INFO [project::prettier_store] Installing default prettier and plugins: [("prettier", "3.6.2")]
2025-07-29T14:17:18+08:00 ERROR [lsp] cannot read LSP message headers
2025-07-29T14:17:18+08:00 ERROR [lsp] Shutdown request failure, server json-language-server (id 1): server shut down
2025-07-29T14:17:43+08:00 ERROR [project] Invalid file path provided to LSP request: ".\\target\\data\\config\\settings.json"
Thread "main" panicked with "called `Result::unwrap()` on an `Err` value: ()" at crates\project\src\lsp_store.rs:7203:54
https://github.com/zed-industries/zed/blob/cfd5b8ff10cd88a97988292c964689f67301520b/src/crates\project\src\lsp_store.rs#L7203 (may not be uploaded, line may be incorrect if files modified)
```
after:
```log
2025-07-29T14:24:20+08:00 INFO [lsp] starting language server process. binary path: "F:\\nvm\\nodejs\\node.exe", working directory: "F:\\zed\\target\\data\\config", args: ["F:\\zed\\target\\data\\languages\\json-language-server\\node_modules/vscode-langservers-extracted/bin/vscode-json-language-server", "--stdio"]
```
Release Notes:
- N/A
devjasperwang
created
3fc84f8
Comment on source of ctrl-m in keymaps (#35273)
5a218d8
Add more data to see which extension got leaked (#35272)
Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/35185
Release Notes:
- N/A
Kirill Bulatov
created
9353ba7
Fix remaining agent server integration tests (#35222)
Click to expand commit body
Release Notes:
- N/A
Agus Zubiaga
created
8f952f1
gpui: Ensure first tab index is selected on first focus (#35247)
Click to expand commit body
This fixes an issue with tab indices where we would actually focus the
second focus handle on first focus instead of the first one. The test
was updated accordingly.
Release Notes:
- N/A
---------
Co-authored-by: Jason Lee <huacnlee@gmail.com>
Finn Evers
and
Jason Lee
created
6c57915
lsp: Remove Attach enum, default to Shared behaviour (#35248)
Click to expand commit body
This should be a no-op PR, behavior-wise.
Release Notes:
- N/A
cfd5b8f
python: Uplift basedpyright support into core (#35250)
Click to expand commit body
This PR adds a built-in adapter for the basedpyright language server.
For now, it's behind the `basedpyright` feature flag, and needs to be
requested explicitly like this for staff:
```
"languages": {
"Python": {
"language_servers": ["basedpyright", "!pylsp", "!pyright"]
}
}
```
(After uninstalling the basedpyright extension.)
Release Notes:
- N/A
Cole Miller
created
e526921
lsp/python: Temporarily report just a singular workspace folder instead of all of the roots (#35243)
Click to expand commit body
Temporarily fixes #29133
Co-authored-by: Cole <cole@zed.dev>
Release Notes:
- python: Zed now reports a slightly different set of workspace folders
for Python projects to work around quirks in handling of multi-lsp
projects with virtual environment. This behavior will be revisited in a
near future.
Co-authored-by: Cole <cole@zed.dev>
Piotr Osiewicz
and
Cole
created
d2ef287
Add runnable support for Deno.test (#34593)
Click to expand commit body
example of detected code:
```ts
Deno.test("t", () => {
console.log("Hello, World!");
});
Deno.test(function azaz() {
console.log("Hello, World!");
});
```
I can't build zed locally so I didn't test this, but I think the code is
straightforward enough, hopefully someone else can verify it
Closes #ISSUE
Release Notes:
- N/A
Bedis Nbiba
created
109edda
docs: Fix link in configuration documentation (#35249)
Click to expand commit body
# Summary
The link "under the configuration page" [on this
page](https://zed.dev/docs/configuring-zed#agent) is broken. It should
be linking to [this page](https://zed.dev/docs/ai/configuration).
## Approach
I noted that all other links in this document begin with "./" where the
ai configuration link does not, I also noticed [this
PR](https://github.com/zed-industries/zed/pull/31119) fixing a link with
the same approach. I don't fully understand why this is the fix.
## Previous Approaches
I have tried writing the following redirect in `docs/book.toml`:
`"/ai/configuration.html" = "/docs/ai/configuration.html"`. However this
broke the `mdbook` build with the below error.
```
2025-07-29 08:49:36 [ERROR] (mdbook::utils): Caused By: Not redirecting "/Users/tmonaghan/dev/zed/docs/book/ai/configuration.html" to "/docs/ai/configuration.html" because it already exists. Are you sure it needs to be redirected?
```
Release Notes:
- N/A
Tom Monaghan
created
798aa50
Fix tasks leaked despite workspace window close (#35246)
The flag was being checked before feature flags were resolved.
Release Notes:
- N/A
Julia Ryan
created
ca34ead
onboarding: Add proper icon for action (#35241)
Click to expand commit body
This change updates one icon within the onboarding flow to the indended
icon for that entry.
Release Notes:
- N/A
Finn Evers
created
158f65f
gpui: Ensure tab index handles are properly reused across frames (#35235)
Click to expand commit body
This fixes an issue where focus handles with a tab index would get lost
between rendered frames because the focus handles were not reused for
the following paint cycle.
Release Notes:
- N/A
Finn Evers
created
fa6b1a0
keymap_ui: Fix bug introduced in #35208 (#35237)
Click to expand commit body
Closes #ISSUE
Fixes a bug that was cherry picked onto stable and preview branches
introduced in #35208 whereby modifier keys would show up and not be
removable when editing a keybind
Release Notes:
- (preview only) Keymap Editor: Fixed an issue introduced in v0.197.2
whereby modifier keys would show up and not be removable while recording
keystrokes in the keybind edit modal
Hopefully, this will make it a bit easier to parse as a whole.
Release Notes:
- Made the keymap editor denser, improving how easy you can parse it at
a glance.
Danilo Leal
created
7ccf8c2
onboarding: Continue work on new flow (#35233)
Click to expand commit body
This PR continues the work on the new and revamped onboarding flow.
Release Notes:
- N/A
Finn Evers
created
8207621
Improve JetBrains keymap for dock toggling (#35234)
Click to expand commit body
Follow-up to:
- https://github.com/zed-industries/zed/pull/34641
- https://github.com/zed-industries/zed/pull/35230
This improves Zed's behavior with the Jetbrains keymap for toggling
specific docks/sidebars with cmd-0 thru cmd-9 (macos) and alt-0 thru
alt-9 (linux). Added in
https://github.com/zed-industries/zed/pull/34641. Additionally, this
also maps `ctrl-b` / `ctrl-alt-`b to their JetBrains equivalents
(`editor::GoToDefinition` and `editor::GoToDefinitionSplit`) instead of
the default vscode-compatable behavior (toggle left / right dock). This
is because we those specific toggles and a default Hide keyboard
shortcut (`shift-escape`) added in
https://github.com/zed-industries/zed/pull/35230.
Thanks to @thomaseizinger for raising this in:
-
https://github.com/zed-industries/zed/discussions/34643#discussioncomment-13856746
Release Notes:
- Improve support keyboard-based dock show/hide in Jetbrains keymap.
This PR removes the `POST /billing/subscriptions/sync` endpoint, as it
has been moved to `cloud.zed.dev`.
Release Notes:
- N/A
Marshall Bowers
created
994d400
Map shift-escape in the Jetbrains keymaps (#35230)
Click to expand commit body
Release Notes:
- Added support for closing docks (sidebars) with `shift-escape` in the
Jetbrains keymaps.
Peter Tripp
created
cf13a76
editor: Prioritize fuzzy score over sort positions in code completion sort (#35229)
Click to expand commit body
We already prioritize matches that come after separators like `_`:
https://github.com/zed-industries/zed/blob/cef7d53607381975ea00d6302d8a9aab3c40eb1f/crates/fuzzy/src/matcher.rs#L274
and deprioritize non-consecutive matches using distance penalty:
https://github.com/zed-industries/zed/blob/cef7d53607381975ea00d6302d8a9aab3c40eb1f/crates/fuzzy/src/matcher.rs#L281
In completion sort, letting fuzzy score be the primary sort factor and
sort positions be secondary yields better results upon testing. We still
need sort positions because of this kind of test case:
https://github.com/zed-industries/zed/blob/cef7d53607381975ea00d6302d8a9aab3c40eb1f/crates/editor/src/code_completion_tests.rs#L195-L217
Before/After:
<img height="250" alt="image"
src="https://github.com/user-attachments/assets/38495576-add6-4435-93f0-891f48ec9263"
/>
<img height="250" alt="image"
src="https://github.com/user-attachments/assets/0c73b835-0e23-4e30-a3ff-28bb56294239"
/>
Release Notes:
- N/A
Smit Barmase
created
b64977f
Use zed settings to detect `.zed` folders (#35224)
Click to expand commit body
Behind-the-scenes enhancement of
https://github.com/zed-industries/zed/pull/35221
Release Notes:
- N/A
Richard Feldman
created
c3920b8
editor: Ensure code actions menu doesn't grow beyond its max size (#35211)
Click to expand commit body
This resolves the same issue as fixed by
https://github.com/zed-industries/zed/pull/34939/commits/d295409f0fc9c1ccd5e06e91c1c5365e96f16486
for the code actions menu.
No release notes since this only occurs on Nightly.
Release Notes:
- N/A
Finn Evers
created
055a9f2
Fix keybinds and 'No default binding' shown in docs (#35227)
Now the edit tool can access files outside the current project (just
like the terminal tool can), but it's behind a prompt (unlike other edit
tool actions).
Release Notes:
- The edit tool can now access files outside the current project, but
only if the user grants it permission to.
Richard Feldman
created
a57e4dc
Upload debug info to sentry.io in nightly builds (#35089)
Click to expand commit body
This is a preparatory change which will allow us to use sentry for crash
reporting once we start uploading minidumps.
Release Notes:
- N/A
Closes #ISSUE
Fixed various issues and improved UX around the keystroke input
primarily when used for keystroke search.
Release Notes:
- Keymap Editor: FIxed an issue where the modifiers used to activate
keystroke search would appear in the keystroke search
- Keymap Editor: Made it possible to search for repeat modifiers, such
as a binding with `cmd-shift cmd`
- Keymap Editor: Made keystroke search matches match based on ordered
(not necessarily contiguous) runs. For example, searching for `cmd
shift-j` will match `cmd-k cmd-shift-j alt-q` and `cmd-i g shift-j` but
not `alt-k shift-j` or `cmd-k alt-j`
- Keymap Editor: Fixed the clear keystrokes binding (`delete` by
default) not working in the keystroke input
Follow-up to #26114
- Ensure that the previous commit message is filled in when toggling on
amend mode from the context menu
- Fix keybinding flicker in context menu
Release Notes:
- N/A
Making icons consistent, adjusting spacing, and moving the "Leave Call"
button to be the very last, which makes more sense to me than the
"Share" button being the last. Sharing your project is still part of the
call, so in the left edge of the button strip is where, conceptually,
the option to end the call should be, I think!
Release Notes:
- N/A
Danilo Leal
created
3ad0546
Re-add `TestScreenCaptureStream` implementation for `mock_client` to fix FreeBSD and MinGW builds (#35191)
Click to expand commit body
The implementation was removed in #31506. re-added it to match the
current implementation from `gpui::test`
Closes #35189
Release Notes:
- N/A
Maksim Bondarenkov
created
e38f575
ci: Use cargo update --locked instead of --frozen (#35192)
Click to expand commit body
This fixes false positives when e.g. bumping git deps
Release Notes:
- N/A
Piotr Osiewicz
created
2566acc
go: Support benchmarks named "Benchmark" (#35167)
Click to expand commit body
The regular expression for benchmarks was enforcing using a suffix
(e.g., `BenchmarkFoo`), but `Benchmark` is a valid benchmark name, just
as `Test` is a valid test name, and `Fuzz` is a valid fuzz test name.
Release Notes:
- Add support for running Go benchmarks named "Benchmark"