When `use_modifier_to_send` is turned on, holding `cmd`/`ctrl` is
necessary to send a message in the agent panel. Text threads already use
`cmd-enter` by default to submit a message, and it was done this way to
have the usual text editing bindings not taken over when writing a
prompt, sort of stimulating more thoughtful writing. While `enter` to
send is still somewhat a huge pattern in chat-like LLM UIs, it still
makes sense to allow this for the new agent panel... hence the existence
of this setting now!
Release Notes:
- agent: Added the `use_modifier_to_send` setting, which makes holding a
modifier (`cmd`/`ctrl`), together with `enter`, required to send a new
message.
Danilo Leal
created
64ce696
ui: Add the `SwitchField` component (#34713)
Click to expand commit body
This will be useful for both the current agent panel and some other
onboarding stuff we're working on. Also ended up removing the
`SwitchWithLabel` as it was unused.
Release Notes:
- N/A
Danilo Leal
created
87555d3
project: Remove clones from git blame serialization (#34727)
Click to expand commit body
Release Notes:
- N/A
tidely
created
5b18ce7
editor: Ensure topmost buffer header can be properly folded (#34721)
Click to expand commit body
This PR fixes an issue where the topmost header in a multibuffer would
jump when the corresponding buffer was folded.
The issue arose because for the topmost header, the offset within the
scroll anchor is negative, as the corresponding buffer only starts below
the header itself and thus the offset for the scroll position has to be
negative.
However, upon collapsing that buffer, we end up with a negative vertical
scroll position, which causes all kinds of different problems. The issue
has been present for a long time, but became more visible after
https://github.com/zed-industries/zed/pull/34295 landed, as that change
removed the case distinction for buffers scrolled all the way to the
top.
This PR fixes this by clamping just the vertical scroll position upon
return, which ensures the negative offset works as expected when the
buffer is expanded, but the vertical scroll position does not turn
negative once the buffer is folded.
Release Notes:
- Fixed an issue where folding the topmost buffer in a multibuffer would
cause the header to jump slightly.
Finn Evers
created
1dd470c
editor: Fix double $ sign on completion accept in PHP (#34726)
Click to expand commit body
Closes #33510 https://github.com/zed-extensions/php/issues/29
If certain language servers do not provide an insert/replace range, we
use `surrounding_word` as a fallback for that range, which internally
uses `word_characters`. It makes sense to use
`completion_query_characters` instead of `word_characters` to get that
range, because we use `completion_query_characters` to query completions
in the first place.
That means, for some hypothetical reason (e.g., if the Tailwind server
stops providing insert/replace ranges), we would correctly fall back to
the range "bg-blue-200^" instead of "200^", because
`completion_query_characters` includes "-" in this case.
For this particular fix, right now the default PHP language server
`phpactor` does not provide an insert/replace range, and hence
completion query character is used, which is `$` in this case.
Note that `$` isn't in word characters for reasons mentioned here:
https://github.com/zed-extensions/php/issues/14
Release Notes:
- Fixed an issue where accepting variable completion in PHP would result
in a double $ sign in the prefix.
Smit Barmase
created
8bc8d61
theme_importer: Add missing color imports for the minimap thumb (#34724)
Click to expand commit body
These should have been part of
https://github.com/zed-industries/zed/pull/30785 but I forgot to add
them there.
Release Notes:
- N/A
Finn Evers
created
750ceeb
collab: Don't use `screen-capture` feature from `gpui` (#34725)
Click to expand commit body
This PR removes the `screen-capture` feature from `gpui` when depending
on it in `collab`.
Release Notes:
- N/A
Marshall Bowers
created
4476860
Add refinements to the AI onboarding flow (#33738)
Click to expand commit body
This includes making sure that both the agent panel and Zed's edit
prediction have a consistent narrative when it comes to onboarding users
into the AI features, considering the possible different plans and
conditions (such as being signed in/out, account age, etc.)
Release Notes:
- N/A
---------
Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Danilo Leal
,
Bennet Bo Fenner
, and
Bennet Bo Fenner
created
Reverts zed-industries/zed#29718
We've noticed some issues with Zed on Intel-based Macs where typing has
become sluggish, and git bisect has seemed to point towards this PR.
Reverting for now, until we can understand why it is causing this issue.
Joseph T. Lyons
created
e421fc7
Update keymap context binding behavior of > and ! (#34664)
Click to expand commit body
Now ! means "no ancestors matches this", and > means "any descendent"
not "any child".
Updates #34570
Co-authored-by: Ben Kunkle <ben@zed.dev>
Release Notes:
- *Breaking change*. The context predicates in the keymap file now
handle ! and > differently. Before this change ! meant "this node does
not match", now it means "none of these nodes match". Before this change
> meant "child of", now it means "descendent of". We do not expect these
changes to break many keymaps, but they may cause subtle changes for
complex context queries.
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
This PR adds a new `POST /users/:id/refresh_llm_tokens` endpoint to
Collab so that we can refresh LLM tokens from Cloud.
Release Notes:
- N/A
Marshall Bowers
created
6a24b24
Redact license keys in environment variables from log output (#34711)
Click to expand commit body
Release Notes:
- N/A
Peter Tripp
created
2ac99e7
debugger: Fix attaching with DebugPy (#34706)
Click to expand commit body
@cole-miller found a root cause of our struggles with attach scenarios;
we did not fetch .so files necessary for attaching to work,
as we were downloading DebugPy source tarballs from GitHub.
This PR does away with it by setting up a virtualenv instead that has
debugpy installed.
Closes #34660
Closes #34575
Release Notes:
- debugger: Fixed attaching with DebugPy. DebugPy is now installed
automatically from pip (instead of GitHub), unless it is present in
active virtual environment. Additionally this should resolve any startup
issues with missing .so on Linux.
Actual default is 45
https://github.com/zed-industries/zed/blob/fd05f17fa7e0253bc98698e84a1f8939bcb6616f/assets/settings/default.json#L1402
Release Notes:
- N/A
Peter Tripp
created
4002801
agent: Fix new thread model selection when starting new thread (#34708)
Click to expand commit body
Release Notes:
- agent: Fixed an issue where clicking on "Start New Thread" in the
agent configuration would not always switch to the correct
provider/model
- **Fix cancellation of tool calls**
- **Make tool_call test more resilient**
- **Fix tool call confirmation test**
Release Notes:
- N/A
Ben Brandt
created
fd05f17
go: Support raw string subtest names (#34636)
Click to expand commit body
Currently, we're not able to run Go sub-tests that have a raw string
(e.g. we're using multi-line names a lot) via the UI. I added the
changes that are needed, plus a handful of tests to cover the basics.
Quick comparison:
Before:
<img width="901" height="370" alt="before"
src="https://github.com/user-attachments/assets/4e5cadeb-9a0c-49e2-b976-2223e1010f85"
/>
After:
<img width="901" height="505" alt="after"
src="https://github.com/user-attachments/assets/994fc69b-f720-488c-a14b-853a3ca2f53c"
/>
Release Notes:
- Added support for Go subtest runner with raw string names
Lukas Spiss
created
7e3fd7b
gpui: Use static keyword with `LazyLock` when loading system fonts (#34555)
Click to expand commit body
Use the `static` keyword to actually make the `LazyLock` static, which
previously would reinitialize on every call to `SvgRenderer::new`.
Related: #26335
Release Notes:
- N/A
tidely
created
00097df
Improve C/C++ indentation flow for single statement blocks (#34549)
Click to expand commit body
Before this, indentation did not automatically increase after
if/for/while/do/else statements in C++, and only increased after if/for
in C. This led to Zed using last line logic when inserting lines *after*
the indented statement, as well as not indenting the statement itself,
resulting in irregular indentation during typing.
Just adding indentation (similar to C) creates a new problem: now if a
scope is started with a brace on a new line, that brace is indented.
Thus we need to deindent it.
Using else_clause in the indent guide results in the else statement
being indented forward as well, so we need to deindent that too.
Note: the most significant issue for me is the one where indentation
jumps forward when inserting lines after indented lines. Unfortunately,
it appears that fixing that issue requires all of these other changes. I
would have preferred a simpler fix, but I'm not sure if disabling last
line behavior for C/C++ is appropriate as it probably breaks something
else, like cases where the file is incomplete and the statements can't
be parsed properly.
Editing flow before this change:
[Screencast From 2025-07-16
08-31-36.webm](https://github.com/user-attachments/assets/3dea86c5-47bd-47c2-aee8-b0aa613948e6)
Editing flow after this change:
[Screencast From 2025-07-16
08-35-36.webm](https://github.com/user-attachments/assets/7ef23e60-1ee3-49fd-90f9-d53f909ca674)
(note: the "else" snippet is completely breaking the flow here, but I
think that comes from clangd by default? Unfortunately I haven't found a
way to disable it cleanly but that is a separate problem that happens
right now too.)
Release Notes:
- Improve indentation during typing for C/C++ around if/for/while/do
blocks
Arseny Kapoulkine
created
c133223
docs: Document pull diagnostics support for Ruby (#34028)
Click to expand commit body
This is now supported.
Release Notes:
- N/A
Andy Waite
created
c1307ce
Add `;` key binding for Helix mode (#34315)
Click to expand commit body
Closes #34111
In Helix mode, the `;` key should collapse the current selection without
moving the cursor. I've added a new action `vim::HelixCollapseSelection`
to support this behavior.
https://github.com/user-attachments/assets/1a40821a-f56f-456e-9d37-532500bef17b
Release Notes:
- Added `;` key binding to collapse the current text selection in Helix
mode
Daniel Sauble
created
8a7bd5f
agent: Adjust retry on Burn Mode layout (#34680)
Click to expand commit body
Quick follow-up to https://github.com/zed-industries/zed/pull/34669 so
that the buttons don't look so big in comparison to the callout.
Release Notes:
- N/A
Danilo Leal
created
c287397
Rename "CloseInactiveItems" action to "CloseOtherItems" (#34676)
Click to expand commit body
This is following feedback from folks that were searching the "close
others" action, available in the tab's context menu, and not finding it
because it was actually named "close inactive", which was confusing. So,
this PR makes sure the tab's menu item and the action have consistent
naming.
Release Notes:
- Rename "CloseInactiveItems" action to "CloseOtherItems" for naming
consistency.
Danilo Leal
created
a7284ad
editor: Fix cursor doesn’t move up and down on arrow keys when no completions are shown (#34678)
Click to expand commit body
Closes #34338
After https://github.com/zed-industries/zed/pull/31872, to avoid
re-querying language servers, we keep the context menu around, which
stores initial query, completions items, etc., even though it may not
contain any items and hence not be rendered on screen. In this state,
up/down arrows try to switch focus in the context menu instead of
propagating it to the editor. Hence blocking buffer movement.
This PR fixes it by changing the context for `menu`,
`showing_completions`, and `showing_code_actions` to only be added when
the menu is actually being rendered (i.e., not empty).
Release Notes:
- Fix an issue where the cursor doesn’t move up and down on arrow keys
when no completions are shown.
Smit Barmase
created
4314b35
keymap_ui: Don't panic on `KeybindSource::from_meta` (#34652)
Click to expand commit body
Closes #ISSUE
Log error instead of panicking when `from_meta` is passed an invalid
value
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
ed4deaa
agent: Remove layout shift due to the "waiting for confirmation" label (#34674)
Click to expand commit body
Take 2 on https://github.com/zed-industries/zed/pull/33046.
Release Notes:
- N/A
Danilo Leal
created
f0a9150
keymap_ui: Add some design refinements (#34673)
Click to expand commit body
Mostly small stuff over here.
Release Notes:
- N/A
Now we only auto-retry if burn mode is enabled. We also show a "Retry"
button (so you don't have to type "continue") if you think that's the
right remedy, and additionally we show a "Retry and Enable Burn Mode"
button if you don't have it enabled.
<img width="484" height="260" alt="Screenshot 2025-07-17 at 6 25 27 PM"
src="https://github.com/user-attachments/assets/dc5bf1f6-8b11-4041-87aa-4f37c95ea9f0"
/>
<img width="478" height="307" alt="Screenshot 2025-07-17 at 6 22 36 PM"
src="https://github.com/user-attachments/assets/1ed6578a-1696-449d-96d1-e447d11959fa"
/>
Release Notes:
- Only auto-retry Agent requests when Burn Mode is enabled
This PR removes the `GET /billing/usage` endpoint, as it has been moved
to `cloud.zed.dev`.
Release Notes:
- N/A
Marshall Bowers
created
9efe9df
Harmonize `buffer_font_size` between default.json and initial_settings.json (#34650)
Click to expand commit body
Release Notes:
- N/A
Peter Tripp
created
dab0b35
Unify agent server settings and extract e2e tests out (#34642)
Click to expand commit body
Release Notes:
- N/A
Agus Zubiaga
created
0f72d7e
editor: Fix sometimes green (+) cursor style appearing when cmd-clicking in same buffer (#34638)
Click to expand commit body
Follow-up for https://github.com/zed-industries/zed/pull/34557
This PR clears the selection drag state on click, because mouse up
doesn't trigger on click event because of `cx.stop_propagation`. The
issue occurs with similar repro steps as mentioned in the attached PR.
Release Notes:
- Fixed the issue where the green (+) cursor style sometimes appears
when navigating to the definition in buffer.
b4dc7f8
debugger: Add support for running test methods with function receiver in Go (#34613)
Click to expand commit body

Closes #33759
Release Notes:
- debugger: Add support for running test methods with function receiver
in Go
Signed-off-by: Umesh Yadav <git@umesh.dev>
Umesh Yadav
created
b94649c
keymap_ui: Show edit icon on hovered and selected row (#34630)
Click to expand commit body
Closes #ISSUE
Improves the behavior of the edit icon in the far left column of the
keymap UI table. It is now shown in both the selected and the hovered
row as an indicator that the row is editable in this configuration. When
hovered a row can be double clicked or the edit icon can be clicked, and
when selected it can be edited via keyboard shortcuts. Additionally, the
edit icon and all other hover tooltips will now disappear when the table
is navigated via keyboard shortcuts.
<details><summary>Video</summary>
https://github.com/user-attachments/assets/6584810f-4c6d-4e6f-bdca-25b16c920cfc
</details>
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
948c1f2
keymap_ui: Improve keybind display in menus (#34587)
Click to expand commit body
Closes #ISSUE
Defines keybindings for `keymap_editor::EditBinding` and
`keymap_editor::CreateBinding`, making sure those actions are used in
tooltips.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
---------
Co-authored-by: Finn <dev@bahn.sh>
Before:
<img width="1728" height="1079" alt="before"
src="https://github.com/user-attachments/assets/4ab19211-8de4-458d-a835-52de859b7b20"
/>
After:
<img width="1728" height="1079" alt="after"
src="https://github.com/user-attachments/assets/231c9362-a0b0-47ae-b92e-de6742781d36"
/>
Makes clear which path is causing the FS error and removes backtraces
from logging.
Release Notes:
- N/A
Kirill Bulatov
created
4df7f52
agent: Disable `project_notifications` by default (#34615)
Click to expand commit body
This tool needs more polishing before being generally available.
Release Notes:
- agent: Disabled `project_notifications` tool by default for the time
being