91b0f42
Fix panic when hovering string ending with unicode (#38818)
Click to expand commit body
Release Notes:
- Fixed a panic when hovering a string literal ending with an emoji
Conrad Irwin
created
523c042
settings_ui: Collect all settings files (#38816)
Click to expand commit body
Closes #ISSUE
Updates the settings editor to collect all known settings files from the
settings store, in order to show them in the UI. Additionally adds a
fake worktree instantiation in the settings UI example binary in order
to have more than one file available when testing.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
ed7bd5a
gpui: Flash menu in menubar on macOS when action is triggered (#38588)
Click to expand commit body
On macOS, traditionally when a keyboard shortcut is activated, the menu
in the menu bar flashes to indicate that the action was recognised.
<img width="289" height="172" alt="image"
src="https://github.com/user-attachments/assets/a03ecd2f-f159-4f82-b4fd-227f34393703"
/>
This PR adds this functionality to GPUI, where when a keybind is pressed
that triggers an action in the menu, the menu flashes.
Release Notes:
- N/A
Victor Tran
created
8ebe4fa
gpui_macros: Hide inner test function from project symbols (#38809)
Click to expand commit body
This makes rust-analyzer not consider the function for project symbols,
meaning searching for tests wont show two entries.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
6b646e3
zeta2: Support `edit prediction: clear history` (#38808)
Click to expand commit body
Release Notes:
- N/A
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Bennet Bo Fenner
and
Agus Zubiaga
created
e653cc9
Clean up last remnants of Settings UI v1 (#38803)
0794de7
docs: Update note about agent message editor setting (#38805)
Click to expand commit body
As of stable 206.0, the `agent.message_editor_min_lines` setting is
fully available, so removing the docs note that said it was only for
Preview.
Release Notes:
- N/A
Danilo Leal
created
2b283e7
Revert "Fix UTF-8 character boundary panic in DirectWrite text ... (#37767)" (#38800)
Click to expand commit body
This reverts commit 9e7302520ec93a96a9b275a817f083b96620148e.
I run into an infinite hang in Zed nightly and used instruments and
activity monitor to sample what was going on. The root cause seemed to
be the unwrap_unchecked introduced in reverted PR.
Release Notes:
- N/A
Anthony Eid
created
45a4277
Add community champion auto labeler (#38802)
Click to expand commit body
Release Notes:
- N/A
Joseph T. Lyons
created
fa76b6c
Switch to "standard" as a default line height in the terminal (#38798)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/38686
Release Notes:
- Switched to "standard" as a default line height in the terminal
Release Notes:
- N/A
---------
Co-authored-by: Anthony <hello@anthonyeid.me>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Anthony <anthony@zed.dev>
Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>
Mikayla Maki
,
Anthony
,
Ben Kunkle
,
Anthony
, and
Ben Kunkle
created
Just making it more consistent with other pickers—button actions
justified to the right and timestamp directly in the list item to avoid
as much as possible relevant information tucked away in a tooltip where
using the keyboard will mostly be the main mean of interaction.
<img width="500" height="310" alt="Screenshot 2025-09-24 at 10 41@2x"
src="https://github.com/user-attachments/assets/0bd478da-d1a6-48fe-ade7-a4759d175c60"
/>
Release Notes:
- N/A
Danilo Leal
created
b3f9be6
zeta2: Split up crate into modules (#38788)
Click to expand commit body
Split up provider, prediction, and global into modules.
Release Notes:
- N/A
The new cloud endpoint returns structured edits, but they may include
more of the input excerpt than what we want to display in the preview,
so we compute a smaller diff on the client side against the snapshot.
Release Notes:
- N/A
Agus Zubiaga
created
e1b57f0
sum_tree: Reduce `Cursor` size for contextless summary types (#38776)
Click to expand commit body
This reduces the size of cursor by a usize when the summary does not
require a context making Cursor usages and constructions slightly more
efficient.
This change is a bit annoying though, as Rust has no means of
specializing, so this uses a `ContextlessSummary` trait with a blanket
impl while turning the `Context` into a GAT `Context<'a>`. This means
`Summary` implies are a bit more verbose now while contextless ones are
slimmer. It does come with the downside that the lifetime in the GAT is
always considered invariant, so some lifetime splitting occurred due to
that.
```
push/4096 time: [352.65 µs 360.87 µs 367.80 µs]
thrpt: [10.621 MiB/s 10.825 MiB/s 11.077 MiB/s]
change:
time: [-2.6633% -1.3640% -0.0561%] (p = 0.05 < 0.05)
thrpt: [+0.0561% +1.3828% +2.7361%]
Change within noise threshold.
Found 16 outliers among 100 measurements (16.00%)
7 (7.00%) low severe
3 (3.00%) low mild
2 (2.00%) high mild
4 (4.00%) high severe
push/65536 time: [1.2917 ms 1.2949 ms 1.2979 ms]
thrpt: [48.156 MiB/s 48.267 MiB/s 48.387 MiB/s]
change:
time: [+1.4428% +1.9844% +2.5299%] (p = 0.00 < 0.05)
thrpt: [-2.4675% -1.9458% -1.4223%]
Performance has regressed.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) low severe
1 (1.00%) low mild
1 (1.00%) high severe
append/4096 time: [677.87 ns 678.87 ns 679.83 ns]
thrpt: [5.6112 GiB/s 5.6192 GiB/s 5.6274 GiB/s]
change:
time: [-0.8924% -0.5017% -0.1705%] (p = 0.00 < 0.05)
thrpt: [+0.1708% +0.5043% +0.9004%]
Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) low mild
1 (1.00%) high mild
append/65536 time: [9.3275 µs 9.3406 µs 9.3536 µs]
thrpt: [6.5253 GiB/s 6.5344 GiB/s 6.5435 GiB/s]
change:
time: [+0.5409% +0.7215% +0.9054%] (p = 0.00 < 0.05)
thrpt: [-0.8973% -0.7163% -0.5380%]
Change within noise threshold.
slice/4096 time: [27.673 µs 27.791 µs 27.907 µs]
thrpt: [139.97 MiB/s 140.56 MiB/s 141.16 MiB/s]
change:
time: [-1.1065% -0.6725% -0.2429%] (p = 0.00 < 0.05)
thrpt: [+0.2435% +0.6770% +1.1189%]
Change within noise threshold.
Found 5 outliers among 100 measurements (5.00%)
4 (4.00%) low mild
1 (1.00%) high mild
slice/65536 time: [507.55 µs 517.40 µs 535.60 µs]
thrpt: [116.69 MiB/s 120.80 MiB/s 123.14 MiB/s]
change:
time: [-1.3489% +0.0599% +2.2591%] (p = 0.96 > 0.05)
thrpt: [-2.2092% -0.0598% +1.3674%]
No change in performance detected.
Found 8 outliers among 100 measurements (8.00%)
5 (5.00%) low mild
2 (2.00%) high mild
1 (1.00%) high severe
bytes_in_range/4096 time: [3.3917 µs 3.4108 µs 3.4313 µs]
thrpt: [1.1117 GiB/s 1.1184 GiB/s 1.1247 GiB/s]
change:
time: [-5.3466% -4.7193% -4.1262%] (p = 0.00 < 0.05)
thrpt: [+4.3038% +4.9531% +5.6487%]
Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
1 (1.00%) low mild
5 (5.00%) high mild
bytes_in_range/65536 time: [88.175 µs 88.613 µs 89.111 µs]
thrpt: [701.37 MiB/s 705.31 MiB/s 708.82 MiB/s]
change:
time: [-0.6935% +0.3769% +1.4655%] (p = 0.50 > 0.05)
thrpt: [-1.4443% -0.3755% +0.6984%]
No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild
chars/4096 time: [678.70 ns 680.38 ns 682.08 ns]
thrpt: [5.5927 GiB/s 5.6067 GiB/s 5.6206 GiB/s]
change:
time: [-0.6969% -0.2755% +0.1485%] (p = 0.20 > 0.05)
thrpt: [-0.1483% +0.2763% +0.7018%]
No change in performance detected.
Found 9 outliers among 100 measurements (9.00%)
5 (5.00%) low mild
4 (4.00%) high mild
chars/65536 time: [12.720 µs 12.775 µs 12.830 µs]
thrpt: [4.7573 GiB/s 4.7778 GiB/s 4.7983 GiB/s]
change:
time: [-0.6172% -0.1110% +0.4179%] (p = 0.68 > 0.05)
thrpt: [-0.4162% +0.1112% +0.6211%]
No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) low mild
1 (1.00%) high mild
clip_point/4096 time: [33.240 µs 33.310 µs 33.394 µs]
thrpt: [116.98 MiB/s 117.27 MiB/s 117.52 MiB/s]
change:
time: [-2.8892% -2.6305% -2.3438%] (p = 0.00 < 0.05)
thrpt: [+2.4000% +2.7015% +2.9751%]
Performance has improved.
Found 12 outliers among 100 measurements (12.00%)
1 (1.00%) low mild
4 (4.00%) high mild
7 (7.00%) high severe
clip_point/65536 time: [1.6531 ms 1.6586 ms 1.6640 ms]
thrpt: [37.560 MiB/s 37.683 MiB/s 37.808 MiB/s]
change:
time: [-6.6381% -5.9395% -5.2680%] (p = 0.00 < 0.05)
thrpt: [+5.5610% +6.3146% +7.1100%]
Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
1 (1.00%) low mild
2 (2.00%) high mild
4 (4.00%) high severe
point_to_offset/4096 time: [11.586 µs 11.603 µs 11.621 µs]
thrpt: [336.15 MiB/s 336.67 MiB/s 337.16 MiB/s]
change:
time: [-14.289% -14.111% -13.939%] (p = 0.00 < 0.05)
thrpt: [+16.197% +16.429% +16.672%]
Performance has improved.
Found 12 outliers among 100 measurements (12.00%)
3 (3.00%) low severe
5 (5.00%) low mild
4 (4.00%) high mild
point_to_offset/65536 time: [527.74 µs 532.08 µs 536.51 µs]
thrpt: [116.49 MiB/s 117.46 MiB/s 118.43 MiB/s]
change:
time: [-6.7825% -4.6235% -2.3533%] (p = 0.00 < 0.05)
thrpt: [+2.4100% +4.8477% +7.2760%]
Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
4 (4.00%) high mild
4 (4.00%) high severe
cursor/4096 time: [16.154 µs 16.192 µs 16.232 µs]
thrpt: [240.66 MiB/s 241.24 MiB/s 241.81 MiB/s]
change:
time: [-3.2536% -2.9145% -2.5526%] (p = 0.00 < 0.05)
thrpt: [+2.6194% +3.0019% +3.3630%]
Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
1 (1.00%) low mild
2 (2.00%) high mild
2 (2.00%) high severe
cursor/65536 time: [509.60 µs 511.24 µs 512.93 µs]
thrpt: [121.85 MiB/s 122.25 MiB/s 122.65 MiB/s]
change:
time: [-7.3677% -6.6017% -5.7840%] (p = 0.00 < 0.05)
thrpt: [+6.1391% +7.0683% +7.9537%]
Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
3 (3.00%) high mild
3 (3.00%) high severe
```
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
c5219e8
agent: Clean up git exclusions after emergency (#38775)
Click to expand commit body
In some rare cases, the auto-generated block gets stuck in
`.git/info/exclude`. We now auto-clean it.
Closes #38374
Release Notes:
- Remove auto-generated block from git excludes if it gets stuck there.
Oleksiy Syvokon
created
5612a96
windows: Do not attempt to encrypt empty encrypted strings (#38774)
Click to expand commit body
Related to #38427
Release Notes:
* N/A
Piotr Osiewicz
created
c53e5ba
editor: Fix invalid anchors in `hover_links::surrounding_filename` (#38766)
The `Duration` argument in `get_models` has been unused for over a year.
The `complete` function is also unused and it has fallen behind in new
feature additions such as Authorization support. This used to exist
because ollama didn't support tools in streaming mode, `with_tools` also
existed because of that. Now however there is no reason to keep this
around.
`ChatResponseDelta ` had unnecessary `#[allow(unused)]` macros since the
fields are marked `pub`. Using `#[expect(unused)]` would've caught this.
Release Notes:
- N/A
tidely
created
9418a2f
editor: Prevent panics in `BlockChunks` if the block spans more than 128 lines (#38763)
Click to expand commit body
Not an ideal fix, but a proper one will require restructuring the
iterator state (which would be easier if Rust had first class
generators)
Fixes ZED-1MB
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
880fff4
ollama: Add support for qwen3-coder (#38608)
Click to expand commit body
Release Notes:
- N/A
Santiago Bernhardt
created
5f6ae23
Delete unused types for Mistral non-streaming requests (#38758)
Click to expand commit body
Confusing to have these interspersed with the streaming request types
Release Notes:
- N/A
Michael Sloan
created
5d89b2e
Revert "Add setting to show/hide title bar (#37428)" (#38756)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/38547
Release Notes:
- Reverted the ability to show/hide the titlebar. This caused rendering
bugs on
macOS, and we're preparing for the redesign which requires the toolbar
being present.
---------
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Conrad Irwin
and
Kirill Bulatov
created
0f7dbf5
editor: Fix APCA contrast split text runs offset (#38751)
Click to expand commit body
Closes #38576
In case of inline element rendering, we can have multiple text runs on
the same display row. There was a bug in
https://github.com/zed-industries/zed/pull/37165 which doesn't consider
this multiple text runs case. This PR fixes that and adds a test for it.
Before:
<img width="600" alt="image"
src="https://github.com/user-attachments/assets/3bdf5f14-988b-45dc-bc8e-c5d61ab35a93"
/>
After:
<img width="600" alt="image"
src="https://github.com/user-attachments/assets/0e1a45ff-c521-4994-b259-3a054d89c4df"
/>
Release Notes:
- Fixed an issue where text could be incorrectly highlighted during
search when a line contained an inline color preview.
Smit Barmase
created
b60f19f
agent: Allow to see the whole command before running it (#38747)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/38528
In the agent panel's `thread_view.rs` file, we have a `render_tool_call`
function that controls what we show in the UI for most types of tools.
However, for some of them—for example, terminal/execute and edit
tools—we have a special rendering so we can tailor the UI for their
specific needs. But... before the specific rendering function is called,
all tools still go through the `render_tool_call`.
Problem is that, in the case of the terminal tool, you couldn't see the
full command the agent wants to run when the tool is still in its
`render_tool_call` state. That's mostly because of the treatment we give
to labels while in that state. A particularly bad scenario because
well... seeing the _full_ command _before_ you choose to accept or
reject is rather important.
This PR fixes that by essentially special-casing the terminal tool
display when in the `render_tool_call` rendering state, so to speak.
There's still a slight UI misalignment I want to fix but it shouldn't
block this fix to go out.
Here's our final result:
<img width="400" height="1172" alt="Screenshot 2025-09-23 at 6 19@2x"
src="https://github.com/user-attachments/assets/71c79e45-ab66-4102-b046-950f137fa3ea"
/>
Release Notes:
- agent: Fixed terminal command not being fully displayed while in the
"waiting for confirmation" state.
Danilo Leal
created
0a261ad
Implement regex_select action for Helix (#38736)
Click to expand commit body
Closes #31561
Release Notes:
- Implemented the select_regex Helix keymap
Prior: The keymap `s` defaulted to `vim::Substitute`
After:
<img width="1387" height="376" alt="image"
src="https://github.com/user-attachments/assets/4d3181d9-9d3f-40d2-890f-022655c77577"
/>
Thank you to @ConradIrwin for pairing to work on this
Jonathan Hart
created
28ed083
Remove experimental jj UI, for now (#38743)
Click to expand commit body
This PR removes the experimental jj bookmark picker that was added in
#30883.
This was just an exploratory prototype and while I would like to have
native jj UI at some point, I don't know when we'll get back to it.
Release Notes:
- N/A
Marshall Bowers
created
74fe3b1
Delete `edit_prediction_tools.rs` (was moved to `zeta2_tools.rs`) (#38745)
Click to expand commit body
Move happened in #38718
Release Notes:
- N/A
Michael Sloan
created
9112554
Clear buffer colors on empty LSP response (#38742)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/32816
Closes https://github.com/zed-industries/zed/issues/38602
https://github.com/user-attachments/assets/26058c91-4ffd-4c6f-a41d-17da0c3d7220
Release Notes:
- Fixed buffer colors not cleared on empty LSP responses
52c467e
Document task filtering based on variables (#38642)
Click to expand commit body
Closes: https://github.com/zed-industries/zed/issues/38525
Documentation follow up for #38614
Task filtering behavior is currently undocumented.
Release Notes:
- N/A
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Chris Ewald
,
Copilot
, and
Kirill Bulatov
created
831de8e
zeta2: Include edits in prompt and add `max_prompt_bytes` param (#38737)
Click to expand commit body
Release Notes:
- N/A
Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Agus Zubiaga
and
Michael Sloan
created
bc52841
Preserve trailing newline in `TerminalOutput::full_text` (#38061)
Click to expand commit body
Closes #30678
This is caused by `TerminalOutput::full_text` triming trailing newline
when creating the "REPL Output" buffer.
Release Notes:
- fix: Preserve trailing newline in `TerminalOutput::full_text`
Release Notes:
- N/A
---------
Co-authored-by: David Kleingeld <davidsk@zed.dev>
Marshall Bowers
and
David Kleingeld
created
3646aa6
language_models: Actually override Ollama model from settings (#38628)
Click to expand commit body
The current problem is that if I specify model parameters, like
`max_tokens`, in `settings.json` for an Ollama model, they do not
override the values coming from the Ollama API. Instead, the parameters
from the API are used. For example, in the settings below, even though I
have overridden `max_tokens`, Zed will still use the API's default
`context_length` of 4k.
```
"language_models": {
"ollama": {
"available_models": [
{
"name": "qwen3-coder:latest",
"display_name": "Qwen 3 Coder",
"max_tokens": 64000,
"supports_tools": true,
"keep_alive": "15m",
"supports_thinking": false,
"supports_images": false
}
]
}
},
```
Release Notes:
- Fixed an issue where Ollama model parameters were not being correctly
overridden by user settings.
Umesh Yadav
created
dc20a41
windows: Encrypt SSH passwords stored in memory (#38427)
Click to expand commit body
Release Notes:
- N/A
---------
Co-authored-by: Julia <julia@zed.dev>
Mostly just breaking a massive wall of text in small paragraphs for ease
of reading/parsing.
Release Notes:
- N/A
Danilo Leal
created
3cf6fa8
agent: Make the panel's textarea font size be controlled by `buffer_font_size` (#38726)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/37882
Previously, every piece of text in the agent panel was controlled by
`agent_font_size`. Although it is nice to only have one setting to tweak
that, it could be a bit misleading particularly because we use
monospaced and sans-serif fonts for different elements in the panel. Any
editor/textarea in the panel, whehter it is the main message editor or
the previous message editor, uses the buffer font. Therefore, I think it
is reasonable to expect that tweaking `buffer_font_size` would also
change the agent panel's usage of buffer fonts.
With this change, regular buffers and the agent panel's message editor
will always have the same size.
Release Notes:
- agent: Made the agent panel's textarea font size follow the font size
of regular buffers. They're now both controlled by the
`buffer_font_size` setting.
Danilo Leal
created
2759f54
vim: Fix cursor position being set to end of line in normal mode (#38161)
Click to expand commit body
Address an issue where, in Vim mode, clicking past the end of a line
after selecting the entire line would place the cursor on the newline
character instead of the last character of the line, which is
inconsistent with Vim's normal mode expectations.
I believe the root cause was that the cursor’s position was updated to
the end of the line before the mode switch from Visual to Normal, at
which point `DisplayMap.clip_at_line_ends` was still set to `false`. As
a result, the cursor could end up in an invalid position for Normal
mode. The fix ensures that when switching between these two modes, and
if the selection is empty, the selection point is properly clipped,
preventing the cursor from being placed past the end of the line.
Related #38049
Release Notes:
- Fixed issue in Vim mode where switching from any mode to normal mode
could end up with the cursor in the newline character
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Dino
and
Conrad Irwin
created
809d3bf
acp: Include only path to @mentioned directory in user message (#37942)
Click to expand commit body
Nowadays, people don't expect @-mentioning a directory to include the
contents of all files within it. Doing so makes it very likely to
consume an undesirable amount of tokens.
By default, we'll now only include the path of the directory and let the
model decide how much to read via tools. We'll still include the
contents if no tools are available (e.g. "Minimal" profile is selected).
Release Notes:
- Agent Panel: Do not include the content of @-mentioned directories
when tools are available
Agus Zubiaga
created
0aad474
zeta2: Use global zeta in Inspector (#38718)
Click to expand commit body
The edit prediction debug tools has been renamed to zeta2 inspector
because it's now zeta specific. It will now always display the last
prediction request context, prompt, and model response.
Release Notes:
- N/A
---------
Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Agus Zubiaga
,
Bennet
, and
Bennet Bo Fenner
created
Closes #38651
`git_panel.set_amend_pending(false, cx);` was being called before
`git_panel.commit_changes(...)` which was causing the commit buffer to
be cleared/reset before actually sending the commit request to git.
Introduced by #35268 which added clear buffer functionality to the
`set_amend_pending` function.
Release Notes:
- Fix git amend on panel sending "Update ..." instead of the original
commit message
- FIx git amend button not working
Alvaro Parker
created
2e87387
Change emulated GPU message on Windows (#38710)
Click to expand commit body
Release Notes:
- N/A
localcc
created
15e75bd
Add show_summary & show_command to the initial_tasks.json (#38660)
Click to expand commit body
Release Notes:
- Added "show_summary" & "show_command" settings to the initial
tasks.json file.
This makes the initial task template match the docs here:
https://zed.dev/docs/tasks