Commit log

b0fd101 file_finder: Fix project root appearing in file paths while searching when hide_root=true (#51530)

Click to expand commit body
Closes #45135

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed project root name appearing in file paths while searching in
file finder.

Giorgi Merebashvili created

3d7d2ca Add autolabeling the guild PRs (#51663)

Click to expand commit body
Quick-and-dirty version as we're trying this out with the first cohort.

Release Notes:

- N/A

Lena created

93f3286 gpui: Add Unicode range for Bengali (#51659)

Cameron Mcloughlin created

491ff01 Fix outline filtering always selecting last match (#50594)

Click to expand commit body
Fixes #29774

When filtering the outline panel, matches with equal fuzzy scores
previously defaulted to the last item due to iterator `max_by_key`
semantics. This caused the bottommost match (e.g. `C::f`) to always be
pre-selected regardless of cursor position.

Changes:
- Select the match nearest to the cursor when scores are tied, using a
multi-criteria comparison: score -> cursor containment depth ->
proximity to cursor -> earlier index
- Move outline search off the UI thread (`smol::block_on` -> async
`cx.spawn_in`) to avoid blocking during filtering
- Wrap `Outline<Anchor>` in `Arc` for cheap cloning into the async task
- Add `match_update_count` to discard results from stale queries

Tests : 
Adds a regression test:
`test_outline_filtered_selection_prefers_cursor_proximity_over_last_tie`
which passes

Video : 
[Screencast from 2026-03-03
17-01-32.webm](https://github.com/user-attachments/assets/7a27eaed-82a0-4990-85af-08c5a781f269)


Release Notes:
Fixed the outline filtering always select last match

---------

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

Om Chillure and Kirill Bulatov created

603e6d6 agent_ui: Disable editing and regeneration for subagent messages (#51654)

Click to expand commit body
We had inconsistent handling of this read-only behavior. Now subagents
should behave the same as agents that don't support editing

Release Notes:

- agent_ui: Fix inconsistent behavior for subagent views when focusing
on previous messages.

Ben Brandt created

2a7bd84 audio: Remove unbounded input queue in favor of 1-element queue (#51647)

Click to expand commit body
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>

Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Improve recovery of audio latency after CPU-intensive period.

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>

Piotr Osiewicz and Jakub Konka created

357ee0f vim: Fix helix select next match panic when search wraps around (#51642)

Click to expand commit body
Fixes ZED-4YP

Sort and deduplicate anchor ranges in do_helix_select before passing
them to select_anchor_ranges. When the search wraps past the end of the
document back to the beginning, the new selection is at a lower offset
than the accumulated prior selections, producing unsorted anchors that
crash the rope cursor with 'cannot summarize backward'.


Release Notes:

- Fixed a panic in helix mode with search selecting wrapping around the
document end

Lukas Wirth created

923b512 vim: Fix dot repeat ignoring recorded register (#50753)

Click to expand commit body
When a command used an explicit register (e.g. `"_dd` or `"add`), the
subsequent dot repeat (`.`) was ignoring that register and using the
default instead.

Store the register at recording start in `recording_register_for_dot`,
persist it to `recorded_register_for_dot` when recording stops, and
restore it in `Vim::repeat` when no explicit register is supplied for
`.`. An explicit register on `.` (e.g. `"b.`) still takes precedence.

This commit also updates the dot-repeat logic to closely follow Neovim's
when using numbered registers, where each dot repeat increments the
register. For example, after using `"1p`, using `.` will repeat the
command using `"2p`, `"3p`, etc.

Closes #49867

Release Notes:

- Fixed vim's repeat . to preserve the register the recorded command
  used
- Updated vim's repeat . to increment the recorded register when using
  numbered registers

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>

Finn Eitreim and dino created

949944a editor: Fix jumbled auto-imports when completing with multiple cursors (#50320)

Click to expand commit body
When accepting an autocomplete suggestion with multiple active cursors
using `CMD+D`, Zed applies the primary completion edit to all cursors.
However, the overlap check for LSP `additionalTextEdits` only verifies
the replace range of the newest cursor.

If user has a cursor inside an existing import statement at the top of
the file and another cursor further down, Zed fails to detect the
overlap at the top of the file. When the user auto-completes the import
statement ends up jumbled.

This fix updates the completion logic to calculate the commit ranges for
all active cursors and passes them to the LSP store. The overlap check
now iterates over all commit ranges to ensure auto-imports are correctly
discarded if they intersect with any of the user's multi-cursor edits.

Closes https://github.com/zed-industries/zed/issues/50314

### Before


https://github.com/user-attachments/assets/8d0f71ec-37ab-4714-a318-897d9ee5e56b

### After


https://github.com/user-attachments/assets/4c978167-3065-48c0-bc3c-547a2dd22ac3

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed an issue where accepting an autocomplete suggestion with
multiple cursors could result in duplicated or jumbled text in import
statements.

Atchyut Preetham Pulavarthi created

be4d38a livekit: Use our build of libwebrtc.a (#51433)

Click to expand commit body
Closes #51339

This should address issues with too new libstdc++.so on older/more
conservative distros such as RHEL9.

Release Notes:

- Relaxed requirement for libstdc++.so available on Linux distros.

Jakub Konka created

ec2ab12 fs: Fix wrong windows cfg (#51644)

Click to expand commit body
Causes releases on windows to fail due to unused imports

Release Notes:

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

Lukas Wirth created

ebd80d7 buffer_diff: Fix panic when staging hunks with stale buffer snapshot (#51641)

Click to expand commit body
When the buffer is edited after the diff is computed but before staging,
anchor positions shift while diff_base_byte_range values don't. If the
primary (HEAD) hunk extends past the unstaged (index) hunk, an edit in
the extension region causes the overshoot calculation to produce an
index_end that exceeds index_text.len(), panicking in
rope::Cursor::suffix.

Fix by clamping index_end to index_text.len(). This is safe because the
computed index text is an optimistic approximation — the real staging
happens at the filesystem level via git add/git reset.

Closes ZED-5R2


Release Notes:

- Fixed a source of panics when staging diff hunks

Lukas Wirth created

a93c66e markdown_preview: Prevent stackoverflows in markdown parsing (#51637)

Click to expand commit body
Fixes ZED-5TR

Release Notes:

- Fixed a stack overflow when parsing deeply nested html in markdown
files

Lukas Wirth created

e5a69d8 lsp: Add clangd readonly token modifier to semantic token rules to highlight constant variables as constant (#49065)

Click to expand commit body
Clangd uses the "readonly" token modifier instead of "constant".
Therefore, "readonly" should be mapped to highlight constant variables
as constants.

Before:
<img width="706" height="48" alt="before"
src="https://github.com/user-attachments/assets/8cc2a310-7825-490b-b868-58ea231612fa"
/>

After:
<img width="762" height="46" alt="after"
src="https://github.com/user-attachments/assets/e271d4cd-cc59-45f9-a8b4-2885857915db"
/>

- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- Added clangd readonly token modifier to semantic token rules to
highlight constant variables as constant.

Co-authored-by: ozacod <ozacod@users.noreply.github.com>

ozacod and ozacod created

8a19ba5 Fix code for setting up agent panel and threads panel in tests

Max Brunsfeld created

3a8fdb7 Rename Sidebar -> ThreadsPanel, get some agent_ui tests passing

Max Brunsfeld created

cbc3966 Remove std::fs::read_link in fs (#50974)

Click to expand commit body
Closes #46307

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [X] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Improved compatibility with mounted VHDs on Windows.

---------

Co-authored-by: John Tur <john-tur@outlook.com>

Alex Mihaiuc and John Tur created

8a7daea ep: Ensure prompt is always within token limit (#51529)

Click to expand commit body
Release Notes:

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

Ben Kunkle created

e482301 http_client: Fix GitHub downloads failing if the destination path exists (#51548)

Click to expand commit body
cc
https://github.com/zed-industries/zed/pull/45428#issuecomment-4060334728

Release Notes:

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

Lukas Wirth created

e79429b agent_ui: Add more UI refinements to sidebar (#51545)

Click to expand commit body
- Move archive button to the header for simplicity
- Hook up the delete button in the archive view
- Improve how titles are displayed before summary is generated
- Hook up keybinding for deleting threads in both the sidebar and
archive view

Release Notes:

- N/A

Danilo Leal created

80acfff which-key: Removed some keys from the filter list that were wrongly filtered (#51543)

Click to expand commit body
Closes #49845

Follow up on #50992

Really simple, just removing some vim commands from the filter list that
are useful enough to justify not being filtered out.

tested to make sure the changes work:
<img width="944" height="1123" alt="Screenshot 2026-03-13 at 11 23
52 PM"
src="https://github.com/user-attachments/assets/23b2db73-d0e7-413b-aef7-efe62e84b542"
/>

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- which-key: fixed filter list for some vim commands

Finn Eitreim created

da8a7e8 markdown: Fix block quote continuation highlighting (#51465)

Click to expand commit body
There is no highlight for block quotes continued on multiple lines

Currently, the ">" on lines 2 and 3 are not highlighted in the same way
as line 1
<img width="291" height="73" alt="image"
src="https://github.com/user-attachments/assets/7a2f2e25-6ee1-40a6-8833-f06ca7ee6ba9"
/>

After this PR,
<img width="249" height="75" alt="image"
src="https://github.com/user-attachments/assets/34a2971f-8061-4d92-ac45-a8043d5d0566"
/>


for this input
```md
> abcd
>
> abcd
```

tree-sitter produces this 
```
(document [0, 0] - [3, 0]
  (section [0, 0] - [3, 0]
    (block_quote [0, 0] - [3, 0]
      (block_quote_marker [0, 0] - [0, 2])
      (paragraph [0, 2] - [1, 1]
        (inline [0, 2] - [0, 6])
        (block_continuation [1, 0] - [1, 1]))
      (block_continuation [2, 0] - [2, 2])
      (paragraph [2, 2] - [3, 0]
        (inline [2, 2] - [2, 6])))))
```

the screenshots in #43043 also show this issue

Release Notes:

- Fixed highlighting of block quotes continued over multiple lines in
markdown files

Kurian Jojo created

2b39fba agent_ui: Mask API key input in Add LLM provider modal (#50379)

Click to expand commit body
Release Notes:

- Added Mask API key input in Add LLM provider modal


<img width="427" height="430" alt="截屏2026-02-28 17 35 22"
src="https://github.com/user-attachments/assets/ae628815-f7df-4ea0-90ea-a23bbd703521"
/>

---------

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Xiaobo Liu and Danilo Leal created

a39201a acp_thread: Stream in agent text in a more continous manner (#51499)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

c536e5f Use correct agent icon

Eric Holk created

7e97a84 Add agent drawer buttons

Eric Holk created

caef129 Combine panel icon button info

Eric Holk created

88b01ae Make panel icons non-optional

Eric Holk created

0a36401 Remove icon_label

Click to expand commit body
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Eric Holk and Max Brunsfeld created

28fa947 agent_ui: Enable deleting a thread from the sidebar (#51532)

Click to expand commit body
Currently only available for native threads.

Release Notes:

- N/A

Danilo Leal created

3d23c87 Remove Panel impl from AgentPanel

Click to expand commit body
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Eric Holk and Max Brunsfeld created

b7266ba Fix panic in crease folding (#51531)

Click to expand commit body
Fixes ZED-5BZ

Release Notes:

- N/A

Conrad Irwin created

ee8ecfa language_models: Make subscription text exhaustive (#51524)

Click to expand commit body
Closes CLO-493.

Release Notes:

- N/A

Neel created

8fc880e ep: Ensure predictions are not refreshed while following (#51489)

Click to expand commit body
Release Notes:

- N/A

Ben Kunkle created

0ccdd9b agent_ui: Auto-expand and then collapse thinking blocks (#51525)

Click to expand commit body
With these newer models that come with different thinking levels, it's
become more frequent to want to see what the thinking is outputting.
Thus far in Zed, the thinking block would show up automatically
collapsed and every time you wanted to see it, you had to expand it
manually. This PR changes that by making the thinking block
automatically _expanded_ instead, but as soon as it's done, it collapses
again.

Release Notes:

- Agent: Improved visibility of thinking blocks by making them
auto-expanded while in progress.

Danilo Leal created

b63a2ab agent_ui: Fix new thread in location setting renderer and flag (#51527)

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

This PR fixes the settings UI rendering of this setting by adding a
default value and also wraps it in the feature flag (only the settings
UI rendering), given it's not widely available just yet.

Release Notes:

- N/A

Danilo Leal created

e9ff7bc Make icon_tooltip not optional

Click to expand commit body
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Eric Holk and Max Brunsfeld created

165c033 seo: Expand /docs/ai/tools examples + cross-link from external-agents (#49758)

Click to expand commit body
Two changes to support pushing `/docs/ai/tools` into the top 10 for
"agent tools" (8,900 monthly volume, currently position 11).

**`docs/src/ai/tools.md`** — adds a concrete usage example to 7 tools:
`diagnostics`, `grep`, `fetch`, `edit_file`, `terminal`, `web_search`,
and `subagent`. Each example shows a realistic scenario rather than
restating the description.

**`docs/src/ai/external-agents.md`** — adds a single sentence
cross-linking to `tools.md` after the supported-agents intro paragraph,
for users who land on that page looking for what the built-in agent can
do.

Katie Geer created

db362f5 extension_ci: Use proper PR description for main repository (#51519)

Click to expand commit body
Release Notes:

- N/A (https://tenor.com/view/ironic-star-wars-chode-gif-5274592)

Finn Evers created

55c9498 docs: Add callouts about student plan for usage and spend limits (#51506)

Click to expand commit body
Add details about how student plan differs in token usage and spend
limits

Release Notes:

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

Katie Geer created

08abc48 glsl: Bump to v0.2.1 (#51517)

Click to expand commit body
This PR bumps the version of the GLSL extension to v0.2.1.

Release Notes:

- N/A

Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>

zed-zippy[bot] and zed-zippy[bot] created

fe7fa37 gpui_macos: Skip IME for Cmd+key events on non-QWERTY layouts (#51394)

Click to expand commit body
Closes #51297

On non-QWERTY layouts, all Cmd+key events are routed through the macOS
IME because `key_char` is always `None` when Cmd is held. For certain
characters (dead keys like backtick, and non-dead keys like ç), the IME
calls `insertText:` instead of `doCommandBySelector:`, consuming the
event before it reaches GPUI's keybinding system or macOS system
shortcuts.

This adds `!platform` to the IME-path condition in `handle_key_event` so
Cmd+key events bypass the IME (except when composing). GPUI handles them
if a binding matches, otherwise `performKeyEquivalent:` returns `NO` and
macOS handles them.

**This won't fully fix Cmd+backtick window cycling by itself** because
Zed's key_equivalents system maps default keybindings onto the physical
backtick key on various layouts. For example, `cmd-'`
(ToggleSelectedDiffHunks) maps to the backtick key on Spanish, `cmd-=`
(IncreaseBufferFontSize) on Scandinavian layouts, `cmd-"`
(ExpandAllDiffHunks) on German/Portuguese/Swiss, and `cmd-}`
(ActivateNextItem) on Spanish-ISO. These Zed bindings shadow the
backtick key and consume the event before macOS can cycle windows. I'd
appreciate guidance on the preferred approach to resolve these
keybinding conflicts -- IMO, Zed's default shortcuts should not be
interfering with Cmd+backtick for any layout.

Release Notes:

- Fixed Cmd+key shortcuts being consumed by the IME on non-QWERTY
keyboard layouts, preventing Zed keybindings and macOS system shortcuts
from working with special characters.

jamarju created

b531c40 glsl/html: Clean up some things (#51516)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

d820b07 extension_ci: Fix main repository version bumps (#51515)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

4e41b0e Merge remote-tracking branch 'origin/main' into agent-drawer

Eric Holk created

933923c docs: Add roles page under Account & Privacy section (#51413)

Click to expand commit body
Add new page detailing the roles available for users in their
organizations.

Release Notes:

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

Katie Geer created

231b0cc glsl: Add `task` and `mesh` path suffixes (#50605)

Click to expand commit body
The GLSL language extension was missing the "task" and "mesh" path
suffixes for task and mesh shaders.
"task" and "mesh" are the official suffixes used in glslang.

Release Notes:

- N/A

Co-authored-by: MrSubidubi <finn@zed.dev>

rcmz and MrSubidubi created

bb6a6e0 ci: Fix jq command (#51510)

Click to expand commit body
Sigh.. The missing flag caused the wrong output to be used, resulting in
an error in the process.

Release Notes:

- N/A

Finn Evers created

b6c5348 Move agent to the drawer

Max Brunsfeld created

ccb2674 extension_ci: Add infrastructure for this repository (#51493)

Click to expand commit body
This will allow us to also use the workflows for this repository, which
will especially come in handy once we revisit provider extensions.

Not perfect, as we will trigger some failed workflows for extensions
that were just added

Release Notes:

- N/A

Finn Evers created