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):

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)
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>
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
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 |
| -------|------|
|

|

|
Release Notes:
- Disable padding on zoomed panels
- 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>
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
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>
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>
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
ffac8c5
editor: Render all targets in go to def multbuffer title (#36167)
Click to expand commit body
Release Notes:
- N/A
Lukas Wirth
created
b3d048d
Add back `DeletePathTool` to agent2 (#36168)
Click to expand commit body
This was probably removed accidentally as a result of a merge conflict.
Release Notes:
- N/A
Antonio Scandurra
created
8e4f30a
project: Print error causes when failing to spawn lsp command (#36163)
Click to expand commit body
cc https://github.com/zed-industries/zed/issues/34666
Display printing anyhow errors only renders the error itself, but not
any of its causes so we've been dropping the important context when
showing the issue to the users.
Release Notes:
- N/A
Lukas Wirth
created
0291db0
git: Add handler to get default branch on remote (#36157)
Click to expand commit body
Closes #36150
Release Notes:
- Fixed `git: branch` action not worked with ssh workflow
Alvaro Parker
created
5bbdd1a
docs: Update information in MSYS2 section (#36158)
Click to expand commit body
- we are about to drop Zed for MINGW64 because `crash-handler` uses a
symbol which is not presented in `msvcrt.dll`
- mention MSYS2 docs page and CLANGARM64 environment
Release Notes:
- N/A
Release Notes:
- N/A
---------
Co-authored-by: Anthony <anthony@zed.dev>
Mikayla Maki
and
Anthony
created
e67b2da
Make alphabetical sorting the default (#32315)
Click to expand commit body
Follow up of this pr: #25148
Release Notes:
- Improved file sorting.
As described in #20126, I was fed up with lexicographical file sorting
in the project panel. The current sorting behavior doesn't handle
numeric segments properly, leading to unintuitive ordering like
`file_1.rs`, `file_10.rs`, `file_2.rs`.
## Example Sorting Results
Using `lexicographical` (default):
```
.
βββ file_01.rs
βββ file_1.rs
βββ file_10.rs
βββ file_1025.rs
βββ file_2.rs
```
Using alphabetical (natural) sorting:
```
.
βββ file_1.rs
βββ file_01.rs
βββ file_2.rs
βββ file_10.rs
βββ file_1025.rs
```
Tom Planche
created
293992f
In auto-update-helper, fix parsing of `--launch false` (#36148)
Click to expand commit body
This fixes an issue introduced in
https://github.com/zed-industries/zed/pull/34303 where, after an
auto-update was downloaded, quitting Zed would always restart Zed.
Release Notes:
- N/A
Max Brunsfeld
created
665006c
Move the cursor on search in Terminal if ViMode is active (#33305)
Click to expand commit body
Currently, the terminal search function doesn't work well with ViMode.
It matches the search terms, scrolls the active match in the view, but
it doesn't move the cursor to the match, which makes it useless for
navigating the scrollback in vimode.
With this improvement, if a user activates ViMode before the search Zed
moves the cursor to the active search terms. So, when the search dialog
is dismissed the cursor is places on the latest active search term and
it's possible to navigate the scrollback via ViMode using this place as
the starting point.
https://github.com/user-attachments/assets/63325405-ed93-4bf8-a00f-28ded5511f31
Release Notes:
- Improved the search function in the terminal when ViMode is activated
Aleksei Gusev
created
09e90fb
Use trace log level for potentially high-volume vsync duration log (#36147)
Click to expand commit body
This is an attempt to fix
https://github.com/zed-industries/zed/issues/36125
Release Notes:
- N/A
Max Brunsfeld
created
8452532
agent2: Iterate on "new thread" selector in the toolbar (#36144)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
1d2eaf2
editor: Fix first `cmd-left` target for cursor in leading whitespace (#36145)
Click to expand commit body
Closes #35805
If the cursor is between column 0 and the indent size, pressing
`cmd-left` jumps to the indent. Pressing it again moves to the true
column 0. Further presses toggle between indent and column 0.
This PR changes the first `cmd-left` to go to column 0 instead of
indent. Toggling between is unaffected.
Release Notes:
- Fixed issue where pressing `cmd-left` with the cursor in the leading
spaces moved to the start of the text first. It now goes to the
beginning of the line first, then the start of the text.
smit
created
a6e2e0d
onboarding: Fix minimap typo on editing page (#36143)
Click to expand commit body
This PR fixes a small typo on the onboarding editing page where it
should be "Minimap" instead of "Mini Map"
Release Notes:
- N/A