Commit log

922f42f add mouse hover styles

cameron created

153cb34 sloppy impl

cameron created

56e79f0 WIP: Slop

Click to expand commit body
Co-authored-by: Eric Holk <eric@zed.dev>

Mikayla Maki and Eric Holk created

df3e56f agent_ui: Fix test infrastructure for multi-ConnectionView support

Click to expand commit body
- Fix StubAgentConnection session ID generation to use a global atomic
  counter instead of per-connection length, preventing collisions when
  multiple connections exist in the same test.

- Fix test_idle_thread_dropped_when_navigating_away by storing a
  WeakEntity instead of a strong Entity before checking entity drop.
  The previous assertion could never pass because the strong reference
  kept the entity alive.

- Update all three background_views tests to use session ID comparisons
  instead of entity ID comparisons, which is cleaner now that session
  IDs are globally unique.
Co-authored-by: Eric Holk <eric@zed.dev>

Mikayla Maki and Eric Holk created

35914d6 agent_ui: Retain running threads when navigating away

Click to expand commit body
Add support for keeping background agent threads alive in the AgentPanel.
When the user navigates away from a running thread, its ConnectionView is
stashed in a background_views map instead of being dropped. This preserves
execution, event subscriptions, and OS notifications.

Key changes:
- Add background_views HashMap to AgentPanel for retaining running threads
- Replace _active_view_observation with a single detached observation per
  ConnectionView, set up at creation time, that dynamically emits either
  ActiveViewChanged or BackgroundThreadChanged
- Add retain_running_thread to stash running ConnectionViews on navigation
- Add load_agent_thread fast path to promote background threads back to active
- Add parent_threads() API for sidebar consumption
- Add AgentPanelEvent::BackgroundThreadChanged event variant
Co-authored-by: Eric Holk <eric@zed.dev>

Mikayla Maki and Eric Holk created

e69c2bd init new multi-agent approach

Click to expand commit body
co-authored-by: Eric <eric@zed.dev>

Mikayla Maki and Eric created

