a7c9c24
Update to wgpu v29 (#51889)
Click to expand commit body
This release includes the OpenGL fixes which were sent upstream. Release Notes: - N/A
John Tur created
a7c9c24
Update to wgpu v29 (#51889)
This release includes the OpenGL fixes which were sent upstream. Release Notes: - N/A
John Tur created
b3282d9
Fix PR size check failing on fork PRs (#51902)
Follow-up https://github.com/zed-industries/zed/pull/51876 Use `pull_request_target` for PR size check so the workflow has write permissions to manage labels on fork PRs. Safe since we don't execute any PR code here. Failing example: https://github.com/zed-industries/zed/actions/runs/23282504031/job/67698793729?pr=48845 Release Notes: - N/A
Smit Barmase created
08d7810
gpui_linux: Set _NET_WM_NAME during X11 window creation (#51899)
#### Context On X11, the Settings window title displayed as `"Zed â██ Settings"` instead of "Zed — Settings"`. The em-dash (U+2014) was garbled because the window creation path only set the legacy `WM_NAME` property (Latin-1 encoded), but never set `_NET_WM_NAME` (UTF-8). Modern taskbars prefer `_NET_WM_NAME`, so without it they fell back to `WM_NAME` and misinterpreted the UTF-8 bytes as Latin-1. `set_title()` already sets both properties, which is why windows that update their title after creation (like the main workspace) were unaffected. The fix adds `_NET_WM_NAME` during window creation, matching what `set_title()` already does. #### Closes #51871 #### How to Review Single change in `crates/gpui_linux/src/linux/x11/window.rs` focus on the new `_NET_WM_NAME` property being set alongside the existing `WM_NAME` in `X11Window::new`. #### Self-Review Checklist - [x] I've reviewed my own diff for quality, security, and reliability - [ ] Unsafe blocks (if any) have justifying comments - [x] The content is consistent with the [UI/UX checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) - [ ] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable #### Video [Screencast from 2026-03-19 11-19-45.webm](https://github.com/user-attachments/assets/ff810e37-90ac-4ce2-a8f5-ad83e66aa3b8) Release Notes: - Fixed garbled characters in window titles on Linux X11 (e.g., Settings window)
Om Chillure created
5089b3e
agent: Clarify sub-agent delegation guidance (#51864)
This seems to work better outside of just Opus. Initial experiments look promising, going to test internally for a bit as well. Release Notes: - N/A
Ben Brandt created
2aa3666
Improve clipboard support on Windows (#51807)
- Simplify and improve Windows clipboard handler. - Fixed components that weren't handling multiple formats on the clipboard properly. Closes https://github.com/zed-industries/zed/issues/51278 Release Notes: - windows: Fixed an issue where text copied from Office applications couldn't be pasted into Zed.
John Tur created
54ebf32
sidebar: Add another round of UX refinements (#51884)
Danilo Leal created
e0acae2
auto_update: Improve Linux rsync hinting (#50637)
Previously, automatic checks could fail quietly and return to idle. This change ensures missing dependency errors are surfaced in the update UI with install guidance. What Changed: - Added a dedicated `MissingDependencyError` for dependency-related update failures. - Updated auto-update polling behavior so: - automatic checks still stay quiet for transient/general errors, - but missing dependency errors are surfaced as `AutoUpdateStatus::Errored`. - Improved Linux dependency hinting: - distro checks with `/etc/os-release`, - returns distro-appropriate install hints where possible and falls back to a generic package-manager message when distro parsing is unavailable/unknown. <img width="610" height="145" alt="image" src="https://github.com/user-attachments/assets/8bef3970-38ba-4412-9ece-7b6bb6bf903b" /> Closes #47552 - [x] Done a self-review taking into account security and performance aspects Release Notes: - Improved Linux auto-update failure issue caused by missing `rsync` by surfacing actionable install guidance in the update UI.
Nihal Kumar created
56daf91
picker: Fix mouse overrides selected item highlight in searchable dropdown (#50827)
### Fixes #31865 ### Problem When navigating a picker (command palette, file finder, etc.) with the keyboard and then hovering with the mouse, two items would appear highlighted at the same time - one from the keyboard selection ghost_element_selected background and one from the CSS style ghost_element_hover background. This happened because GPUI's CSS hover is applied at paint time independently from the Rust selection state. ### Solution Added a keyboard_navigated: bool flag to [Picker] to track whether the last navigation was via keyboard or mouse. When a keyboard navigation action fires (↑, ↓, Home, End, etc.), `keyboard_navigated` is set to true. A transparent `block_mouse_except_scroll` overlay div is added on top of each list item, preventing the CSS style from firing on `ListItem` children. When the mouse moves over any item, the overlay's `on_mouse_move` handler fires, clears keyboard_navigated, moves the selection to that item, and re-renders - removing all overlays and restoring normal mouse hover behavior. The `on_hover` handler also moves the selection to whichever item the mouse enters, so mouse navigation is fully functional. Clicks work through the overlay since `block_mouse_except_scroll` only affects hover hit-testing, not click events on the parent div. ### Behavior Matches VS Code / IntelliJ — keyboard navigation suppresses hover highlights until the mouse moves, at which point normal hover resumes. Only one item is ever highlighted at a time. ### Video [Screencast from 2026-03-05 19-20-16.webm](https://github.com/user-attachments/assets/7a8a543a-95f3-481f-b59d-171604e5f883) --------- Co-authored-by: Nathan Sobo <nathan@zed.dev>
Om Chillure and Nathan Sobo created
f0625ad
Show linked worktree names consistently in sidebar and titlebar (#51883)
This is a follow-up to https://github.com/zed-industries/zed/pull/51775, making worktree names in the sidebar appear consistent with the titlebar. ## Context - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [x] The content is consistent with the [UI/UX checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) - [x] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable Release Notes: - N/A --------- Co-authored-by: Eric Holk <eric@zed.dev>
Max Brunsfeld and Eric Holk created
3fab76c
Fix pip hash verification in assign-reviewers workflow (#51881)
## Summary Fix failing `assign-reviewers` workflow — pip's `--hash` syntax only works in requirements files (`-r`), not constraint files (`-c`). The `-c /dev/stdin` approach caused: `hashes are missing from some requirements`. Failing run: https://github.com/zed-industries/zed/actions/runs/23272148116/job/67667106308 Coordinator PR: https://github.com/zed-industries/codeowner-coordinator/pull/84 ## Test plan - [x] Verified locally: good hash installs cleanly, bad hash rejected - [ ] After merge: verify assign-reviewers workflow passes on next PR Release Notes: - N/A
John D. Swanson created
953d87d
Use Search API for hotfix monitor to avoid job cancellation (#51880)
## Summary - The Pulls API with `state=closed` paginates through all closed PRs in the repo. On a repo as active as Zed, this exceeds the 5-minute job limit ([failed run](https://github.com/zed-industries/zed/actions/runs/23271617583)). - Switch to the Search API which supports `merged:>DATE` natively, so GitHub filters server-side and returns only matching hotfix PRs. - Tested against the Zed repo — query completes in seconds. Release Notes: - N/A
John D. Swanson created
695382e
Show worktree thread status in sidebar (#51879)
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 Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Eric Holk and Max Brunsfeld created
10ddd90
Update assign-reviewers workflow for fork PR support (#51876)
## Summary Deploy updated `assign-reviewers.yml` from [codeowner-coordinator#83](https://github.com/zed-industries/codeowner-coordinator/pull/83): - Switch trigger from `pull_request` to `pull_request_target` to support fork PRs and fix `author_association` misclassification bug (org members reported as `COLLABORATOR`) - Remove `author_association` filter and fork gate — reviewer assignments are inherently scoped to org team members by the GitHub Teams API - Remove `--min-association member` from script invocation - Add `SECURITY INVARIANTS` comment block documenting `pull_request_target` safety requirements - Add concurrency guard to prevent duplicate runs per PR - Add `--require-hashes` + SHA256 pin for pyyaml install ## Test plan - [ ] Verify a fork PR triggers the workflow and receives team assignment - [ ] Verify a draft→ready PR triggers correctly - [ ] Verify org member PRs continue to work Release Notes: - N/A
John D. Swanson created
2cc7d17
Fix usability issues with automatically-created git worktrees (#51775)
* [x] Display original project name as root folder in project panel, titlebar * [x] When manually creating worktrees, ensure final path component is original project name * [x] Display original project name, worktree name, and branch name in titlebar * [x] Only show main checkout in project switcher Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Max Brunsfeld and Richard Feldman created
c932aa9
agent: Fix project context on first thread (#51868)
We seemed to have a regression where the worktrees weren't showing up in the system prompt on first load. Release Notes: - N/A
Ben Brandt created
7baf5dc
Add basic undo in project panel (#47091)
- Add `project_panel::undo::UndoManager` with a bounded operation stack to track and revert project panel operations - Support undoing file and directory creation, renaming, moving, pasting and drag-and-drop operations - Revert batch operations sequentially in reverse order to handle dependencies between them - Show an error notification when one or more undo operations fail - Add "Undo" entry to the project panel context menu, disabled when there is nothing to undo - Gate the feature behind the `project-panel-undo-redo` feature flag Ref: #5039 Release Notes: - N/A --------- Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com> Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: dino <dinojoaocosta@gmail.com>
Marco Mihai Condrache , Cole Miller , and dino created
488f79a
sidebar: Improve behavior of the "view more" action (#51872)
This PR makes sure that threads running, waiting for confirmation, or with a notification remain visible even after you've collapsed the list, in case they would be naturally hidden (if the list was collapsed). Release Notes: - N/A Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Danilo Leal and Bennet Bo Fenner created
3dd2e80
Filter common git hosting providers from SSH config hosts (#51528)
Fixes https://github.com/zed-industries/zed/issues/50218 - For every `Host` block: collect its host patterns (handling continuations and filtering `!`/`*/\`), remember any `Hostname`. - When the block ends: if `Hostname` is a git provider → discard everything. - Else if `Hostname` exists → keep all host aliases. - Else → keep only the host aliases that are not git providers. Added more extensive test coverage as well to cover the above! Release Notes: - Fixed SSH host picker showing git provider domains (e.g. github.com, gitlab.com) from SSH config. --------- Co-authored-by: Nathan Sobo <nathan@zed.dev>
Sarmad Gulzar and Nathan Sobo created
7340835
Fix file rename on FUSE-based filesystems (#51779)
Fixes #51778 #### Fix - Add `EINVAL` to the list of error codes that trigger the metadata-based rename fallback in `crates/fs/src/fs.rs` - FUSE filesystems (NTFS via ntfs-3g, exFAT, etc.) return `EINVAL` when `renameat2` is called with `RENAME_NOREPLACE`, since they don't support the flag. - The existing fallback already handles `ENOSYS`, `ENOTSUP`, and `EOPNOTSUPP` for similar unsupported-operation cases. #### Video [Screencast from 2026-03-17 23-37-35.webm](https://github.com/user-attachments/assets/77e35d97-a87c-4acf-99b8-0e74df667275) Release Notes: - Fixed file and directory renaming failing in the project panel on FUSE-based filesystems (e.g. NTFS, exFAT drives on Linux).
Om Chillure created
224be87
sidebar: Improve the archive view (#51863)
- Add the ability to archive a thread from the sidebar - Add the ability to unarchive a thread from the archive view - Improve keyboard navigation within the archive view - Display project names associated with a thread in the archive view Release Notes: - N/A --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de> Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Danilo Leal , Bennet Bo Fenner , and cameron created
7b14c7b
pane: Add "Reveal in Finder" to tab context menu (#51615)
The tab context menu has "Copy Path", "Open in Terminal", and "Reveal In Project Panel" but no way to reveal the file in the system file manager. This action already exists in three other context menus (editor right-click, project panel, outline panel) but was missing from tab right-click. ## Changes Adds a platform-specific entry to the tab context menu: - **macOS:** "Reveal in Finder" - **Windows:** "Reveal in File Explorer" - **Linux:** "Reveal in File Manager" Placed after "Copy Relative Path" and before "Pin Tab". Gated behind `is_local` (including WSL with host interop) to match the project panel's behavior. Uses the existing `project.reveal_path()` infrastructure, which handles platform-specific file manager invocation and WSL path conversion. ## Prior art Every major editor has this in the tab context menu: - VS Code: "Reveal in Finder" (macOS) / "Reveal in File Explorer" (Windows) - JetBrains IDEs: Right-click tab -> "Open in" -> "Finder" - Sublime Text: Right-click tab -> "Reveal in Finder" Zed already has this in the editor body right-click menu (`Cmd-K R`), project panel (`Alt-Cmd-R`), and outline panel. The tab context menu was the only place it was missing. This contribution was developed with AI assistance (Claude Code). Release Notes: - Added "Reveal in Finder" to the tab context menu ## Screenshot  --------- Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Matt Van Horn , Matt Van Horn , and Claude Opus 4.6 (1M context) created
de4522e
title_bar: Fix share button being hidden when any modal is open (#51862)
This check was initially added in https://github.com/zed-industries/zed/pull/19885/changes but has regressed since. Making it explicit here again to stop this from happening. Release Notes: - N/A
Finn Evers created
7cf7dca
ep: Fix e2e_latency tracking (#51852)
We were always sending zero before Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Oleksiy Syvokon and Ben Kunkle created
d265b32
project_panel: Add support for pasting external files on macOS (#49367)
Part of #29026 ## Summary https://github.com/user-attachments/assets/35b4f969-1fcf-45f4-88cd-cbc27ad9696e macOS Finder places file paths on the system pasteboard using `NSFilenamesPboardType` when files are copied. Previously, the project panel only supported its own internal clipboard for copy/cut/paste operations and ignored system clipboard content entirely. This meant that copying files in Finder and pasting them in Zed's project panel did nothing. This PR adds support for reading file paths from the macOS system pasteboard, enabling a natural workflow where users can copy files in Finder (or other file managers) and paste them directly into Zed's project panel. > **Note:** Pasting files from a system file manager currently only works on macOS. The project panel changes are cross-platform, but the clipboard reading of file paths (`ExternalPaths`) is only implemented in the macOS pasteboard. Windows and Linux would need equivalent changes in their respective platform clipboard implementations to support this. Copying/cutting files from the project panel to the system clipboard as plain text works on all platforms. ### Changes **`crates/gpui/src/platform/mac/pasteboard.rs`** - Read `NSFilenamesPboardType` from the system pasteboard and surface file paths as `ClipboardEntry::ExternalPaths` - Check for file paths before plain text, since Finder puts both types on the pasteboard (without this priority, file paths would be returned as plain text strings) - Extract the string-reading logic into `read_string_from_pasteboard()` to allow reuse **`crates/project_panel/src/project_panel.rs`** - On paste, check the system clipboard for external file paths and use the existing `drop_external_files` mechanism to copy them into the project - On copy/cut, write the selected entries' absolute paths to the system clipboard so other apps can consume them - Update the "Paste" context menu item to also be enabled when the system clipboard contains file paths, not just when the internal clipboard has entries ## Test plan - [ ] Copy one or more files in Finder, paste in the project panel — files should be copied into the selected directory - [ ] Copy files within the project panel, paste — existing internal copy/paste behavior is preserved - [ ] Cut files within the project panel, paste — existing internal cut/paste behavior is preserved - [ ] Copy files in the project panel, paste in Finder or another app — paths are available as plain text - [ ] Right-click context menu shows "Paste" enabled when system clipboard has file paths - [ ] Right-click context menu shows "Paste" disabled when both internal and system clipboards are empty Release Notes: - Added support for pasting files from Finder (and other file managers) into the project panel via the system clipboard (macOS only). Copying or cutting files in the project panel now also writes their paths to the system clipboard for use in other apps. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
David and Smit Barmase created
67d7f99
Fix shared database test isolation (#51809)
All of the important changes are in [`db.rs`](https://github.com/zed-industries/zed/pull/51809/changes#diff-2f644eab943bfa58feec29256281a3d9e8d4d7784cd34783e845af8beb15b16d). Consider reading the commit log in order to review this work. The DB crate's macro and API was changed to fix flakiness observed in the MultiWorkspace tests when run locally. This flakiness was caused by a shared `static LazyLock`, that caused concurrent test runs to interact with the same underlying in-memory database. This flakiness wasn't possible on CI due to it's usage of `cargo nextest`, whose process-per-test approach masked this problem. Essentially, I've changed the `static_connection` macro to remove the static database variable and redone the internal model. Now, all database types are thin wrappers around a generic `AppDatabase`. The `AppDatabase` collects all of the individual table's migrations via the `inventory` crate, and so only runs the migrations once on startup, rather than a dozen times on startup. The new API requires a `cx` so that we can replace the database returned at runtime, rather than relying exclusively on a process-global thread-local. However, we are still using a `static LazyLock` so that we only need to take an `&App`, instead of an `&mut App`. These databases types are `Clone + Send + Sync`, so you can easily capture-and-move the database into background tasks and other places that don't have a `cx`. For tests that require database isolation, it is now possible to set their own database in init. See [`workspace::init_test`](https://github.com/zed-industries/zed/pull/51809/changes#diff-041673bbd1947a35d45945636c0055429dfc8b5985faf93f8a8a960c9ad31e28R13610), for the flakiness fix. Best part, this change should be entirely compiler driven, so the Zed agent was able to make the app-wide refactor easily. 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 --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Mikayla Maki , Anthony Eid , and Max Brunsfeld created
007aba8
gpui: Call `ack_configure` on throttled Wayland resize events (#49906)
when a resizing configure event is throttled (skipped to limit redraws to once per vblank) the xdg_surface serial was never acknowledged. the early return bypassed the ack_configure call that follows the throttle check, violating the xdg-shell protocol requirement that every configure serial be acknowledged before the next surface commit. fix by calling ack_configure before the early return so the compositor always receives the acknowledgment, dosent matter whether the resize itself is applied. Release Notes: - N/A
Albab Hasan created
092cf0b
Bump fancy-regex to v0.17.0 (#51549)
This fixes "Error compiling regex: Look-behind assertion without
constant size" when using variable-length lookbehinds in search, such as
`(?<=^(?:\s{4})*)\s{4}`.
fancy-regex 0.17.0 adds support for variable-length lookbehinds using
regex-automata's DFA reverse search commit:
https://github.com/fancy-regex/fancy-regex/commit/b58fb31
Closes #50219
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 the error message on compilation of regular expressions
containing variable length lookbehind assertions
Previously:
<img width="1582" height="1377" alt="image"
src="https://github.com/user-attachments/assets/3e275891-aef5-482e-87f0-c47b9eac3c2a"
/>
Now:
<img width="1323" height="1015" alt="image"
src="https://github.com/user-attachments/assets/8638cd08-fcd0-40f9-8749-32e6352e89b7"
/>
Thanks to @vorahardik7 for helping out with a test example and
@AmaanBilwar for suggesting a fix!
Signed-off-by: Pratik Karki <pratik@prertik.com>
Pratik Karki created
c842fb5
sidebar: Keyboard nav improvements (and vim mode) (#51856)
Cameron Mcloughlin created
fdb769c
sidebar: Fix date formatting (#51851)
Previously we were not showing days Release Notes: - N/A
Bennet Bo Fenner created
5f12c92
Remove edit prediction conflict state (#51842)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
Ben Kunkle and Zed Zippy created
062fca6
auto_update: Add better error context (#51850)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
4ee0bc3
ep: Fix prompt budget computation (#51843)
We now give some room for special tokens. Release Notes: - N/A
Oleksiy Syvokon created
84d70ce
languages: Support more JSON configuration files (#50800)
Several widely used configuration files are JSON but have no `.json` extension, such as `.babelrc` or `.eslintrc`. Editors like VS Code detect these as JSON automatically, but Zed currently treats them as plain text. This change adds common JSON config suffixes so they get proper JSON syntax highlighting. Added: - [`.babelrc`](https://babeljs.io/docs/config-files) - [`.eslintrc`](https://archive.eslint.org/docs/user-guide/configuring/configuration-files) - [`.stylelintrc`](https://stylelint.io/user-guide/configure/) - [`.swcrc`](https://github.com/swc-project/swc/pull/4236) 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 - [ ] 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: - Support more JSON configuration files
Rodrigo created
7ba5315
collab_ui: Add call diagnostics (#51816)
Release Notes: - Added call diagnostics when collaborating with other Zed users in collab. --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Co-authored-by: Piotr Osiewicz <piotr@zed.dev> Co-authored-by: Danilo Leal <danilo@zed.dev>
Jakub Konka , Piotr Osiewicz , Piotr Osiewicz , and Danilo Leal created
00bee45
git_ui: Add starts_open setting to git panel (#51601)
Fixes #51542
Adds a `git_panel.starts_open` setting for parity with `project_panel`.
When set to `true`, the git panel opens automatically in new workspaces
that don't have saved panel state.
The default is `false`, matching current behavior (non-breaking).
### Usage
```json
{
"git_panel": {
"starts_open": true
}
}
```
### Implementation
Follows the same pattern as `project_panel.starts_open`:
1. `GitPanelSettingsContent` - added `starts_open: Option<bool>` to the
settings schema
2. `GitPanelSettings` - added `starts_open: bool` field
3. `GitPanel` Panel impl - overrides `starts_open()` to read from
settings
Release Notes:
- Added `git_panel.starts_open` setting to control whether the git panel
opens automatically in new workspaces (default: false)
---------
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Matt Van Horn , Matt Van Horn , and Claude Opus 4.6 (1M context) created
96a9397
sidebar: Refine how we display status in the thread item (#51840)
Refine the decorated icon as well as adding tooltips for extra clarity. Release Notes: - N/A
Danilo Leal created
4642413
recent_projects: Simplify folder addition affordances (#51841)
The recent projects had two plus buttons inside of it which weren't immediately clear what they did. Those buttons would add a project to the current workspace, which turned out to be _not_ what people expected it would do. Because of this, I removed one of them and swapped the icon of the other, to hopefully make the distinction more clear. <img width="500" height="484" alt="Screenshot 2026-03-18 at 11 59@2x" src="https://github.com/user-attachments/assets/341769fb-771e-450b-8814-a641bd8b63d5" /> Release Notes: - N/A
Danilo Leal created
a245660
gpui_linux: Fix "No Apps Available" dialog when opening URIs on Linux/Wayland (#49752)
Closes #48169 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: - Fixed "No Apps Available" dialog when opening URIs on Linux/Wayland Swaps the order of `open_uri_internal` function: try xdg-open first, and only fall back to the portal if every candidate command fails. Build Tests: I tested the build on Arch Linux & MacOS Tahoe and there were no issues. No error logs when opening repo links.
Taha created
090ef79
ep: Add two new prompt formats (#51836)
V0316 differences from V0306: - Use `<|marker_N|><|marker_N|>` instead of `NO_EDITS` - All intermediate markers are now emitted (should be more friendly to speculative decoding) - No newline padding around marker tags - No git conflict markers; we now use SeedCoder's EOS tag instead V0317 is like V0316, but marker numbers are relative to the cursor block (`<|marker-2|> ... -1 ... -0 ... +1 ... <|marker+2|>`) Release Notes: - N/A
Oleksiy Syvokon created
7b9df57
agent_ui: Clear original agent prompt when creating a new worktree (#51839)
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
Anthony Eid created
eb10b8d
Remove `language-extension-version` script (#51838)
This PR removes the `language-extension-version` script and cleans up some of the related documentation around updating extensions, as this is no longer needed and at this point fully automated. Release Notes: - N/A
Finn Evers created
f823601
Bump Zed to v0.230 (#51837)
Release Notes: - N/A
Joseph T. Lyons created
f6fd673
language_models: Apply JSON schema subset transform to xAI (#51835)
The conversations on Grok 4 were failing right away on the first message in a conversation when using Zed provided model directly, but not the xAI API directly. The reason we were seeing this is that when sending the JSON schemas for built-in tools to the cloud API, we didn't use the transform we use for xAI in a BYOK context. The xAI API doesn't support the full JSON schema spec, and specifically for the spawn_agent tool, we were generating a `oneOf` type for a field. Applying that transformation in the cloud case too fixes the issue. Release Notes: - Fixed broken (failing on first message) xAI models over the Zed provider on profiles using the spawn_agent tool, including the default Ask and Write profiles. Co-authored-by: Neel <neel@zed.dev>
Tom Houlé and Neel created
c44f13c
git_ui: Improve delete branch tests to verify underlying repository state (#51825)
While fixing the tests in the previous PR (#48338), I noticed that the `delete_branch` tests only verified the UI state changes rather than the actual state of the underlying repository. Currently, if `delete_branch` were a no-op that returned Ok(), the tests would still pass incorrectly. This PR addresses that gap by ensuring the branch is actually removed from the repository. |Before|After| |--|--| |<img width="3476" height="2564" alt="图片" src="https://github.com/user-attachments/assets/f5c4c5c4-64fe-4074-9fff-fb166d160d77" />|<img width="3476" height="2564" alt="CleanShot 2026-03-18 at 17 51 36@2x" src="https://github.com/user-attachments/assets/47419d37-5051-4139-969e-65a1347bf555" />| 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 *or* Added/Fixed/Improved ...
ᴀᴍᴛᴏᴀᴇʀ created
c7870cb
editor: Add align selections action (#44769)
Closes #17090 Hello! This is a feature that I really wanted, so I've created an implementation of it. Hope u guys like it. It was alto mentioned at [this discussion](https://github.com/zed-industries/zed/discussions/30473) The use cases were based on the [vscode extension](https://marketplace.visualstudio.com/items?itemName=yo1dog.cursor-align) (only spaces case was implemented) - The algorithm is O(n + m × 2k), where: - n = total cursors (for initial analysis, to understand how many alignments will be performed) - m = number of alignment columns - k = number of alignment rows (first time to get the most-right occurrence, the next one to create the `Vec` of edits) Release Notes: - Added `editor: align selections` command  <br> Thank you for creating zed! --------- Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Tiago Lobão and Kirill Bulatov created
be3a5e2
open_ai: Support structured OpenAI tool output content (#51832)
Allow function call outputs to carry either plain text or a list of input content items, so image tool results are serialized as image content instead of a raw base64 string. Release Notes: - N/A
Ben Brandt created
eba7cea
sidebar: Load archived threads in the correct window (#51831)
Make sure we don't create a duplicate workspace if it is already open in another window. Release Notes: - N/A --------- Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Ben Brandt and cameron created
3af7b64
vim: Fix visual block Shift-I jumping to original cursor after Ctrl-D scroll (#50822)
Ensure that the `vim::visual::Vim::visual_block_motion` method is called when `scroll_editor` is called while in Visual Block mode. This fixes an issue where, after getting into `Visual Block` mode, if the user used `ctrl-d` or `ctrl-u` to scroll half of the page, the wrong selection would be made and, if `shift-i` was used to start inserting at the start of the line, a single cursor would be placed at the cursor position where the selection was started, instead of one cursor per each of the selected lines. These changes ensure that we now match Neovim's behavior for the same flow. --------- Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com> Co-authored-by: dino <dinojoaocosta@gmail.com>
Xiaobo Liu and dino created
30d3467
extension_ci: Switch back to upstream action (#51829)
This switches the action back to the upstream one where the changes were merged (thanks @\huacnlee for the quick action) Aside from that, it does some minor fixes: It adds the bumper as an assignee on the extensions PR and also ensures we do not try to bump here in the repo for the test extensions. Release Notes: - N/A
Finn Evers created
4d2d076
agent: Collapsed project thread UI indicators (#51824)
Cameron Mcloughlin created