8087057
Add (somewhat necessary) comment
Kunall Banerjee created
8087057
Add (somewhat necessary) comment
Kunall Banerjee created
0da7cf1
Sanitize canonicalized `--user-data-dir`
Kunall Banerjee created
5418013
agent_ui: Add "Paste as Plain Text" to message editor context menu (#50625)
Add the existing `PasteRaw` action to the right-click context menu in the message editor, making it more discoverable. Previously it was only available via the keyboard shortcut (Cmd+Shift+V / Ctrl+Shift+V) or the command palette. Release Notes: - Added "Paste as Plain Text" to the agent panel message editor right-click menu
Eric Holk created
1fec1ca
ci: Clean up some of our workflows (#50499)
Release Notes: - N/A
Finn Evers created
0c43ce8
nix: Hide pipewire lazy trampolines in libwebrtc when linking as SO (#50743)
This would cause a null pointer dereference when trying to open an audio device in Zed. More context: https://github.com/NixOS/nixpkgs/pull/478907/changes#r2885943326 cc @cameron1024 Release Notes: - Fixed crash when trying to join a channel/test audio on Nix-built Zed on Linux.
Jakub Konka created
53fca25
git_ui: Add ability to delete git worktrees from picker (#50015)
Adds the ability to delete a git worktree directly from the worktree picker, inspired by the existing branch delete functionality. (`cmd-shift-backspace` on macOS, `ctrl-shift-backspace` on Linux/Windows). Screenshot: <img width="1288" height="466" alt="Screenshot 2026-02-24 at 16 01 05" src="https://github.com/user-attachments/assets/6ca5048d-63fa-4295-a578-358904bb92eb" /> Release Notes: - Added the ability to delete a git worktree from the worktree picker --------- Co-authored-by: Anthony Eid <anthony@zed.dev>
David Alecrim and Anthony Eid created
e717268
git: Allow committing in restrictive worktrees (#50749)
follow up on: https://github.com/zed-industries/zed/pull/50649 When committing in a restrictive workspace we avoid running git hooks instead of failing the commit because hooks aren't allowed. I also passed in more git cli hardening configurations to use when Zed spawns git commands Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A
Anthony Eid created
67c2c34
Include repo_url in edit prediction requests when data collection is enabled (#50745)
Release Notes: - N/A
Max Brunsfeld created
3f1c833
agent: Cleanup `StreamingEditFileTool` (#50725)
- Adds logging if tool fails - Reduces boilerplate in test - Simplified code in a bunch of places Release Notes: - N/A
Bennet Bo Fenner created
9938ebe
editor: Add support for no auto-indent on enter (#47751)
Closes #47550 Changes the `auto_indent` setting from a boolean to an enum with three modes: - **`full`** (default): Adjusts indentation based on syntax context when typing (previous `true` behavior) - **`preserve_indent`**: Preserves the current line's indentation on new lines, but doesn't adjust based on syntax - **`none`**: No automatic indentation - new lines start at column 0 (previous `false` behavior) This gives users more control over indentation behavior. Previously, setting `auto_indent: false` would still preserve indentation on new lines, which was unexpected. Includes: - Settings migration from boolean to enum values - Settings UI dropdown renderer Release Notes: - Changed `auto_indent` setting from boolean to enum with `full`, `preserve_indent`, and `none` options <img width="1373" height="802" alt="Screenshot 2026-01-27 at 16 32 10" src="https://github.com/user-attachments/assets/b629e1d8-7359-4853-8222-abfa71d6ebe2" /> --------- Co-authored-by: MrSubidubi <finn@zed.dev>
Oliver Azevedo Barnes and MrSubidubi created
4d42d3a
docs: Remove Preview callouts for stable release (#50736)
This PR removes Preview callouts from documentation for features that are now in Stable. ## Files Updated • docs/src/collaboration/overview.md • docs/src/debugger.md • docs/src/configuring-languages.md • docs/src/troubleshooting.md • docs/src/outline-panel.md • docs/src/getting-started.md • docs/src/tasks.md • docs/src/ai/edit-prediction.md • docs/src/ai/llm-providers.md ## What This Does Removes callouts like: ```markdown > **Preview:** This feature is available in Zed Preview. It will be included in the next Stable release. ``` And: ```markdown > **Changed in Preview (v0.XXX).** See [release notes](/releases#0.XXX). ``` These features are now in Stable, so the callouts are no longer needed. Release Notes: - N/A
Joseph T. Lyons created
9316c4a
Fix crash metrics ID (#50728)
Before this change the crash handler uploaded crashes before sign-in had happened. Now we get the metrics_id correctly. This allows for us to tie crashes reported on Github to users who have opted into telemetry (users who have opted into crash reporting but not telemetry will not have a metrics_id). Release Notes: - Fixed crash reporter metadata collection --------- Co-authored-by: Miguel Raz Guzmán Macedo <miguel@zed.dev>
Conrad Irwin and Miguel Raz Guzmán Macedo created
0fc5bc2
debugger: Reverse Python repr escaping (#50554)
Closes #37168 Authored-By: @ngauder Release Notes: - debugger: Unescape Python strings Co-authored-by: Nikolas Gauder <nikolas.gauder@tum.de>
Conrad Irwin and Nikolas Gauder created
5c91ebf
git: Move diff num stat calculation to repository snapshot layer (#50645)
Follow up on: https://github.com/zed-industries/zed/pull/49519 This PR reworks how Zed calculates diff num stats by moving the calculation to the `RepositorySnapshot` layer, instead of the `GitPanel`. This has a couple of benefits: 1. Snapshot recalculations are already set up to recompute on file system changes and only update the affected files. This means that diff stats don't need to manage their own subscription or states anymore like they did in the original PR. 2. We're able to further separate the data layer from the UI. Before, the git panel owned all the subscriptions and tasks that refreshed the diff stat, now the repository does, which is more inline with the code base. 3. Integration tests are cleaner because `FakeRepository` can handle all the data and calculations of diff stat and make it accessible to more tests in the codebase. Because a lot of tests wouldn't initialize the git panel when they used the git repository. 4. This made implementing remote/collab support for this feature streamline. Remote clients wouldn't get the same buffer events as local clients, so they wouldn't know that the diff stat state has been updated and invalidate their data. 5. File system changes that happened outside of Zed now trigger the diff stat refresh because we're using the `RepositorySnapshot`. I added some integration tests as well to make sure collab support is working this time. Finally, adding the initial diff calculation to `compute_snapshot` didn't affect performance for me when checking against chromium's diff with HEAD~1000. So this should be a safe change to make. I decided to add diff stats on the status entry struct because it made updating changed paths and the collab database much simpler than having two separate SumTrees. Also whenever the UI got a file's status it would check its diff stat as well, so this change makes that code more streamlined as well. Before you mark this PR as ready for review, make sure that you have: - [x] Added a solid test coverage and/or screenshots from doing manual testing. - [x] Done a self-review taking into account security and performance aspects. Release Notes: - N/A
Anthony Eid created
4af77fb
docs: Remove outdated reference to simple-completion-language-server (#50732)
Closes #46811 Release Notes: - N/A
Finn Evers created
f3e4c15
project_panel: Fix scrolling in empty area below file list (#50683)
Closes #50624 The empty bottom section of the project panel showed a horizontal scrollbar on hover, but scrolling didn't work there. Added a scroll wheel handler to the blank area that forwards scroll events to the uniform list's scroll handle, making both horizontal and vertical scrolling work from anywhere in the panel. Before you mark this PR as ready for review, make sure that you have: - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [x] Aligned any UI changes with the [UI checklist](https://github.com/zedindustries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Fixed project panel empty area showing a non-functional scrollbar; scrolling now works from anywhere in the panel --------- Co-authored-by: MrSubidubi <finn@zed.dev>
Viraj Bhartiya and MrSubidubi created
74e747a
repl: Support kernel language aliases in REPL (#49762)
Add a `kernel_language_names` field to `LanguageConfig` that allows languages to declare alternative names that Jupyter kernels may use. This fixes REPL matching for cases where a kernel reports a different language identifier than Zed's language name. For example, the Nu extension would set `kernel_language_names = ["nushell", "nu"]` in its config.toml, enabling REPL support for nu-jupyter-kernel which reports `"language": "nushell"` in its kernelspec. The change consolidates kernel language matching logic into a single `Language::matches_kernel_language()` method that checks the code fence block name, language name, and the new aliases list (all case-insensitive). - [x] Done a self-review taking into account security and performance aspects Release Notes: - Added `kernel_language_names` field for extensions to self identify REPL mappings
Kyle Kelley created
55ae7b0
Increase timeout for `test_random_blocks` (#50724)
See https://github.com/zed-industries/zed/actions/runs/22679055818 Release Notes: - N/A
Cole Miller created
83b05f1
Fix terminal path click failing when path is prefixed with '0:' (#50663)
The path hyperlink regex's middle-char pattern [[:(][^0-9()]](cci:2://file:///d:/zed/crates/fs/src/fs.rs:89:0-157:1) allowed colon+space because space was not in the exclusion set. This caused `0: foo/bar.txt` to be matched as a single path instead of just `foo/bar.txt`. Fix: add space to the exclusion class: [[:(][^0-9()\\ ]](cci:2://file:///d:/zed/crates/fs/src/fs.rs:89:0-157:1) Closes #50531 - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) (N/A) Release Notes: - Fixed terminal Ctrl-click path detection failing when path is preceded by a prefix like `0:` (#50531)
xcb3d created
68cb60a
Staff-ship streaming edit file tool (#50720)
Release Notes: - N/A
Bennet Bo Fenner created
87bc2aa
Add support for streaming tool input to more providers (#50682)
To test: - [x] Bedrock - [x] Copilot Chat - [x] Deepseek - [x] Open AI - [x] Open Router - [x] Vercel - [x] Vercel AI Gateway - [x] xAI - [x] Mistral Release Notes: - N/A
Bennet Bo Fenner created
0394341
ep: Collapse whitespace in deltaChrF (#50716)
Release Notes: - N/A
Oleksiy Syvokon created
731a800
repl: Bump `runtimed` ecosystem packages and add support for V3 Jupyter Notebooks (#49914)
- Add support for v3 Jupyter Notebooks ( nbformat 1.2.0 <-> https://github.com/runtimed/runtimed/pull/275 ) - This means that we can now open notebooks like [Signal Processing for Python](https://nbviewer.org/github/unpingco/Python-for-Signal-Processing/tree/master/) and much more. Release Notes: - N/A
MostlyK created
d329961
workspace: Remove superfluous call dependency (#50713)
Closes #50701 Before you mark this PR as ready for review, make sure that you have: - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A
Piotr Osiewicz created
489ec66
Bump Zed to v0.228 (#50710)
Release Notes: - N/A
Joseph T. Lyons created
866ec42
Remove deprecated Gemini 3 Pro Preview (#50503)
Gemini 3 Pro Preview has been deprecated in favor of Gemini 3.1 Pro. This removes the `Gemini3Pro` variant from the `Model` enum and all associated match arms, updates eval model lists, docs, and test fixtures. A serde alias (`"gemini-3-pro-preview"`) is kept on `Gemini31Pro` so existing user settings gracefully migrate to the replacement model. Closes AI-66 Release Notes: - Removed deprecated Gemini 3 Pro Preview model; existing configurations automatically migrate to Gemini 3.1 Pro.
Richard Feldman created
9b8ad01
ep: Option to configure custom Baseten environment (#50706)
Release Notes: - N/A
Oleksiy Syvokon created
a1d4037
cloud_api_client: Send the organization ID in LLM token requests (#50517)
This is already expected on the cloud side. This lets us know under which organization the user is logged in when requesting an llm_api token. Closes CLO-337 Release Notes: - N/A
Tom Houlé created
5641ccf
docs: Add consent banner (#50302)
Adds a consent banner, similar to the one on zed.dev Before you mark this PR as ready for review, make sure that you have: - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A
Gaauwe Rombouts created
d5137d7
git: Add trusted worktree support to git integrations (#50649)
This PR cleans up the git command spawning by wrapping everything in GitBinary instead to follow a builder/factory pattern. It also extends trusted workspace support to git commands. I also added a `clippy.toml` configuration to our git crate that warns against using `Command` struct to spawn git commands instead of going through `GitBinary`. This should help us maintain the factory pattern in the future Before you mark this PR as ready for review, make sure that you have: - [x] Added solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects Release Notes: - git: Add trusted workspace support for Zed's git integration
Anthony Eid created
0b58d34
editor: Refactor excerpts removed event handling (#50695)
Refactor the changes introduced in https://github.com/zed-industries/zed/pull/50525, in order to remove the `DisplayMap.clear_folded_buffer` method and update the editor's handling of `multi_buffer::Event::ExcerptsRemoved` to actually call `DisplayMap.unfold_buffers`, which correctly updates the `BlockMap` using its `BlockMapWriter`, ensuring that the block map is synced. Before you mark this PR as ready for review, make sure that you have: - [X] Added a solid test coverage and/or screenshots from doing manual testing - [X] Done a self-review taking into account security and performance aspects - [X] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A
Dino created
932981f
editor: Prevent underlines from appearing in minimap (#48510)
I noticed that the minimap seems to render underlines with the same
thickness as the main editor, which looks a bit off. This becomes much
more noticeable when enabling `semantic_token_rules` (due to the
increased number of underlines):
```json
"global_lsp_settings": {
"semantic_token_rules": [
{
"token_modifiers": ["mutable"],
"underline": true,
},
],
}
```
Looking at the existing code, I found that diagnostic underlines already
check `editor_style.show_underlines` to ensure they are only displayed
in the main editor. To maintain consistency, I applied the same
filtering logic to `chunk_highlight` so that these underlines are no
longer rendered in the minimap.
Before:
<img alt="CleanShot 2026-02-06 at 02 28 31@2x"
src="https://github.com/user-attachments/assets/16401154-23f5-43ef-a7a8-b1035c19e076"
/>
After:
<img alt="CleanShot 2026-02-06 at 02 31 36@2x"
src="https://github.com/user-attachments/assets/979a04be-e585-44be-9c42-4dfab7b89186"
/>
Release Notes:
- N/A *or* Added/Fixed/Improved ...
ᴀᴍᴛᴏᴀᴇʀ created
90ddd58
agent: Move file_read_times logic to ActionLog instead of Thread (#50688)
Since the read times always correspond to an action log call anyway, we can let the action log track this internally, and we don't have to provide a reference to the Thread in as many tools. Release Notes: - N/A --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de> Co-authored-by: MrSubidubi <dev@bahn.sh>
Ben Brandt , Bennet Bo Fenner , and MrSubidubi created
de10776
Add .cppm (C++20 module interface) to C++ file extensions (#50667)
`.cppm` is the widely used extension for C++20 module interface units, supported by MSVC, Clang, and GCC. Currently Zed doesn't recognize it as C++, so users get no syntax highlighting or LSP support. Changes: `crates/languages/src/cpp/config.toml`: add cppm to path_suffixes `crates/theme/src/icon_theme.rs`: add cppm to the C++ icon matcher https://github.com/search?q=path%3A*.cppm&type=code Release Notes: - N/A
moleium created
007e3ec
docs: Update docs for the subagent tool (#50689)
Adds the actual tool name so people can turn it off if they want. Release Notes: - N/A Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de> Co-authored-by: MrSubidubi <dev@bahn.sh>
Ben Brandt , Bennet Bo Fenner , and MrSubidubi created
4668dbc
agent: Allow for expanding the subagent thread when permissions are requested (#50684)
Previously, there was no way to view the full thread context Release Notes: - N/A Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de> Co-authored-by: MrSubidubi <dev@bahn.sh>
Ben Brandt , Bennet Bo Fenner , and MrSubidubi created
f0abcd8
More fixes for OpenGL initialization on Intel HD 4000 (#50680)
Release Notes: - N/A
John Tur created
f023109
docs: Fix incorrect IAM terminology under Bedrock section (#50546)
IAM users cannot be assumed; only IAM roles can be. Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing - [ ] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A
john created
152d3ea
project_panel: Fix Reveal in File Manager for WSL projects (#50610)
Closes #46767 ## Summary The "Reveal in File Manager" action was shown in the context menu for WSL projects (guarded by `is_via_wsl_with_host_interop`), but the action handler in `Render` was only registered when `project.is_local()` — which returns `false` for WSL. Dispatching the action without a handler caused a crash. Adds the same `is_via_wsl_with_host_interop(cx)` check to the handler registration. ## Testing - Ran `cargo test -p project_panel` — 78 passed, 0 failed - Manual testing: connected to WSL Ubuntu, right-clicked a file in the project panel, used "Reveal in File Manager" — Windows Explorer opened correctly without crashing Before you mark this PR as ready for review, make sure that you have: - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Fixed a crash when using "Reveal in File Manager" on files in WSL projects (#46767).
Sarthak Mishra created
c0fa025
repl: Fix image scaling (#48435)
Continues #47114 Release Notes: - Fixed REPL output width clamping to apply to the content area so images don’t get clipped by controls --------- Co-authored-by: MrSubidubi <finn@zed.dev>
Casper van Elteren and MrSubidubi created
e51cd49
doc: Improve documentation for language server `...` expansion (#50672)
Hi! The `...` entry in the `language_servers` setting was only explained in a single bullet point, which led users to misconfigure their setup, particularly when overriding defaults that disable certain servers with `!`. Add a detailed explanation of how `...` works and a table of examples using Ruby's real server configuration to illustrate the override behavior. Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing - [ ] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A
Vitaly Slobodin created
cdb34c3
python: Register LSP adapters directly to the LanguageRegistry (#50662)
The purpose of `register_available_lsp_adapter()` is to allow language servers to be reused across multiple languages. Since adapters like `ty`, `pylsp`, and `pyright` are specific to Python, there is no need to register them for other languages. Additionally, registering them directly to the global `LanguageRegistry` results in negligible resource consumption. We can then use the default settings to control the default language server for Python, as referenced here: https://github.com/zed-industries/zed/blob/9c9337a8021f74511625517c3f4fa021106609eb/assets/settings/default.json#L2119-L2130 Additionally, the documentation for Python has been updated to clarify that the `"..."` syntax does not mean "keep the rest at default," but rather "include all other available servers." Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing (no sure how to add test for this) - [x] Done a self-review taking into account security and performance aspects - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A *or* Added/Fixed/Improved ...
Xin Zhao created
9a6046c
Change miniprofiler file extension to `.miniprof.json` (#50429)
The main intention behind this change is to support uploading these files to GitHub. `.miniprof` is not a supported extension by GitHub, but `.json` is. The only “downside” to this change is that the cleanup process will have to look for `.miniprof` files AND `.miniprof.json` files. Maybe we can remove that change at a later date? Ref: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Changed miniprofiler file extension to `.miniprof.json`
Kunall Banerjee created
9c9337a
Add cmd-y binding for agent::Keep in agent diff review (#50656)
Release Notes: - Added `cmd-y` keybinding for accepting changes in the agent diff review, matching the git diff review shortcut.
Mikayla Maki created
6a38c5c
Fix panic in remote workspaces (#50647)
Fixes ZED-4JD Release Notes: - Fix a panic when opening the remote server modal
Conrad Irwin created
7f3dee8
Fix OpenGL initialization on Intel HD 4000 (#50646)
Release Notes: - Fixed Zed failing to initialize OpenGL on certain Linux devices
John Tur created
832782f
Persist token count and scroll position across agent restarts (#50620)
Release Notes: - Token counts and scroll position are restored when loading a previous agent thread
Eric Holk created
c1cbcb6
Fix handling of `surface.configure` on Linux (#50640)
Closes #50574 Release Notes: - Fixed Zed not being responsive on some Linux configurations Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
John Tur and Conrad Irwin created
4dd42a0
agent: Fix subagent error display (#50638)
Since we were no longer just returning a string, we need to update the content in both success and error modes to get a nice rendering experience. Release Notes: - N/A
Ben Brandt created
2772db8
Remove zeta2 feature flag (#50618)
Release Notes: - N/A
Max Brunsfeld created