fb01b19 ep: Replace snapshot events with settled event (#50356)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Max <max@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Ben Kunkle , Max , and Max Brunsfeld created

1123140 agent_ui: Add round of improvements to subagent UI (#50357)

Danilo Leal created

324b1d5 acp: Fix session loading paths for wsl (#50307)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

73ceaec ci: Use clang/++ in Build docs step to build libwebrtc (#50353)

Click to expand commit body
Release Notes:

- N/A

Jakub Konka created

5856bd4 nix: Vendor up-to-date libwebrtc until patched upstream in NixOS (#50352)

Click to expand commit body
Follow-up to #50205

Release Notes:

- N/A

Co-authored-by: Neel Chotai <neel@zed.dev>
Co-authored-by: Josh Robson Chase <josh@robsonchase.com>

Jakub Konka , Neel Chotai , and Josh Robson Chase created

2757aa4 Clamp window size on wgpu (#50329)

Click to expand commit body
Fixes ZED-59P

Release Notes:

- Linux: Fix panic when requested window size was larger than supported
by your GPU

Conrad Irwin created

69d6bfd Avoid panicking in wgpu rendering during resize (#50169)

Click to expand commit body
Fixes Zed-5AW
Fixes Zed-5AP

Claude believes this is the right fix, but would love someone who knows
more about graphics than me to take a look: @reflectronic / @zortax?

The panic is:
```
wgpu error: Validation Error

Caused by:
  In Texture::create_view
    Texture with 'path_intermediate' label is invalid
gpui::platform::wgpu::wgpu_renderer::WgpuRenderer::create_path_intermediate (wgpu_renderer.rs:742)
gpui::platform::wgpu::wgpu_renderer::WgpuRenderer::update_drawable_size (wgpu_renderer.rs:784)
gpui::platform::linux::x11::window::X11WindowStatePtr::set_bounds (window.rs:1169)
gpui::platform::linux::x11::client::X11Client::handle_event (client.rs:902)
```

or:
```
wgpu error: Validation Error

Caused by:
  In Texture::create_view
    Texture with 'path_intermediate' label is invalid

gpui::platform::wgpu::wgpu_renderer::WgpuRenderer::create_path_intermediate (wgpu_renderer.rs:742)
gpui::platform::wgpu::wgpu_renderer::WgpuRenderer::new (wgpu_renderer.rs:274)
gpui::platform::linux::x11::window::X11WindowState::new::{{closure}} (window.rs:698)
gpui::platform::linux::x11::window::X11WindowState::new (window.rs:488)
gpui::platform::linux::x11::window::X11Window::new (window.rs:814)
gpui::platform::linux::x11::client::X11Client::open_window (client.rs:1514)
gpui::platform::linux::platform::<T>::open_window (platform.rs:289)
gpui::window::Window::new (window.rs:1119)
gpui::app::App::open_window::{{closure}} (app.rs:1025)
gpui::app::App::update (app.rs:835)
gpui::app::App::open_window (app.rs:1022)
```

I haven't seen a Wayland equivalent (not sure if that's because it
doesn't happen on Wayalnd or because I havent' seen it yet)

Release Notes:

- Linux: Fixed a panic in the new WPGU renderer during resize

Conrad Irwin created

47c5a31 Dynamically detect surface size limits on WGPU (#50340)

Click to expand commit body
Fallout from https://github.com/zed-industries/zed/pull/50270

Release Notes:

- N/A

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

John Tur and Conrad Irwin created

19190e8 Add glib-2 to script/linux (#50335)

Click to expand commit body
required after livekit bump

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:

- N/A

Conrad Irwin created

30ceb91 Reduce wgpu memory usage during resize (#50030)

Click to expand commit body
Closes #49435

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:

- Linux: Reduced GPU memory usage during resize

Conrad Irwin created

9ca4c60 Fix panic in vim increment (#50311)

Click to expand commit body
Fixes ZED-59V

Release Notes:

- vim: Fixed panic when incrementing a number preceded by a multibyte
character

Conrad Irwin created

51dc09c Fail better when workspace restoration all fails (#50330)

Click to expand commit body
Release Notes:

- Fixed a bug that caused Zed to appear not to open if your workspaces
failed to restore

Conrad Irwin created

654857d Use updated version of our fork of `rust-sdks` (#50205)

Click to expand commit body
Use updated version of our fork of `rust-sdks` with two minor tweaks
that I also submitted for upstreaming.

Release Notes:

- N/A

Jakub Konka created

d39277b xtask: Fix cargo xtask web-examples build on stable (#50325)

Click to expand commit body
Avert thy eyes rust project folks

Release Notes:

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

Lukas Wirth created

112b90c agent_servers: Use more stable hasher for binary artifact downloads (#50315)

Click to expand commit body
Since there aren't as many guarantees on the default hasher, uses sha256
like our other github downloaders.

Release Notes:

- N/A

Ben Brandt created

e762bb9 Remove unwrap() from `lsp::Uri::from_file_path` (#50244)

Click to expand commit body
Fixes ZED-3BM
Fixes ZED-1RT

Release Notes:

- Windows: Fixed a panic registering a path with language servers when
the UNC path cannot be represented by a Rust URI.

---------

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

Conrad Irwin and MrSubidubi created

cabf189 agent: Render subagent labels as they stream in (#50306)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

6796539 agent: Allow jumping from diff to actual file (#50292)

Click to expand commit body
If you place your cursor inside an agent diff you can now jump to the
corresponding file by running `editor: Open excerpts`/`editor: Open
excerpts split`.



https://github.com/user-attachments/assets/cf3dba4e-68b7-4643-b9a9-844c2df58295

Release Notes:

- agent: Allow jumping to a file from a diff inside the agent
conversation with option-enter (`editor: Open excerpts`)

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Bennet Bo Fenner and Danilo Leal created

9c76869 ci: Add check for formatting of query files (#50140)

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

I deliberately decided against adding this in a separete job because
ts_query_ls is very fast when it comes to both formatting these as well
as checking for proper formatting. Will see here how long it takes to
install and whether we might need to adjust to account for the
installation time.

Release Notes:

- N/A

Finn Evers created

d15263e gpui: Gate Linux screen capture APIs behind feature flag (#50300)

Click to expand commit body
We were missing the cfg statements in the `LinuxClient` trait definition

Release Notes:

- N/A

Anthony Eid created

ab7cf50 Revert "sidebar: Zoom temporarily hides sidebar (#50088)" (#50297)

Click to expand commit body
This reverts commit aa3a12b566, because we no longer want a zoomed item
to block the sidebar.

This is because the sidebar is used for navigation and it interrupts a
user's flow if they're scrolling through their active workspaces, and
the sidebar just vanishes.

### Before
<img width="3248" height="2122" alt="image"
src="https://github.com/user-attachments/assets/c1c94b2c-fbbc-41a4-8eb9-47160ecba994"
/>

### After
<img width="1624" height="1061" alt="Screenshot 2026-02-27 at 2 10
24 PM"
src="https://github.com/user-attachments/assets/91d70281-f8ed-4da5-8e50-056370eb2fee"
/>


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:

- N/A

Anthony Eid created

d9ee18a docs: Add footer with links to pages (#50296)

Click to expand commit body
This PR includes a little footer with handy links in all docs pages:

<img width="500" height="532" alt="Screenshot 2026-02-27 at 10  03@2x"
src="https://github.com/user-attachments/assets/f1beb998-ae73-41d1-8fe1-734def58b0c5"
/>

Release Notes:

- N/A

Danilo Leal created

88df73c Add PR 50138 to `.git-blame-ignore-revs` (#50293)

Click to expand commit body
This PR adds https://github.com/zed-industries/zed/pull/50138 to the
`.git-blame-ignore-revs` file.

Release Notes:

- N/A

Finn Evers created

5ed538f Format Tree-sitter queries with `ts_query_ls` (#50138)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

c5f83f5 agent_ui: Registry follow-ups (#50287)

Click to expand commit body
Fixes a few things:

- Don't filter out any agents from the registry
- Sort the agents case-insensitively
- Allow removing custom agents from the settings page as well

Release Notes:

- N/A

Ben Brandt created

a759000 ep: Heuristic to apply patches to files without trailing newline (#50291)

Click to expand commit body
This is a workaround for the fact that ep patches don't have the '\No
newline at end of file` marker.


Release Notes:

- N/A

Oleksiy Syvokon created

c9425f2 agent: Stream `new_text` in `StreamingEditFileTool` (#50240)

Click to expand commit body
We now stream the new text into the buffer as soon as we receive partial
chunks of `new_text`. This is pretty much a full re-write of the way
streaming worked, which is now much closer to how the edit agent works:
- `ToolEditParser` buffers chunks as they stream in, and emits relevant
events (`OldTextChunk`,`NewTextChunk`, ...) that we use to power the
`EditSession` pipeline.
- `EditSession::process_events` takes care of consuming these events and
applying the edits incrementally as chunks stream in. `EditPipeline`
maintains the underlying state machine for each edit.
- We handle whitespace mismatches similar to the edit agent, the code is
shared by moving that logic to `reindent.rs`

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:

- N/A

Bennet Bo Fenner created

78878e5 Decrease review needs of the duplicate bot (#50289)

Click to expand commit body
Turns out you can't query the duplicate issue for the id of the
original/canonical issue, even though GitHub UI displays “Closed as
duplicate of <original issue id>”. Oh well. For the bot performance
tracking all that matters is whether any of its suggestions were the
actual originals, so we're working around the API limitation by querying
the suggested issues instead.

Release Notes:

- N/A

Lena created

511be9a Fix version reporting for duplicates bot (#50286)

Click to expand commit body
Obviously™, we add the bot-commented issues onto the tracking board at
the time of the issues getting closed, which is very much not the same
time as when the bot commented. We could very well be adding the issue
with a v1 bot comment to the board when v2 is already deployed. This
commit stops messing up those stats.

Release Notes:

- N/A

Lena created

96abd03 Fix Cmd+click navigating to file instead of definition (#49012)

Click to expand commit body
## Summary

- Tighten `link_pattern_file_candidates` regex from `\(([^)]*)\)` to
`]\(([^)]*)\)` so only Markdown link syntax `[title](path)` triggers
path extraction from parentheses
- Prevents function call arguments like `do_work(file2)` from being
incorrectly resolved as file paths, which preempted LSP go-to-definition

Closes #48938

## Test plan

- [x] `cargo test -p editor hover_links` — all 12 tests pass
- [x] New unit tests verify: function calls don't extract arguments as
file candidates; Markdown links still extract correctly

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Release Notes:

- Fixed Cmd+click navigating to file instead of definition in certain
cases

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

Wuji Chen and Claude Opus 4.6 created

0fad478 markdown_preview: Fix mermaid diagrams failing to render with empty subgraphs (#50280)

Click to expand commit body
Upgrade mermaid-rs-renderer to 9d8360d9cea10dc4bc86d7b8012cc6e9656e6cf2

Release Notes:

- N/A

Smit Barmase created

365e415 agent_ui: Add more improvements to the subagent UI (#50260)

Click to expand commit body
This PR includes the following adjustments:

- Add divider in the full screen view to expose what part of a
subagent's output is actually sent to the parent model
- Auto-expand the subagent card if there's only one running on a turn
- Adjust errors display within the subagent card

Release Notes:

- N/A

Danilo Leal created

7f09bff gpui: Reduce amount of wasm cfgs in gpui (#50278)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

7e58246 Improve GPU selection on Linux (#50274)

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

Release Notes:

- N/A

John Tur created

f0535dd Relax device limits for WGPU (#50270)

Click to expand commit body
Plus some minor cleanup.

Release Notes:

- Fixed GPU acceleration not working on certain Linux devices.

John Tur created

a217578 docs: Point to the right Bash extension repository (#50271)

Click to expand commit body
Closes #50261.

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~ N/A
- [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:

- N/A

Kunall Banerjee created

1c39e19 languages: Reorder type identifier highlights in JavaScript (#49325)

Click to expand commit body
Move general type identifier rules before class-specific ones to ensure
proper precedence in the syntax highlighting query.

Closes #49226.

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
- [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 class names were not highlighted correctly in
JavaScript files

Kunall Banerjee created

9ff0b02 Include optional model version with EP acceptance and rejection messages (#50262)

Click to expand commit body
Release Notes:

- N/A

Max Brunsfeld created

d4e89f9 Add edit prediction evals that test related excerpt usage (#50256)

Click to expand commit body
I've also fixed a race condition with the programmatic context retrieval
in the CLI, which was causing no excerpts to be fetched for the Rust
examples.

Release Notes:

- N/A

Max Brunsfeld created

703bc36 Revert "outline: Refactor outline render_item to reuse existing TextStyle (#49166)" (#50258)

Click to expand commit body
This reverts commit 69e5ff7c76faa888ac71ff1d83cd335fb183b065.

Release Notes:

- N/A

Kirill Bulatov created

0859cce Add Vercel AI gateway provider integration (#50207)

Click to expand commit body
## Summary
- add a new `ai_gateway` language model provider in zed using the
openai-compatible chat completions path
- register ai gateway in provider wiring, settings schema, and default
settings
- add vercel ai gateway icon and provider list entry
- parse ai gateway model capabilities from tags (`tool-use`, `vision`)
and supported parameters
- clean up ai gateway oidc auth failures into a concise actionable error
message

Release Notes:

- Added Vercel AI Gateway as a new LLM provider in Zed.

dancer created

f1c5ed3 Add folder_paths for project grouping (#50249)

Click to expand commit body
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:

- N/A

Mikayla Maki created

cbbcb1e acp: Fix stale ACP reasoning-effort options when model switch keeps same config IDs (#50246)

Click to expand commit body
## Problem
Zed's ACP config-options UI was only rebuilding selectors when the set
of config option IDs changed.

For many model switches, the IDs stay the same (`mode`, `model`,
`reasoning_effort`) while the valid values for `reasoning_effort` change
by model. As a result, the picker could show stale values (for example,
missing `xhigh` on `gpt-5.3-codex`, or showing extra `xhigh` after
switching away).

This is especially problematic for providers like Copilot that expose
multiple agents/models with different reasoning-level capabilities.

## Fix
Rebuild ACP config-option selectors on every `config_option_update`, not
only when config IDs change.

This refreshes cached picker entries whenever model-specific option
values change, even if option IDs are unchanged.

## User Impact
- Reasoning-effort picker now reflects the selected model immediately on
Claude <-> GPT transitions.
- Prevents stale or invalid effort choices in ACP sessions.

## Validation
- Manual validation: switch across models with different
reasoning-effort sets and confirm picker updates immediately.
- Local `cargo check -p agent_ui` remains blocked by unrelated
pre-existing `livekit-protocol` compile errors in this checkout.

## Files Changed
- `crates/agent_ui/src/acp/config_options.rs`

Release Notes:

- acp: Fix for config selectors not always being refreshed

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

Nikhil Pandey and Ben Brandt created

da2bed1 agent: Rename run_turn to send in subagent handle (#50242)

Click to expand commit body
Align better with naming in thread. I grabbed the wrong function name :D

Release Notes:

- N/A

Ben Brandt created