Commit log

534f778 Bump to 0.222.3 for @rtfeldman

Zed Zippy created

7d57205 Remove VS Code references from Copilot integration (#48528) (cherry-pick to stable) (#48531)

Click to expand commit body
Cherry-pick of #48528 to stable

----
Release Notes:

- N/A

Co-authored-by: Mikayla Maki <mikayla@zed.dev>

zed-zippy[bot] and Mikayla Maki created

8220723 Add Claude Opus 4.6 and 1M context window model variants (#48508) (cherry-pick to stable) (#48511)

Click to expand commit body
Cherry-pick of #48508 to stable

----
<img width="588" height="485" alt="Screenshot 2026-02-05 at 1 29 10 PM"

src="https://github.com/user-attachments/assets/f3d36c8b-b371-4226-af60-bdc2c6b34009"
/>
<img width="586" height="468" alt="Screenshot 2026-02-05 at 1 30 15 PM"

src="https://github.com/user-attachments/assets/878e91ad-948c-4b35-a37b-f5a8db7e0b3f"
/>


This adds Claude Opus 4.6 as a new Anthropic model, along with 1M
context window variants for both Opus 4.6 and Sonnet 4.5.

## Opus 4.6

Adds `ClaudeOpus4_6` and `ClaudeOpus4_6Thinking` with the same
properties as other Claude 4+ models (200k context, 8192 max output
tokens, fine-grained tool streaming beta header).

## 1M context variants

Adds 1M context window variants for Sonnet 4.5 and Opus 4.6. These are
identical to their base models except:
- Context window is 1,000,000 tokens instead of 200,000
- They send the `context-1m-2025-08-07` beta header

Release Notes:

- Added Claude Opus 4.6
- Now Claude Opus 4.6 and Sonnet 4.5 BYOK models support variations that
have context windows of 1 million tokens (and have different pricing)

Co-authored-by: Richard Feldman <richard@zed.dev>

zed-zippy[bot] and Richard Feldman created

0b30666 Remove cmpl- prefix validation from Mercury feedback (#48410) (cherry-pick to stable) (#48422)

Click to expand commit body
Cherry-pick of #48410 to stable

----
Release Notes:

- N/A

Co-authored-by: Kenan Hasanaliyev <claserken@gmail.com>

zed-zippy[bot] and Kenan Hasanaliyev created

7f628d6 Add telemetry for EP Menu Actions (#48229) (cherry-pick to stable) (#48407)

Click to expand commit body
Cherry-pick of #48229 to stable

----
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>

Co-authored-by: Katie Geer <katie@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>

zed-zippy[bot] , Katie Geer , and Ben Kunkle created

687b553 Add telemetry for toolbar menu open events (#48225)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Katie Geer , Ben Kunkle , and Zed Zippy created

14835b0 edit_prediction: Add Mercury accept/reject tracking (#48306) (cherry-pick to stable) (#48403)

Click to expand commit body
Cherry-pick of #48306 to stable

----
### Summary
Adds accept/reject tracking for Mercury edit predictions.

### Changes
Sends events to https://api-feedback.inceptionlabs.ai/feedback when:

Accept — user presses Tab
Reject — user presses Escape
Ignore — prediction dismissed implicitly (typing, cursor move, etc.)

Added `discard_explicit` method to the delegate trait to distinguish
explicit vs implicit dismissal. Updated `reject_prediction` and
`reject_current_prediction` methods with an `explicit` bool parameter to
thread this through to the Mercury feedback logic. Other providers are
unaffected—they use the default implementation.

Feedback is fire-and-forget in a background thread, only sent for
predictions that were shown.

### Data Collected
- Request ID (returned from Inception API)
- User action (either accept/reject/ignore)
- Client Zed version (to track updates made to Zed client which could
potentially affect nextedit implementation)


Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>

Co-authored-by: Kenan Hasanaliyev <claserken@gmail.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>

zed-zippy[bot] , Kenan Hasanaliyev , and Ben Kunkle created

5baf534 v0.222.x stable

Joseph T. Lyons created

f54f9fa Fix scroll in EP provider sub page when setting migration banner is showing (#48372) (cherry-pick to preview) (#48374)

Click to expand commit body
Cherry-pick of #48372 to preview

----
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Co-authored-by: Ben Kunkle <ben@zed.dev>

zed-zippy[bot] and Ben Kunkle created

f0d2df0 ep: Lower max_output_tokens default for Ollama (#48370) (cherry-pick to preview) (#48373)

Click to expand commit body
Cherry-pick of #48370 to preview

----
Zeta 1 should not be configurable, not by this setting.

Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>

Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>

zed-zippy[bot] , Oleksiy Syvokon , and Ben Kunkle created

cc8252d Improve icon selection for edit prediction providers (#47911)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

versecafe and Danilo Leal created

9fe97ad Remove sweep and mercury feature flags (#48329)

Click to expand commit body
Release Notes:

- N/A

Max Brunsfeld created

abc1550 Show provider configuration in EP menu when signed out (#48325)

Click to expand commit body
This way, you can configure external EP providers from the EP menu.

Release Notes:

- N/A

Max Brunsfeld created

70730b1 Eagerly connect to Ollama (#48318)

Click to expand commit body
Previously, Ollama would not show up as available until you opened some
UI that prompted connecting to Ollama, like the agent panel or the edit
prediction settings.

Release Notes:

- N/A

Max Brunsfeld created

f325087 Add initial support for edit predictions via Ollama (#48233)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/15968

Release Notes:

- Added the ability to use Ollama as an edit prediction provider

---------

Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>

Max Brunsfeld , Oleksiy Syvokon , and Ben Kunkle created

f45028a Re-add deleted comment in `default.json` (#48279) (cherry-pick to preview) (#48283)

Click to expand commit body
Cherry-pick of #48279 to preview

----
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Co-authored-by: Ben Kunkle <ben@zed.dev>

zed-zippy[bot] and Ben Kunkle created

08d3ea2 Make mercury and sweep non experimental (#48227)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

ce3b1b5 Migrate `features.edit_prediction_provider` to `edit_predictions.provider` (#48224) (cherry-pick to preview) (#48232)

Click to expand commit body
Cherry-pick of #48224 to preview

----
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Co-authored-by: Ben Kunkle <ben@zed.dev>

zed-zippy[bot] and Ben Kunkle created

4b8758d Add `sweep_ai` privacy mode setting (#48220) (cherry-pick to preview) (#48221)

Click to expand commit body
Cherry-pick of #48220 to preview

----
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Co-authored-by: Ben Kunkle <ben@zed.dev>

zed-zippy[bot] and Ben Kunkle created

68737c3 settings_ui: Make it so settings links open sub pages (#48212) (cherry-pick to preview) (#48219)

Click to expand commit body
Cherry-pick of #48212 to preview

----
Closes #ISSUE

Release Notes:

- Fixed an issue where opening a link to a settings item that involved a
sub page would not open the sub page

Co-authored-by: Ben Kunkle <ben@zed.dev>

zed-zippy[bot] and Ben Kunkle created

680b9d3 edit prediction: Drop project state after a project goes away (#48191) (cherry-pick to preview) (#48206)

Click to expand commit body
Cherry-pick of #48191 to preview

----
Closes #48097

Release Notes:

- Fixed Copilot instances not being cleared up after their window is
closed.
- Copilot edit prediction provider now respects `disable_ai` setting.

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

zed-zippy[bot] and Piotr Osiewicz created

b1735ea agent_ui: Fix panic when inserting context prefix with multi-byte characters (#48179) (cherry-pick to preview) (#48180)

Click to expand commit body
Cherry-pick of #48179 to preview

----
Closes ZED-4R9

Introduced in https://github.com/zed-industries/zed/pull/47768

The `insert_context_prefix` function was using byte offsets to check if
the prefix already exists at the cursor. This caused a panic with
multi-byte characters like emojis. Now uses character counts instead.

Release Notes:

- Fixed a crash in the Agent Panel when inserting context mentions with
emojis in the message editor.

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

zed-zippy[bot] and Smit Barmase created

27d015a Bump to 0.222.2 for @Anthony-Eid

Zed Zippy created

70e275b zed 0.222.1

Anthony Eid created

7dd3c45 copilot: Fix references to uninitialized CopilotAuth global (#47954) (cherry-pick to preview) (#47966)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
Release Notes:

- N/A *or* Added/Fixed/Improved ...

Lukas Wirth created

bcd78af git_ui: Align repo and branch pickers (#47752)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
`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)

Click to expand commit body
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)

Click to expand commit body
## 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)

Click to expand commit body
Debugging on `main` is so much fun :/

Release Notes:

- N/A

Lena created

0e1802a acp: Add agent server extension deprecation banner (#47817)

Click to expand commit body
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)

Click to expand commit body
- **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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
- 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