Commit log

9eb1ff2 acp thread view: Always use editors for user messages (#36256)

Click to expand commit body
This means the cursor will be at the position you clicked:


https://github.com/user-attachments/assets/0693950d-7513-4d90-88e2-55817df7213a


Release Notes:

- N/A

Agus Zubiaga created

239e479 collab: Remove Stripe code (#36275)

Click to expand commit body
This PR removes the code for integrating with Stripe from Collab.

All of these concerns are now handled by Cloud.

Release Notes:

- N/A

Marshall Bowers created

3e0a755 Remove some redundant entity clones (#36274)

Click to expand commit body
`cx.entity()` already returns an owned entity, so there is no need for
these clones.

Release Notes:

- N/A

Finn Evers created

7199c73 proto: Remove `AcceptTermsOfService` message (#36272)

Click to expand commit body
This PR removes the `AcceptTermsOfService` RPC message.

We're no longer using the message after
https://github.com/zed-industries/zed/pull/36255.

Release Notes:

- N/A

Marshall Bowers created

65f64aa search: Fix recently introduced issues with the search bars (#36271)

Click to expand commit body
Follow-up to https://github.com/zed-industries/zed/pull/36233

The above PR simplified the handling but introduced some bugs: The
replace buttons were no longer clickable, some buttons also lost their
toggle states, some buttons shared their element id and, lastly, some
buttons were clickable but would not trigger the right action. This PR
fixes all that.

Release Notes:

- N/A

Finn Evers created

2a9d459 proto: Remove unused types (#36269)

Click to expand commit body
This PR removes some unused types from the RPC protocol.

Release Notes:

- N/A

Marshall Bowers created

75f85b3 Remove old telemetry events and transformation layer (#36263)

Click to expand commit body
Successor to: https://github.com/zed-industries/zed/pull/25179

Release Notes:

- N/A

Joseph T. Lyons created

b3cad8b proto: Remove `UpdateUserPlan` message (#36268)

Click to expand commit body
This PR removes the `UpdateUserPlan` RPC message.

We're no longer using the message after
https://github.com/zed-industries/zed/pull/36255.

Release Notes:

- N/A

Marshall Bowers created

1931889 thread_view: Move handlers for confirmed completions to the MessageEditor (#36214)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Cole Miller and Conrad Irwin created

3c5d5a1 editor: Add access method for `project` (#36266)

Click to expand commit body
This resolves a `TODO` that I've stumbled upon too many times whilst
looking at the editor code.

Release Notes:

- N/A

Finn Evers created

bd1fda6 proto: Remove `GetPrivateUserInfo` message (#36265)

Click to expand commit body
This PR removes the `GetPrivateUserInfo` RPC message.

We're no longer using the message after
https://github.com/zed-industries/zed/pull/36255.

Release Notes:

- N/A

Marshall Bowers created

e452aba proto: Order `reserved` fields (#36261)

Click to expand commit body
This PR orders the `reserved` fields in the RPC `Envelope`, as they had
gotten unsorted.

Release Notes:

- N/A

Marshall Bowers created

75b8320 Remove RPC messages pertaining to the LLM token (#36252)

Click to expand commit body
This PR removes the RPC messages pertaining to the LLM token.

We now retrieve the LLM token from Cloud.

Release Notes:

- N/A

Marshall Bowers created

257e099 collab: Increase minimum required version to connect (#36255)

Click to expand commit body
This PR increases the minimum required version to connect to Collab.

Previously this was set at v0.157.0.

The new minimum required version is v0.198.4, which is the first version
where we no longer connect to Collab automatically.

Clients on the v0.199.x minor version will also need to be v0.199.2 or
greater in order to connect, due to us hotfixing the connection changes
to the Preview branch.

We're doing this to force clients to upgrade in order to connect to
Collab, as we're going to be removing some of the old RPC usages related
to authentication that are no longer used. Therefore, we want users to
be on a version of Zed that does not rely on those messages.

Users will see a message similar to this one, prompting them to upgrade:

<img width="1209" height="875" alt="Screenshot 2025-08-15 at 11 37
55 AM"
src="https://github.com/user-attachments/assets/59ffff3e-8f82-4152-84a8-776c691eaaee"
/>

> Note: In this case I'm simulating the error state, which is why I'm
signed in via Cloud while still not being able to connect to Collab.
Users on older versions will see the "Please update Zed to Collaborate"
message without being signed in.

Release Notes:

- N/A

Marshall Bowers created

c39f294 remote: Add support for additional SSH arguments in SshSocket (#33243)

Click to expand commit body
Closes #29438

Release Notes:

- Fix SSH agent forwarding doesn't work when using SSH remote
development.

Umesh Yadav created

7671f34 agent: Create checkpoint before/after every edit operation (#36253)

Click to expand commit body
1. Previously, checkpoints only appeared when an agent's edit happened
immediately after a user message. This is rare (agent usually collects
some context first), so they were almost never shown. This is now fixed.

2. After this change, a checkpoint is created after every edit
operation. So when the agent edits files five times in a single dialog
turn, we will now display five checkpoints.

As a bonus, it's now possible to undo only a part of a long agent
response.

Closes #36092, #32917

Release Notes:

- Create agent checkpoints more frequently (before every edit)

Oleksiy Syvokon created

7993ee9 Suggest unsaved buffer content text as the default filename (#35707)

Click to expand commit body
Closes #24672

This PR complements a feature added earlier by @JosephTLyons (in
https://github.com/zed-industries/zed/pull/32353) where the text is
considered as the tab title in a new buffer. It piggybacks off that
change and sets the title as the suggested filename in the save dialog
(completely mirroring the same functionality in VSCode):

![2025-08-05 11 50
28](https://github.com/user-attachments/assets/49ad9e4a-5559-44b0-a4b0-ae19890e478e)

Release Notes:

- Text entered in a new untitled buffer is considered as the default
filename when saving

Igal Tabachnik created

485802b collab: Remove endpoints for issuing notifications from Cloud (#36249)

Click to expand commit body
This PR removes the `POST /users/:id/refresh_llm_tokens` and `POST
/users/:id/update_plan` endpoints from Collab.

These endpoints were added to be called by Cloud in order to push down
notifications over the Collab RPC connection.

Cloud now sends down notifications to clients directly, so we no longer
need these endpoints.

All calls to these endpoints have already been removed in production.

Release Notes:

- N/A

Marshall Bowers created

1e41d86 agent2: Set thread_id, prompt_id, temperature on request (#36246)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

10a2426 agent2: Port profile selector (#36244)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

91e6b38 Log agent servers stderr (#36243)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

f630365 agent2: Implement prompt caching (#36236)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

846ed6a search: Fix project search not rendering matches count (#36238)

Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/36103/

Release Notes:

- N/A

Lukas Wirth created

708c434 workspace: Highlight where dragged tab will be dropped (#34740)

Click to expand commit body
Closes #18565

I could use some advice on the color palette / theming. A couple
options:

1. The `drop_target_background` color could be used for the border if we
didn't use it for the background of the tab. In VSCode, the background
color of tabs doesn't change as you're dragging, there's just a border
between tabs. My only concern with this option is that the current
`drop_target_background` color is a bit subtle when used for a small
area like a border.

2. Another option could be to add a `drop_target_border` theme color,
but I don't know how much complexity this adds to implementation
(presumably all existing themes would need to be updated?).

Demo:


https://github.com/user-attachments/assets/0b7c04ea-5ec5-4b45-adad-156dfbf552db

Release Notes:

- Highlight where a dragged tab will be dropped between two other tabs

---------

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

Daniel Sauble and Smit Barmase created

6f3cd42 agent2: Port Zed AI features (#36172)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>

Bennet Bo Fenner and Antonio Scandurra created

f8b0105 project: Fix LSP TextDocumentSyncCapability dynamic registration (#36234)

Click to expand commit body
Closes #36213

Use `textDocument/didChange`
([docs](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_synchronization))
instead of `textDocument/synchronization`.

Release Notes:

- Fixed an issue where Dart projects were being formatted incorrectly by
the language server.

smit created

2a57b16 openai: Don't send prompt_cache_key for OpenAI-compatible models (#36231)

Click to expand commit body
Some APIs fail when they get this parameter

Closes #36215

Release Notes:

- Fixed OpenAI-compatible providers that don't support prompt caching
and/or reasoning

Oleksiy Syvokon created

d891348 search: Simplify search options handling (#36233)

Click to expand commit body
Release Notes:

- N/A

Lukas Wirth created

4f0b00b Add component NotificationFrame & CaptureAudio parts for testing (#36081)

Click to expand commit body
Adds component NotificationFrame. It implements a subset of MessageNotification as a Component and refactors MessageNotification to use NotificationFrame. Having some notification UI Component is nice as it allows us to easily build new types of notifications.

Uses the new NotificationFrame component for CaptureAudioNotification. 

Adds a CaptureAudio action in the dev namespace (not meant for
end-users). It records 10 seconds of audio and saves that to a wav file.

Release Notes:

- N/A

---------

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

David Kleingeld and Mikayla created

a3dcc76 openai: Don't send reasoning_effort if it's not set (#36228)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

8d6982e search: Fix some inconsistencies between project and buffer search bars (#36103)

Click to expand commit body
- project search query string now turns red when no results are found
matching buffer search behavior
- General code deduplication as well as more consistent layout between
the two bars, as some minor details have drifted apart
- Tab cycling in buffer search now ends up in editor focus when cycling
backwards, matching forward cycling
- Report parse errors in filter include and exclude editors

Release Notes:

- N/A

Lukas Wirth created

23d0433 linux: Fix keyboard events not working on first start in X11 (#36224)

Click to expand commit body
Closes #29083

On X11, `ibus-x11` crashes on some distros after Zed interacts with it.
This is not unique to Zed, `xim-rs` shows the same behavior, and there
are similar upstream `ibus` reports with apps like Blender:

- https://github.com/ibus/ibus/issues/2697

I opened an upstream issue to track this:

- https://github.com/ibus/ibus/issues/2789

When this crash happens, we don’t get a disconnect event, so Zed keeps
sending events to the IM server and waits for a response. It works on
subsequent starts because IM server doesn't exist now and we default to
non-XIM path.

This PR detects the crash via X11 events and falls back to the non-XIM
path so typing keeps working. We still need to investigate whether the
root cause is in `xim-rs` or `ibus-x11`.

Release Notes:

- Fixed an issue on X11 where keyboard input sometimes didn’t work on
first start.

smit created

4d27b22 remote server: Use env flag to opt out of musl remote server build (#36069)

Click to expand commit body
Closes #ISSUE

This will allow devs to opt out of the musl build when developing zed by
running `ZED_BUILD_REMOTE_SERVER=nomusl cargo r` which also fixes remote
builds on NixOS.

Release Notes:

- Add a env flag (`ZED_BUILD_REMOTE_SERVER=nomusl`) to opt out of musl
builds when building the remote server

Alvaro Parker created

8366b6c workspace: Disable padding on zoomed panels (#36012)

Click to expand commit body
Continuation of https://github.com/zed-industries/zed/pull/31913

| Before | After |
| -------|------|
|
![image](https://github.com/user-attachments/assets/629e7da2-6070-4abb-b469-3b0824524ca4)
|
![image](https://github.com/user-attachments/assets/99e54412-2e0b-4df9-9c40-a89b0411f6d8)
|


Release Notes:

- Disable padding on zoomed panels

Cretezy created

b1e8064 Support images in agent2 threads (#36152)

Click to expand commit body
- Support adding ImageContent to messages through copy/paste and through
path completions
- Ensure images are fully converted to LanguageModelImageContent before
sending them to the model
- Update ACP crate to v0.0.24 to enable passing image paths through the
protocol

Release Notes:

- N/A

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Cole Miller and Conrad Irwin created

e2ce787 editor: Limit target names in hover links multibuffer titles (#36207)

Click to expand commit body
Release Notes:

- N/A

Lukas Wirth created

b7c562f Bump `async-trait` (#36201)

Click to expand commit body
The latest release has span changes in it which prevents rust-analyzer
from constantly showing `Box` and `Box::pin` on hover as well as those
items polluting the go to definition feature on every identifier.

See https://github.com/dtolnay/async-trait/pull/293

Release Notes:

- N/A

Lukas Wirth created

3a711d0 Remove onboarding script (#36203)

Click to expand commit body
Just use `ZED_STATELESS=1 zed` instead!

Release Notes:

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

Joseph T. Lyons created

b65e9af Add [f/]f to follow the next collaborator (#36191)

Click to expand commit body
Release Notes:

- vim: Add `[f`/`]f` to go to the next collaborator

Conrad Irwin created

eb9bbaa Add onboarding reset restore script (#36202)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

43ee604 acp: Clean up entry views on rewind (#36197)

Click to expand commit body
We were leaking diffs and terminals on rewind, we'll now clean them up.
This PR also introduces a refactor of how we mantain the entry view
state to use a `Vec` that's kept in sync with the thread entries.

Release Notes:

- N/A

Agus Zubiaga created

2acfa5e copilot: Fix Copilot fails to sign in on newer versions (#36195)

Click to expand commit body
Follow-up for #36093 and
https://github.com/zed-industries/zed/pull/36138

Since v1.355.0, `@github/copilot-language-server` has stopped responding
to `CheckStatus` requests if a `DidChangeConfiguration` notification
hasn’t been sent beforehand. This causes `CheckStatus` to remain in an
await state until it times out, leaving the connection stuck for a long
period before finally throwing a timeout error.

```rs
let status = server
    .request::<request::CheckStatus>(request::CheckStatusParams {
        local_checks_only: false,
    })
    .await
    .into_response() // bails here with ConnectionResult::Timeout
    .context("copilot: check status")?;
````

This PR fixes the issue by sending the `DidChangeConfiguration`
notification before making the `CheckStatus` request. It’s just an
ordering change i.e. no other LSP actions occur between these two calls.
Previously, we only updated our internal connection status and UI in
between.

Release Notes:

- Fixed an issue where GitHub Copilot could get stuck and fail to sign
in.

smit created

1a169e0 git: Clear set of dirty paths when doing a full status scan (#36181)

Click to expand commit body
Related to #35780 

Release Notes:

- N/A

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

Cole Miller and Kirill Bulatov created

5a9546f Add alt-s to helix mode (#33918)

Click to expand commit body
Closes #31562

Release Notes:

- Helix: bind alt-s to SplitSelectionIntoLines

---------

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

Mostafa Khaled and Ben Kunkle created

9a2b7ef helix: Change f and t motions (#35216)

Click to expand commit body
In vim and zed (vim and helix modes) typing "tx" will jump before the
next `x`, but typing it again won't do anything. But in helix the cursor
just jumps before the `x` after that. I added that in helix mode.
This also solves another small issue where the selection doesn't include
the first `x` after typing "fx" twice. And similarly after typing "Fx"
or "Tx" the selection should include the character that the motion
startet on.

Release Notes:

- helix: Fixed inconsistencies in the "f" and "t" motions

fantacell created

20be133 helix: Allow yank without a selection (#35612)

Click to expand commit body
Related https://github.com/zed-industries/zed/issues/4642

Release Notes:
- Helix: without active selection, pressing `y` in helix mode will yank
a single character under cursor.

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Romans Malinovskis and Conrad Irwin created

528d56e keymap_ui: Add open keymap JSON button (#36182)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Keymap Editor: Added a button in the top left to allow opening the
keymap JSON file. Right clicking the button provides shortcuts to
opening the default Zed and Vim keymaps as well.

Ben Kunkle created

f514c7c Emit a `BreadcrumbsChanged` event when associated settings changed (#36177)

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

Release Notes:

- Fixed a bug where changing the `toolbar.breadcrumbs` setting didn't
immediately update the UI when saving the `settings.json` file.

Joseph T. Lyons created

ba2c45b Add FutureExt::with_timeout and use it for for Room::maintain_connection (#36175)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>

David Kleingeld and Antonio Scandurra created

e5402d5 Allow editing Agent2 messages (#36155)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Agus Zubiaga <agus@zed.dev>

Conrad Irwin , Antonio Scandurra , and Agus Zubiaga created