c655428
Have agent servers respect always_allow_tool_actions
Richard Feldman created
c655428
Have agent servers respect always_allow_tool_actions
Richard Feldman created
45af1fc
Always double reconnection delay and add jitter (#35337)
Previously, we would pick an exponent between 0.5 and 2.5, which would cause a lot of clients to try reconnecting in rapid succession, overwhelming the server as a result. This pull request always doubles the previous delay and introduces a jitter that can, at most, double it. As part of this, we're also increasing the maximum reconnection delay from 10s to 30s: this gives us more space to spread out the reconnection requests. Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Antonio Scandurra and Marshall Bowers created
0aea5ac
Fix Windows CI logic (#35335)
Fixes unintentional change in https://github.com/zed-industries/zed/pull/35204 Release Notes: - N/A
Peter Tripp created
4d66d96
Revert "gpui: Implement support for wlr layer shell (#32651)" (#35331)
This reverts commit c110f7801516a1948ade4a51213f1fc8ea7f8efc.
On Linux Wayland, that causes a panic:
```
already mutably borrowed: BorrowError
zed::reliability::init_panic_hook::{{closure}}::h276cc55bf0717738+165677654
std::panicking::rust_panic_with_hook::h409da73ddef13937+139331443
std::panicking::begin_panic_handler::{{closure}}::h159b61b27f96a9c2+139330666
std::sys::backtrace::__rust_end_short_backtrace::h5b56844d75e766fc+139314825
__rustc[4794b31dd7191200]::rust_begin_unwind+139329805
core::panicking::panic_fmt::hc8737e8cca20a7c8+9934576
core::cell::panic_already_mutably_borrowed::h95c7d326eb19a92a+9934403
<gpui::platform::linux::wayland::window::WaylandWindow as gpui::platform::PlatformWindow>::set_app_id::hfa7deae0be264f60+10621600
gpui::window::Window::new::h6505f6042d99702f+80424235
gpui::app::async_context::AsyncApp::open_window::h62ef8f80789a0af2+159117345
workspace::Workspace::new_local::{{closure}}::{{closure}}::h4d786ba393f391b5+160720110
gpui::app::App::spawn::{{closure}}::haf6a6ef0f9bab21c+159294806
async_task::raw::RawTask<F,T,S,M>::run::h9e5f668e091fddff+158375501
<gpui::platform::linux::wayland::client::WaylandClient as gpui::platform::linux::platform::LinuxClient>::run::h69e40feabd97f1bb+79906738
gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run::hd80e5b2da41c7d0a+79758141
gpui::app::Application::run::h9136595e7346a2c9+163935333
zed::main::h83f7ef86a32dbbfd+165755480
std::sys::backtrace::__rust_begin_short_backtrace::hb6da6fe5454d7688+168421891
std::rt::lang_start::{{closure}}::h51a50d6423746d5f+168421865
std::rt::lang_start_internal::ha8ef919ae4984948+139244369
main+168421964
__libc_start_call_main+29344125649354
__libc_start_main_impl+29344125649547
_start+12961358
```
Release Notes:
- N/A
Kirill Bulatov created
93e6b01
Actually disable ai for now (#35327)
Closes https://github.com/zed-industries/zed/issues/35325 * removes Supermaven actions * removes copilot-related action * stops re-enabling edit predictions when disabled Release Notes: - N/A
Kirill Bulatov created
0072527
agent: Rename "open configuration" action to "open settings" (#35329)
"Settings" is the terminology we use in the agent panel, thus having the action use "configuration" makes it harder for folks to find this either via the command palette or the keybinding editor UI in case they'd like to change it. Release Notes: - agent: Renamed the "open configuration" action to "open settings" for better discoverability and consistency
Danilo Leal created
c22fa9a
chore: Move a bunch of foreground tasks into background (#35322)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
49b75e9
Kb/wasm panics (#35319)
Follow-up of https://github.com/zed-industries/zed/pull/34208 Closes https://github.com/zed-industries/zed/issues/35185 Previous code assumed that extensions' language server wrappers may leak only in static data (e.g. fields that were not cleared on deinit), but we seem to have a race that breaks this assumption. 1. We do clean `all_lsp_adapters` field after https://github.com/zed-industries/zed/pull/34334 and it's called for every extension that is unregistered. 2. `LspStore::maintain_workspace_config` -> `LspStore::refresh_workspace_configurations` chain is triggered independently, apparently on `ToolchainStoreEvent::ToolchainActivated` event which means somewhere behind there's potentially a Python code that gets executed to activate the toolchian, making `refresh_workspace_configurations` start timings unpredictable. 3. Seems that toolchain activation overlaps with plugin reload, as `2025-07-28T12:16:19+03:00 INFO [extension_host] extensions updated. loading 0, reloading 1, unloading 0` suggests in the issue logs. The plugin reload seem to happen faster than workspace configuration refresh in https://github.com/zed-industries/zed/blob/c65da547c9aa5d798a1a71468bf253bf55d1cb09/crates/project/src/lsp_store.rs#L7426-L7456 as the language servers are just starting and take extra time to respond to the notification. At least one of the `.clone()`d `adapter`s there is the adapter that got removed during plugin reload and has its channel closed, which causes a panic later. ---------------------------- A good fix would be to re-architect the workspace refresh approach, same as other accesses to the language server collections. One way could be to use `Weak`-based structures instead, as definitely the extension server data belongs to extension, not the `LspStore`. This is quite a large undertaking near the extension core though, so is not done yet. Currently, to stop the excessive panics, no more `.expect` is done on the channel result, as indeed, it now can be closed very dynamically. This will result in more errors (and backtraces, presumably) printed in the logs and no panics. More logging and comments are added, and workspace querying is replaced to the concurrent one: no need to wait until a previous server had processed the notification to send the same to the next one. Release Notes: - Fixed warm-related panic happening during startup
Kirill Bulatov created
7be1f24
Replace `zed_llm_client` with `cloud_llm_client` (#35309)
This PR replaces the usage of the `zed_llm_client` with the `cloud_llm_client`. It was ported into this repo in #35307. Release Notes: - N/A
Marshall Bowers created
17a0179
Stop caching needlessly (#35308)
Release Notes: - N/A
Mikayla Maki created
b8f3a91
Add `cloud_llm_client` crate (#35307)
This PR adds a `cloud_llm_client` crate to take the place of the `zed_llm_client`. Release Notes: - N/A
Marshall Bowers created
3824751
Add meta description tag to docs pages (#35112)
Closes #ISSUE
Adds basic frontmatter support to `.md` files in docs. The only
supported keys currently are `description` which becomes a `<meta
name="description" contents="...">` tag, and `title` which becomes a
normal `title` tag, with the title contents prefixed with the subject of
the file.
An example of the syntax can be found in `git.md`, as well as below
```md
---
title: Some more detailed title for this page
description: A page-specific description
---
# Editor
```
The above will be transformed into (with non-relevant tags removed)
```html
<head>
<title>Editor | Some more detailed title for this page</title>
<meta name="description" contents="A page-specific description">
</head>
<body>
<h1>Editor</h1>
</body>
```
If no front-matter is provided, or If one or both keys aren't provided,
the title and description will be set based on the `default-title` and
`default-description` keys in `book.toml` respectively.
## Implementation details
Unfortunately, `mdbook` does not support post-processing like it does
pre-processing, and only supports defining one description to put in the
meta tag per book rather than per file. So in order to apply
post-processing (necessary to modify the html head tags) the global book
description is set to a marker value `#description#` and the html
renderer is replaced with a sub-command of `docs_preprocessor` that
wraps the builtin `html` renderer and applies post-processing to the
`html` files, replacing the marker value and the `<title>(.*)</title>`
with the contents of the front-matter if there is one.
## Known limitations
The front-matter parsing is extremely simple, which avoids needing to
take on an additional dependency, or implement full yaml parsing.
* Double quotes and multi-line values are not supported, i.e. Keys and
values must be entirely on the same line, with no double quotes around
the value.
The following will not work:
```md
---
title: Some
Multi-line
Title
---
```
* The front-matter must be at the top of the file, with only white-space
preceding it
* The contents of the title and description will not be html-escaped.
They should be simple ascii text with no unicode or emoji characters
Release Notes:
- N/A *or* Added/Fixed/Improved ...
---------
Co-authored-by: Katie Greer <katie@zed.dev>
Ben Kunkle and Katie Greer created
5776619
ui: Clean up toggle button group component (#35303)
This change cleans up the toggle button component a bit by utilizing const parameters instead and also removes some clones by consuming the values where possible instead. Release Notes: - N/A
Finn Evers created
0be83f1
emmet: Bump to 0.0.4 (#35305)
This PR bumps the emmet extension to version 0.0.4. Includes: - https://github.com/zed-industries/zed/pull/33865 - https://github.com/zed-industries/zed/pull/32208 - https://github.com/zed-industries/zed/pull/15177 Note that this intentionally does NOT include a change in the `extension.toml`: The version was bumped incorrectly once in https://github.com/zed-industries/zed/pull/32208 in both the `extension.toml` as well as the `Cargo.lock` but not in the `Cargo.toml`. After that, https://github.com/zed-industries/zed/pull/33667 only removed the changes in the `Cargo.lock` but didn't revert the change in the `extension.toml` file. Hence, the version in the `extension.toml` is already at `0.0.4` Release Notes: - N/A
Finn Evers created
f0927fa
collab: Add kill switches for syncing data to and from Stripe (#35304)
This PR adds two kill switches for syncing data to and from Stripe using Collab. The `cloud-stripe-events-polling` and `cloud-stripe-usage-meters-sync` feature flags control whether we use Cloud for polling Stripe events and updating Stripe meters, respectively. When we're ready to hand off the syncing to Cloud we can enable the feature flag to do so. Release Notes: - N/A
Marshall Bowers created
d2d116c
collab: Remove `GET /user` endpoint (#35301)
This PR removes the `GET /user` endpoint, as it has been moved to `cloud.zed.dev`. Release Notes: - N/A
Marshall Bowers created
9f69b53
keymap_ui: Additional cleanup (#35299)
Closes #ISSUE Additional cleanup and testing for the keystroke input including - Focused testing of the "previous modifiers" logic in search mode - Not merging unmodified keystrokes into previous modifier only bindings (extension of #35208) - Fixing a bug where input would overflow in search mode when entering only modifiers - Additional testing logic to ensure keystrokes updated events are always emitted correctly Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
48e085a
onboarding ui: Add editing page to onboarding page (#35298)
I added buttons for inlay values, showing the mini map, git blame, and controlling the UI/Editor Font/Font size. The only thing left for this page is some UI clean up and adding buttons for setting import from VSCode/cursor. I also added Numeric Stepper as a component preview. Current state: <img width="1085" height="585" alt="image" src="https://github.com/user-attachments/assets/230df474-da81-4810-ba64-05673896d119" /> Release Notes: - N/A
Anthony Eid created
3378f02
Fix link to panic location on GitHub (#35162)
I had a panic, and it reported ``https://github.com/zed-industries/zed/blob/24c2a465bbbbb1be28259abef2f98d52184ff446/src/crates/assistant_tools/src/edit_agent.rs#L686 (may not be uploaded, line may be incorrect if files modified)`` The `/src` part seems superfluous, and result in a link that don’t work (unlike `https://github.com/zed-industries/zed/blob/24c2a465bbbbb1be28259abef2f98d52184ff446/src/crates/assistant_tools/src/edit_agent.rs#L686`). I don’t know why it originally worked (of if it even actually originally worked properly), but there seems to be no reason to keep that `/src`. Release Notes: - N/A
marius851000 created
c110f78
gpui: Implement support for wlr layer shell (#32651)
I was interested in potentially using gpui for a hobby project, but needed [layer shell](https://wayland.app/protocols/wlr-layer-shell-unstable-v1) support for it. Turns out gpui's (excellent!) architecture made that super easy to implement, so I went ahead and did it. Layer shell is a window role used for notification windows, lock screens, docks, backgrounds, etc. Supporting it in gpui opens the door to implementing applications like that using the framework. If this turns out interesting enough to merge - I'm also happy to provide a follow-up PR (when I have the time to) to implement some of the desirable window options for layer shell surfaces, such as: - namespace (currently always `""`) - keyboard interactivity (currently always `OnDemand`, which mimics normal keyboard interactivity) - anchor, exclusive zone, margins - popups Release Notes: - Added support for wayland layer shell surfaces in gpui --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Ridan Vandenbergh and Mikayla Maki created
85b712c
keymap_ui: Clear close keystroke capture on timeout (#35289)
Closes #ISSUE Introduces a mechanism whereby keystrokes that have a post-fix which matches the prefix of the stop recording binding can still be entered. The solution is to introduce a (as of right now) 300ms timeout before the close keystroke state is wiped. Previously, with the default stop recording binding `esc esc esc`, searching or entering a binding ending in esc was not possible without using the mouse. `e.g.` entering keystroke `ctrl-g esc` and then attempting to hit `esc` three times would stop recording on the penultimate `esc` press and the final `esc` would not be intercepted. Now with the timeout, it is possible to enter `ctrl-g esc`, pause for a moment, then hit `esc esc esc` and end the recording with the keystroke input state being `ctrl-g esc`. I arrived at 300ms for this delay as it was long enough that I didn't run into it very often when trying to escape, but short enough that a natural pause will almost always work as expected. Release Notes: - Keymap Editor: Added a short timeout to the stop recording keybind handling in the keystroke input, so that it is now possible using the default bindings as an example (custom bindings should work as well) to search for/enter a binding ending with `escape` (with no modifier), pause for a moment, then hit `escape escape escape` to stop recording and search for/enter a keystroke ending with `escape`.
Ben Kunkle created
5fa2121
Fix animations in the component preview (#33673)
Fixes #33869 The Animation page in the Component Preview had a few issues. * The animations only ran once, so you couldn't watch animations below the fold. * The offset math was wrong, so some animated elements were rendered outside of their parent container. * The "animate in from right" elements were defined with an initial `.left()` offset, which overrode the animation behavior. I made fixes to address these issues. In particular, every time you click the active list item, it renders the preview again (which causes the animations to run again). Before: https://github.com/user-attachments/assets/a1fa2e3f-653c-4b83-a6ed-c55ca9c78ad4 After: https://github.com/user-attachments/assets/3623bbbc-9047-4443-b7f3-96bd92f582bf Release Notes: - N/A
Daniel Sauble created
1501ae0
Upgrade rodio to 0.21 (#34368)
Hi all, We just released [Rodio 0.21](https://github.com/RustAudio/rodio/blob/master/CHANGELOG.md) :partying_face: with quite some breaking changes. This should take care of those for zed. I tested it by hopping in and out some of the zed channels, sound seems to still work. Given zed uses tracing I also took the liberty of enabling the tracing feature for rodio. edit: We changed the default wav decoder from hound to symphonia. The latter has a slightly more restrictive license however that should be no issue here (as the audio crate uses the GPL) Release Notes: - N/A
David Kleingeld created
3973142
Adjust Zed badge (#35294)
- Make right side background white - Fix Zed casing Release Notes: - N/A
Joseph T. Lyons created
7878eac
python: Use a single workspace folder for basedpyright (#35292)
Treat the new basedpyright adapter the same as pyright was treated in #35243. Release Notes: - N/A
Cole Miller created
72f8fa6
Adjust Zed badge (#35290)
- Inline badges - Set label background fill color to black - Uppercase Zed text - Remove gray padding Release Notes: - N/A
Joseph T. Lyons created
902c17a
Add Zed badge to README.md (#35287)
Release Notes: - N/A
Joseph T. Lyons created
efa3cc1
keymap_ui: Test keystroke input (#35286)
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)
Release Notes: - N/A
Michael Sloan created
77dc65d
collab: Attach `User-Agent` to `handle connection` span (#35282)
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)
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)
Release Notes: - N/A
localcc created
397b5f9
Ensure context servers are spawned in the workspace directory (#35271)
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>
Finn Evers and Danilo Leal created
d43f464
Fix nightly icon (#35204)
Release Notes: - N/A
localcc created
511fdae
Allow searching Windows paths with forward slash (#35198)
Release Notes: - Searching windows paths is now possible with a forward slash
localcc created
a8bdf30
client: Fix typo in the error message (#35275)
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)
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)
Closes https://github.com/zed-industries/zed/issues/23896 Release Notes: - N/A
Peter Tripp created
5a218d8
Add more data to see which extension got leaked (#35272)
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)
Release Notes: - N/A
Agus Zubiaga created
8f952f1
gpui: Ensure first tab index is selected on first focus (#35247)
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)
This should be a no-op PR, behavior-wise. Release Notes: - N/A
Piotr Osiewicz created
691b3ca
Cache LSP code lens requests (#35207)
Kirill Bulatov created
cfd5b8f
python: Uplift basedpyright support into core (#35250)
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)
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)
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)
# 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)
Closes https://github.com/zed-industries/zed/issues/34932 Release Notes: - Fixed tasks leaked despite workspace window close
Kirill Bulatov created
11c7b49
Fix panic feature flag detection (#35245)
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)
This change updates one icon within the onboarding flow to the indended icon for that entry. Release Notes: - N/A
Finn Evers created