70e275b
zed 0.222.1
Anthony Eid created
70e275b
zed 0.222.1
Anthony Eid created
7dd3c45
copilot: Fix references to uninitialized CopilotAuth global (#47954) (cherry-pick to preview) (#47966)
Cherry-pick of #47954 to preview ---- Closes: #46593 #32635 #47924 Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Cole Miller <cole@zed.dev> Release Notes: - Fixed issues with signing into Copilot via the Settings UI --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com> Co-authored-by: Anthony Eid <anthony@zed.dev> Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com> Co-authored-by: Anthony Eid <anthony@zed.dev>
zed-zippy[bot] , Piotr Osiewicz , Anthony Eid , Cole Miller , Zed Zippy , and Anthony Eid created
953b22c
image_viewer: Compute better initial zoom level (#47886) (cherry-pick to preview) (#47904)
Cherry-pick of #47886 to preview ---- Closes Josephs note about that. Release Notes: - Preview only: Fixed an issue where images in the image viewer would not fit the viewer initially. Co-authored-by: Finn Evers <finn@zed.dev>
zed-zippy[bot] and Finn Evers created
586d953
client: Fix ACP registry blog post URL (#47881) (cherry-pick to preview) (#47892)
Cherry-pick of #47881 to preview ---- Closes #47882 Release Notes: - Fixed a typo in the link to the ACP registry URL blog post --------- Co-authored-by: MrSubidubi <finn@zed.dev> Co-authored-by: O. Bennett <illogic-al@users.noreply.github.com> Co-authored-by: MrSubidubi <finn@zed.dev>
zed-zippy[bot] , O. Bennett , and MrSubidubi created
58c49f1
git: Hide toggle split diff button behind flag (cherry-pick #47878) (#47884)
Release Notes: - N/A Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Cole Miller and Jakub Konka created
45ffc50
cli: Add GitHub token to `generate_message` step (#47876)
Release Notes: - N/A
Finn Evers created
b160041
v0.222.x preview
Joseph T. Lyons created
03d8e9a
editor: Add select to {start,end} of larger syntax node commands (#47571)
I'm used to having the Emacs mark-sexp command, which selects/extends
the selection to the start or end of a sexp/larger syntax node, so when
I found out the `move to {start,end} of larger syntax node` commands
were added, these seemed like a natural addition; especially since most
other commands in Zed seem to have movement and selection pairs, but
those didn't really feel like they did.
I did a really *lot* of tests (brainstormed ideas with GLM 4.7, then
wrote the actual test case strings myself, then had it convert them to
Rust, then made sure the tests made sense and passed), I'm not sure if
it's too much or too little, but I looked at the PR that added the `move
to` versions of these commands and it was also +~550 lines, so this
seemed in the ballpark 😅
I factored out the core syntax node finding logic from those commands
into a common function, so that both sets of commands could use it, just
with different code for modifying the editor state wrapped around — mine
just moves each selection's head, instead of totally resetting it.
Release Notes:
- Added commands for extending selections to syntax node boundaries.
i.e. `editor: select to start of larger syntax node` and `editor: select
to end of larger syntax node`.
Alexis Purslane created
eb14c9d
Use `SharedString::new_static` for string literals (#47865)
Basically just replaced `SharedString::new("` with
`SharedShring::new_static("` which removes the allocation to `Arc<str>`.
Unfortunately this can't be enforced at compile time without trait
specialization which is only available on nightly. You could assert that
`TypeId`'s differ, but `TypeId` only exists at runtime.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
tidely created
7c6f711
git_graph: Add feature graph (#47861)
We need another work of polish before end users are able to use the git graph. Release Notes: - N/A
Anthony Eid created
ec4a9cb
gpui: Remove some unnecessay heap allocations and memcpies (#47858)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
bcd78af
git_ui: Align repo and branch pickers (#47752)
When working in a workspace with multiple repositories, the git panel provides a repository picker to switch between them. However, there was no visual indication of which repositories have uncommitted changes: users had to either select each repository individually or check the project panel where modified directories are highlighted. This change adds git status icons to the repository picker, allowing users to see at a glance which repositories contain changes (modified, added, deleted, or conflicted files). The icons use the same visual language already established for file status throughout the git panel. Additionally, the repository picker now matches the branch picker's styling for visual consistency: - Added "Repositories" header - Aligned popover width and positioning - Added scrollbar - Added check icon next to currently selected repo - Added selected branch under repo list item - Sort by display name is now case insensitive Before: <img width="1200" height="815" alt="Screenshot 2026-01-27 at 11 43 55" src="https://github.com/user-attachments/assets/12c1008b-4724-44bf-80c9-e9ad97755090" /> After: <img width="1761" height="1196" alt="Screenshot 2026-01-27 at 14 07 52" src="https://github.com/user-attachments/assets/cd778f42-ade0-4da0-9732-2d8631c04124" /> Branch picker for style reference: <img width="1200" height="815" alt="Screenshot 2026-01-27 at 11 44 03" src="https://github.com/user-attachments/assets/369b0d29-8fed-4293-98c2-52c2d780fe9a" /> Release Notes: - Git: Improved the project picker in the panel by also displaying the GIt status icon on them, to clearly indicate which repos have changes. --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Riccardo Strina and Danilo Leal created
7cfa0fb
extension: Ensure that compiled extension provides at least one feature (#47715)
This PR adds a check during extension compilation to ensure that every compiled extension provides at least one feature, as otherwise, the extension is useless to have. With this in, compiling an extension that does not provide anything will fail. Release Notes: - N/A
Finn Evers created
e29522a
acp: Add upsell banner for built-in agents in registry page (#47853)
This PR adds the upsell banner for built-in agents in the ACP registry page, meaning: if you search for Claude Code, Codex, or Gemini, we'll display a banner communicating they're already available in Zed. This may change one day, though, whenever we rely on their registry implementation. I'm also removing the beta chip from the page here. Release Notes: - N/A
Danilo Leal created
9bfb900
remote_server: Cleanup old server binaries on wsl (#47839)
Closes https://github.com/zed-industries/zed/issues/44736 Release Notes: - Fixed remote server binaries accumulating on wsl over time
Lukas Wirth created
9622179
agent_servers: Inherit codex api key environment vars for remote (#47850)
Closes https://github.com/zed-industries/zed/issues/46786 Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
1c7fa87
markdown: Improve double-click word selection using CharClassifier (#47844)
Previously, double-click word selection in markdown used simple space-based boundaries, so `foo.bar()` would be selected as a single word. Now we use `CharClassifier` which properly handles word boundaries: - **Regular markdown text**: Punctuation (`.`, `(`, `)`, etc.) now acts as word boundaries. Double-clicking on `foo.bar()` selects just `foo` or `bar`. - **Code blocks**: Uses the language's word characters. For example, in JavaScript, `$foo` and `#bar` are selected as whole words since `$` and `#` are configured as word characters. Release Notes: - Improved double-click word selection in Agent Panel to respect punctuation and language-specific word characters.
Smit Barmase created
9249532
languages: Add first-line C++ language detection for extensionless libcpp headers (#47443)
Several libcpp headers lack file extensions. Added a first line pattern for recognition. https://github.com/llvm/llvm-project/blob/main/libcxx/include/random)](https://github.com/llvm/llvm-project/blob/main/libcxx/include/random Before: <img width="1229" height="512" alt="before" src="https://github.com/user-attachments/assets/fe62f904-73c9-494e-adf5-e5f259fab611" /> After: <img width="1229" height="512" alt="after" src="https://github.com/user-attachments/assets/a68b4242-61b7-4dba-a12e-9424be4b06dc" /> Release Notes: - Added first-line C++ language detection for extensionless libcpp headers.
ozacod created
2dd4897
lsp: Exclude dynamic settings from LanguageServerSeed identity (#47376)
`LanguageServerSeed` is used as a key to identify language servers. Previously, it included the entire `LspSettings`, which meant that changing `lsp.<server>.settings` (dynamic configuration) would cause the server to restart unnecessarily. Dynamic settings can be updated via LSP's `workspace/didChangeConfiguration` notification without requiring a server restart. Only `binary` and `initialization_options` should be part of the server identity, as changes to these genuinely require restarting the server. This is a follow-up fix to #35270 which introduced `LanguageServerSeed` but inadvertently included dynamic settings in the server identity (although I remember that this dynamic settings reflection stopped working pretty recently, so there might be other commits besides #35270 that changed the behavior of `LanguageServerSeed`) Closes #ISSUE Release Notes: - Fixed language servers unnecessarily restarting when changing `lsp.<server>.settings` configuration. Dynamic settings are now properly updated via `workspace/didChangeConfiguration` without requiring a server restart.
Shuhei Kadowaki created
e2f54a1
languages: Add highlighting for document comments in C/C++ (#47556)
Before: <img width="557" height="668" alt="before" src="https://github.com/user-attachments/assets/5accf661-94cd-4933-8771-98f813199c39" /> After: <img width="581" height="668" alt="after" src="https://github.com/user-attachments/assets/251101ca-6e12-4dc3-b4dd-41b2438f9bd7" /> Release Notes: - Added highlighting for document comments in C/C++
ozacod created
3a1f477
docs: Add missing syntax highlighting captures (#47791)
## Summary Adds three syntax highlighting captures that are used across multiple language definitions but were missing from the documentation table in `docs/src/extensions/languages.md`. ## Added Captures | Capture | Used In | |---------|---------| | `@constant.builtin` | C, Go, C++, YAML, TSX | | `@type.builtin` | C++, Python, Rust, JavaScript, TSX | | `@variable.parameter` | TypeScript, JavaScript, Python, Rust, TSX, Diff | ## Context While working on a [PR to add named argument highlighting to the PHP extension](https://github.com/zed-extensions/php/pull/95), I initially used `@label` because the documentation didn't list `@variable.parameter`. A reviewer pointed out that `@variable.parameter` is actually supported and preferred - the docs were just outdated. This PR fixes that documentation gap. Release Notes: - N/A
Alfredo Menezes created
3339c2d
Fix the duplicate bot (move timeout, perms) (#47840)
Debugging on `main` is so much fun :/ Release Notes: - N/A
Lena created
0e1802a
acp: Add agent server extension deprecation banner (#47817)
This PR adds a banner to communicate the deprecation of agent server extensions in favor of the ACP registry: <img width="600" height="1986" alt="Screenshot 2026-01-27 at 8 37@2x" src="https://github.com/user-attachments/assets/8c1b658f-d170-4009-a93b-336b785f4be9" /> Release Notes: - N/A
Danilo Leal created
ade8749
Fix typing emoji (#47835)
- **Revert "ui: Dismiss context menus when window loses focus (#46866)"** - **Revert "Preserve and restore focus across window activation cycles (#47044)"** Closes #ISSUE Release Notes: - (preview only) Fixed typing emoji using the macOS system palette (cmd-ctrl-space)
Conrad Irwin created
80f1cc0
project_panel: Add `bold_folder_labels` setting (#47631)
This setting brings Zed in parity with Sublime's `bold_folder_labels`. The settings does just that, it makes directory labels bold. This setting is particularly useful for those who turn icons off, but do need a visual queue (besides the chevron) to quickly tell apart files and folders. Note: This PR depends on https://github.com/zed-industries/zed/pull/47629. Otherwise, the setting will appear to have no uneffect (unless you're using a custom UI font). ZedSans has "bold" today, but that's too thick for the project panel. <img width="2282" height="1545" alt="zed-project-panel" src="https://github.com/user-attachments/assets/63ccacc0-c00a-48b2-8e70-923aa6717956" /> Release Notes: - Added `project_panel.bold_folder_labels` to show folder names with bold text in the project panel (defaults to `false`).
Andres Suarez created
e752ec1
Add item for opening Markdown/SVG files in preview tab in right-click menu (#47821)
Following user feedback, this should help making the Markdown Preview more discoverable. | Buffer Right-click | Tab Right-click | |--------|--------| | <img width="2474" height="1824" alt="Screenshot 2026-01-27 at 10 16@2x" src="https://github.com/user-attachments/assets/251149e9-89c6-4d11-aed0-872669939cfb" /> | <img width="2464" height="1808" alt="Screenshot 2026-01-27 at 10 16 2@2x" src="https://github.com/user-attachments/assets/359a221b-2141-45b1-98a9-d9c77b601c0b" /> | Release Notes: - Workspace: Added a menu item in the buffer and tab right-click menu for opening Markdown and SVG files in the preview tab.
Danilo Leal created
17d34db
Fix issues with Windows SSH support (#47822)
- Remove the newlines in the unzip command string, which made it not work. - Fix spawning the terminal and tasks. Unfortunately, the Windows OpenSSH server has limitations that require rather ugly workarounds. Release Notes: - N/A
John Tur created
06b5ec4
ep: Diagnostics as `retrieval_chunks` for sweep ep (#47441)
Release Notes: - N/A
versecafe created
cedfc7e
zeta2: Split out last edit in history (#47812)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
9079f97
ep_cli: Ignore common subsequences for more intuitive reversal metric values (#47818)
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
64df7f2
ci: Enable namespace caching for clippy on Mac (#47819)
Release Notes: - N/A
Piotr Osiewicz created
b9c5665
Disable opening dev container from within a remote project (#47816)
Closes #46320 Release Notes: - Improves error messaging to guide user away from opening a dev container from within a remote project
KyleBarton created
344ee9f
zeta2: Improve format prompt budgeting (#47808)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Max <max@zed.dev>
Ben Kunkle and Max created
4ea2c09
Use suggested name for `"use_system_path_prompts": false` dialogue when creating new files (#47802)
<img width="1419" height="266" alt="image" src="https://github.com/user-attachments/assets/059ee9e2-e102-4fc6-acba-d66ae0292203" /> Release Notes: - N/A
Kirill Bulatov created
87d41c1
Revert "fs: Replace MacWatcher with notify::FsEventWatcher" (#47799)
Reverts zed-industries/zed#47322. I'm going to remerge this tomorrow after releases so we get a full week in nightly to catch any bugs
Anthony Eid created
b1f9ca9
fs: Replace MacWatcher with notify::FsEventWatcher (#47322)
Closes #47064 Closes #20806 The previous implementation used Zed's custom fsevent crate, which spawned a dedicated thread for each watched path. On large projects, this could result in 100+ threads just for filesystem watching. This PR removes the `fsevent` crate and switches to using `notify's` FsEventWatcher directly. The notify implementation maintains a single FSEvents stream that watches all paths on one thread. When paths are added or removed, the stream is stopped, the path list is updated, and the stream is restarted. Ref: https://github.com/notify-rs/notify/blob/main/notify/src/fsevent.rs As a result, Zed now uses one thread for filesystem watching regardless of how many paths are watched. Release Notes: - On macOS, Zed now uses significantly fewer resources when watching filesystem changes --------- Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com> Co-authored-by: Anthony Eid <anthony@zed.dev>
Marco Mihai Condrache and Anthony Eid created
4ffe748
agent_ui: Fix inline assistant line height (#47772)
This makes the inline assistant editor use the line height value configured in the settings, and fixes cut-off button creases: | Before | After | |--------|--------| | <img width="656" height="276" alt="Screenshot 2026-01-27 at 11 55@2x" src="https://github.com/user-attachments/assets/fbb19e54-6663-4f7e-b706-b012fbfa2c99" /> | <img width="656" height="274" alt="Screenshot 2026-01-27 at 11 54@2x" src="https://github.com/user-attachments/assets/4577b752-3e18-45c7-9657-02919047f8ba" /> | Release Notes: - Agent: Fixed cut-off mention creases in the inline assistant.
Danilo Leal created
37b8f66
agent_ui: Add a menu for inserting context (#47768)
This PR swaps the @ icon button in the message editor for a + one, which opens a dropdown that displays context options you can add to the agent. Aside from removing one step if you're wanting to add context first with the mouse (in comparison to just inserting @ in the message editor), this menu will also house skills you've created, whenever we get to support to that. It also works to surface images and selections in a bit more visible way as context options. So, effectivelly, this is a bit of foundation work for further features to come. Here's what it looks like: <img width="500" height="586" alt="Screenshot 2026-01-27 at 11 38@2x" src="https://github.com/user-attachments/assets/551686ba-4629-4317-9177-1e942512a23c" /> Note that all the options you see in the menu should also be available through simply typing @ in the message editor. Release Notes: - Agent: Added a menu for inserting context more easily with the mouse in the agent panel.
Danilo Leal created
40468ed
gpui: Add `min_size` and `max_size` style methods (#47775)
The same way you can use `size` when width and height have the same value, it should also be possible to write `min_size` and `max_size`. This PR adds these two methods, which are also supported in Tailwind (but not documented in v4, surprisingly!). Release Notes: - N/A
Danilo Leal created
681fee2
agent_ui: Improve image preview on mention hover (#47781)
This PR improves the hover tooltip container for displaying a preview of the mentioned image in the agent panel. <img width="600" height="414" alt="Screenshot 2026-01-27 at 1 03 2@2x" src="https://github.com/user-attachments/assets/f5a6f160-6abf-4c3c-8375-4613f4948360" /> Release Notes: - N/A
Danilo Leal created
69d408b
acp: Improve the ACP registry UI (#47788)
This PR adds some UI improvements to the ACP registry UI, already including the URL for the soon-to-be-released blog post. I'm also renaming the action to open the page from `zed: agent registry` to `zed: acp registry`. Release Notes: - N/A
Danilo Leal created
797ad8c
Fix language injections sticking after language comment removed (#46134)
Closes #46104
Release Notes:
- Fixed language injections sticking after language comment removed
---
This is working well for the Python SQL comments

```python
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
# sql
cmd = "SELECT col1, col2 FROM tbl"
df = spark.sql( # sql
"""
WITH cte AS (
SELECT col1, col2, COUNT(*) AS n
FROM tbl
GROUP BY ALL
)
SELECT * FROM cte
"""
)
```
And go comments

```go
package main
func test() {
var _ = /* sql */ `SELECT id, name FROM products`
var _ = /* sql */ "SELECT id, name FROM products"
var _ = /* sql */ `SELECT id, name FROM products`
var _ = /* sql*/ "SELECT id, name FROM products"
}
```
Note: `f04b252dd9` was a simpler implementation that worked for
non-inline comments in Python, but produced the following Go behavior

---------
Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
Jeff Brennan and Joseph T. Lyons created
a9fdd07
cloud_api_types: Rework `Plan` type (#47784)
This PR reworks the `Plan` type, now that we don't need to be concerned about the legacy plan versions. We've also made the deserialization layer more robust, which should make it easier to add new plan variants in the future without needing to go through this same song and dance. Release Notes: - N/A
Marshall Bowers created
07e675d
zeta2: Remove `experimental_edit_prediction_context_retrieval` setting (#47783)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
41ce23f
vim: Add `gdefault` setting to set `/g` as a default substitution flag (#47664)
Add support for Vim's `gdefault` option which makes the `:substitute` command replace all matches in a line by default, instead of just the first match. When enabled, the `/g` flag inverts this behavior. - Add `vim.gdefault` setting - Add `:set gdefault`, `:set nogdefault` (and short forms `:set gd`, `:set nogd`) - Fix handling of multiple `/g` flags so that each one inverts the one before Closes #36209 Release Notes: - vim: Add `vim.gdefault` setting to make `/g` (replace all matches in a line) the default for substitutions, along with `:set gdefault` and `:set nogdefault` commands (short forms: `gd`, `nogd`) --------- Co-authored-by: dino <dinojoaocosta@gmail.com>
Ran Benita and dino created
e77c528
Update notify dependency version to include the flag watch root fix (#47782)
This is in preparation of merging https://github.com/zed-industries/zed/pull/47322, because our MacWatcher implementation was able to watch root directories, and I wanted to maintain that behavior to decrease the chance of any bugs occurring from a merge Note: Release candidate 9 for Notify was created two days ago which means that a new version is coming out soon. We should update to v9 once it's released to include bug fixes from upstream. Release Notes: - N/A
Anthony Eid created
cc1d3af
Use faster brotli compression for sweep requests (#47776)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
26381fe
More permissions to GitHub duplicates bot (#47780)
The claude code action insists on needing `id-token: write` despite us using `github_token`, so maybe I misread the [FAQ](https://github.com/anthropics/claude-code-action/blob/main/docs/faq.md#why-am-i-getting-oidc-authentication-errors) earlier. Pinning the sha of the currently-used version of the action for safety's sake. Release Notes: - N/A
Lena created
4723dbe
cloud_llm_client: Move `Plan` type into `cloud_api_types` (#47778)
This PR moves the `Plan` type out of `cloud_llm_client` and into `cloud_api_types`. Release Notes: - N/A
Marshall Bowers created
73bb119
Use semibold (#47725)
New on the left, old on the right: <img width="1612" height="1047" alt="Screenshot 2026-01-26 at 20 31 04" src="https://github.com/user-attachments/assets/3e0d01b6-05e9-4c9c-8c15-6c525ce9fa9f" /> <img width="1604" height="915" alt="Screenshot 2026-01-26 at 20 30 49" src="https://github.com/user-attachments/assets/77d0f9e0-778b-45df-a8e1-ade63ee9e798" /> Release Notes: - Bold UI text will now render using Plex SemiBold instead of Bold.
Conrad Irwin created