Commit log

a70c295 python: Fix conda environment not auto-activated in remote terminal (#50895)

Click to expand commit body
Closes #50619

In the conda activation script building procedure, Zed currently
performs a file check for the conda executable on the client side. When
in remote development, this check always fails because the file exists
on the remote host, not the local machine. Since `pet` already handles
existence checks, removing this redundant check allows the activation to
proceed. It is also better to let any potential issues (like
permissions) show up in the terminal rather than silently skipping the
activation.

This addresses the root cause for remote development, which is different
from the approach in #50715 that focuses on shell hooks.

**The video recording**


https://github.com/user-attachments/assets/62967351-e3c5-4814-aec4-b2332940e7e3

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 conda environment not auto-activating in the terminal during
remote development sessions.

Xin Zhao created

7040484 Fix sidebar selections (#50900)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Eric Holk <eric@zed.dev>

Mikayla Maki and Eric Holk created

a0ba509 Fix provisional thread title (#50905)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

9acb32f Linux: Handle device lost with wgpu (#50898)

Click to expand commit body
Release Notes:

- Linux: Handle GPU device loss gracefully

Conrad Irwin created

3b3ffc0 Add GPT-5.4 and GPT-5.4-pro BYOK models (#50858)

Click to expand commit body
Add GPT-5.4 and GPT-5.4-pro as Bring Your Own Key model options for the
OpenAI provider.

**GPT-5.4** (`gpt-5.4`):
- 1,050,000 token context window, 128K max output
- Supports chat completions, images, parallel tool calls
- Default reasoning effort: none

**GPT-5.4-pro** (`gpt-5.4-pro`):
- 1,050,000 token context window, 128K max output
- Responses API only (no chat completions)
- Default reasoning effort: medium (supports medium/high/xhigh)

Also fixes context window sizes for GPT-5 mini and GPT-5 nano (272K →
400K) to match current OpenAI docs.

Closes AI-78

Release Notes:

- Added GPT-5.4 and GPT-5.4-pro as available models when using your own
OpenAI API key.

Richard Feldman created

ab824a0 Use excerpt coordinates consistently in parse_zeta_model_output (#50894)

Click to expand commit body
Fixes a bug introduced in
https://github.com/zed-industries/zed/pull/50850, where we used
incorrect coordinates for the editable range.

Release Notes:

- N/A

Max Brunsfeld created

ca5027c Fix OpenGL initialization on Intel HD 4000 (#50891)

Click to expand commit body
I think we might just get it working this time

Release Notes:

- N/A

John Tur created

61d9696 zeta: Add variable edit format (#50850)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>

Max Brunsfeld , Jakub Konka , Oleksiy Syvokon , and Ben Kunkle created

da9d548 zeta2: Don't remove redundant excerpts on the client (#50886)

Click to expand commit body
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 *or* Added/Fixed/Improved ...

Ben Kunkle created

a1d8c52 Separate the sidebar click targets (#50885)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

41cfb82 Fix crash in `start_display_link` (#50875)

Click to expand commit body
Fixes ZED-5G8

If `DisplayLink::new` fails, `frame_requests` is dropped . It is not
valid to destroy a DispatchSource that is not `resume()`d. So, ensure we
call `resume()` before there's a chance for anything to fail.

Release Notes:

- Fixed a crash that could occur on macOS when changing monitor
configurations

John Tur created

c5f3a1d ep: Indicate active experiment (#50870)

Click to expand commit body
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 *or* Added/Fixed/Improved ...

Ben Kunkle created

90ae708 agent: Gate agent registry refresh behind Disable AI setting (#50868)

Click to expand commit body
Make sure we don't download this file if disable_ai is enabled

Release Notes:

- N/A

Ben Brandt created

0d90751 agent_ui: Always show smaller subagent preview (#50864)

Click to expand commit body
Remove the conditional fullscreen path for subagent tool calls so
expanded content consistently renders as a capped preview with the
overlay and fixed height. Also add a pointer cursor to the maximize
control to clarify clickability.

Release Notes:

- N/A

Ben Brandt created

a8caf07 agent_ui: Remove feature upsell banners from agent registry (#50862)

Click to expand commit body
These aren't built in anymore!

Release Notes:

- N/A

Ben Brandt created

f05d756 agent: Add telemetry events for subagents (#50849)

Click to expand commit body
Adds five telemetry events to track subagent lifecycle and user
interactions:

- **Subagent Started** — fires on creation or resumption, includes
parent session, subagent session, depth, and whether it was resumed
- **Subagent Completed** — fires when `SpawnAgentTool` finishes,
includes subagent session and status (completed/error)
- **Subagent Toggled** — fires when the user expands or collapses a
subagent card
- **Subagent Stopped** — fires when the user clicks Stop on a running
subagent
- **Subagent Maximized** — fires when the user clicks Maximize to
navigate into a subagent
 
Release Notes:
 - N/A

Katie Geer created

6c914ad ep: Capture example as part of settled events (#50847)

Click to expand commit body
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 *or* Added/Fixed/Improved ...

Co-authored-by: Agus <agus@zed.dev>

Ben Kunkle and Agus created

9afeb4e Implement new Multi Agent UI (#50534)

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

---------

Co-authored-by: Eric <eric@zed.dev>
Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Anthony Eid <anthony@zed.dev>
Co-authored-by: John Tur <john-tur@outlook.com>

Mikayla Maki , Eric , cameron , Danilo Leal , Anthony Eid , and John Tur created

0e5b4e1 language_models: Defer fetching models for the Zed provider until fully signed-in (#50857)

Click to expand commit body
This PR updates the model-fetching behavior for the Zed provider to wait
until the user is fully signed-in before we attempt to fetch the models.

We now subscribe to the `UserStore` and listen for the
`PrivateUserInfoUpdated` event. If we receive that event and the user is
not currently signed out, then we should be all set to fetch the models.

Closes CLO-424.

Release Notes:

- N/A

Marshall Bowers created

1f918fb Remove agent git worktree feature flag (#50778)

Click to expand commit body
Remove the separate `AgentGitWorktreesFeatureFlag` and replace all its
checks with the existing `AgentV2FeatureFlag`. The git worktree
functionality is now gated behind the same flag as agent v2.

Changes:
- Removed `AgentGitWorktreesFeatureFlag` from `feature_flags`
- Replaced all `has_flag::<AgentGitWorktreesFeatureFlag>()` checks with
`has_flag::<AgentV2FeatureFlag>()`
- Simplified toolbar condition that was redundantly checking both flags
- Updated tests accordingly

Closes AI-73

Release Notes:

- N/A

Richard Feldman created

94154aa picker: Prevent clicking non-selectable entries from confirming selection (#50705)

Click to expand commit body
Closes #50627

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
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)


### Videos:
Before:

https://drive.google.com/file/d/1PahGhfx-wq9cyNqqMlctb9Np7M1Meo71/view?usp=sharing
After:

https://drive.google.com/file/d/135W6MQ9hKBurw5Z7YpHQQhoQwkh1NvUb/view?usp=sharing


Release Notes:

- Fixed clicking on non-selectable picker entries (e.g. section headers)
confirming the currently selected item.

João Soares created

8e5356c ep: Fix infinite loop of EP requests in some cases (#50833)

Click to expand commit body
When a diagnostic-triggered prediction returns no edits, don't fall back
to requesting another diagnostic prediction. This was causing an
infinite loop that burned through the API rate limit until hitting 429
errors.


Release Notes:

- N/A

Oleksiy Syvokon created

27a9b60 ep: Fix race condition resulting in duplicate requests (#50830)

Click to expand commit body
When multiple `queue_prediction_refresh` calls land in the same
synchronous frame, all spawned tasks would read the same throttle state
and each send an identical cloud request.

Now the second task would see that the first request has been sent and
would quit.

Release Notes:

- N/A

Oleksiy Syvokon created

95adddf language_models: Avoid debug formatting in Copilot Chat, OpenAI errors (#50824)

Click to expand commit body
See these screenshots:

<img width="832" height="564" alt="image"
src="https://github.com/user-attachments/assets/64d04fe7-4be7-4fbf-8536-b4b7a2ea62ed"
/>

<img width="836" height="1094" alt="image"
src="https://github.com/user-attachments/assets/247b215c-8e7e-4eff-8e08-b1b9ee8894b9"
/>

Release Notes:

- Fixed some error messages in OpenAI/Copilot Chat conversations that
were using the Debug representation.

Tom Houlé created

0be32ba markdown_preview: Enable parser options individually (#50440)

Click to expand commit body
Closes #50170.

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:

- Enable parser options individually to avoid rendering issues

Kunall Banerjee created

3572071 agent: Add debug logging to `StreamingEditFileTool` (#50826)

Click to expand commit body
Add some debug logging to the streaming edit file tool, to make it
easier to debug errors.

Can be enabled with 
```
"log": {
  "agent": "debug",
}
```

Release Notes:

- N/A

Bennet Bo Fenner created

493611a docs: Fix typo in consent banner hide check (#50823)

Click to expand commit body
Fixes a typo in the consent banner check on docs pages, which makes the
opt-out logic work correctly.

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

Gaauwe Rombouts created

38e7f41 agent: Fix deadlock when LLM API returns an error while streaming tool input (#50813)

Click to expand commit body
Nightly only since no tool is using streaming on Preview.

Tools that used streaming could deadlock when the upstream LLM API
stream exited early without ever sending a ToolUse with `input_complete`
set to `true`. This is now fixes by manually dropping the tool input
channels.

Release Notes:

- N/A

Bennet Bo Fenner created

3fb377b git: Side by side spacer mouse cursor (#50814)

Cameron Mcloughlin created

783a526 ep: Add V0304SeedNoEdits prompt format (#50809)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

1a8005f editor: Respect `read_only` in `newline_below` (#50804)

Click to expand commit body
Turns out `Editor::newline_below` was not respecting the `read_only`
flag because it uses buffer.edit. `Editor::newline` and
`Editor::newline_above` behaved correctly because they used
`editor.edit` which ignores edits if `read_only` is true.

Added an early return if the editor is read only, also added it to
newline/newline_above for clarity.

Release Notes:

- Fixed an issue where newlines could be inserted into read-only editors

Bennet Bo Fenner created

b5881c9 workspace: Fix autosave on buffer change in multibuffer (#50686)

Click to expand commit body
Fixes #50526
Fixes https://github.com/zed-industries/zed/issues/42841
Fixes https://github.com/zed-industries/zed/issues/49875

### Summary

Fix `autosave: on_focus_change` not firing reliably when leaving editors
with nested focus targets (e.g. multibuffer/search flows).

### Root cause

Autosave on focus change was wired to `on_blur` of the item focus
handle.
`on_blur` only fires when that exact handle is the focused leaf, which
misses common descendant-to-outside focus transitions.

## Fix

In `crates/workspace/src/item.rs`, switch autosave subscription from:
     - `cx.on_blur(&self.read(cx).focus_handle(cx), ...)`

to:
     - `cx.on_focus_out(&self.read(cx).focus_handle(cx), ...)`

Autosave behavior and guards remain unchanged:
- only for `AutosaveSetting::OnFocusChange`
- only when focus truly left the item (`!contains_focused`)
- skipped when modal is active (`!has_active_modal`)

### Impact

- Fixes missed autosaves when moving focus from item descendants to
other UI (terminal, file tree, search inputs, etc.).
- No behavior change for other autosave modes (`off`, `after_delay`,
`on_window_change`).

### Video
[Screencast from 2026-03-04
15-23-07.webm](https://github.com/user-attachments/assets/81135999-320f-40f3-9673-7c0460e5a14a)




Release Notes:

- Fixed an issue where `"autosave": "on_focus_change"` would not
reliably work in multibuffers.

---------

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

Om Chillure and MrSubidubi created

ba220fc mistral: Enable streaming tool calls (#50793)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

c091c90 util: Fix env load issues on Windows due to quoting (#50782)

Click to expand commit body
Closes #47823 

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] No UI changes
 
Release Notes:

- Solves the issue where env variables failed to load when a project
with dir path had `'`(single quote) in them, for example:
`C:\Temp\O'Brien\project_1`.
- added a zed pre-quote for directory paths and zed executable 
- handled pwsh, nushell, cmd, fish, posix, csh, tcsh, rc, xonsh, elvish
based terminals
-  uses `try_quote` for quoting shell paths

Amaan created

df0b3de agent: Simplify EditPipeline state in StreamingEditFileTool (#50792)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

2991b05 ep: Make --repetitions work with Anthropic and OpenAI batches (#50789)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

33c78fa Use historical typewriter names for agent branch names (#50611)

Click to expand commit body
Replace the auto-generated `agent-[hash]` branch naming scheme with
names based on historical typewriter models (e.g. `olivetti-a3f9b2c1`,
`selectric-7d2e4f01`).

A static list of 49 typewriter names is used as the pool. When selecting
a name, existing branch names are checked—each branch is split on its
last `-` to extract the typewriter prefix, and any taken prefixes are
excluded from the candidate set. A random name is then picked from the
remaining candidates and suffixed with an 8-character alphanumeric hash.

The name selection logic accepts injected RNG and a list of disallowed
names, making it straightforward to test deterministically with
`#[gpui::test]` and `StdRng`.

Closes AI-71

(No release notes because this is feature-flagged.)

Release Notes:

- N/A

Richard Feldman created

c0f5d21 lsp: Add semantic token rules for Go (#50641)

Click to expand commit body
gopls reports Go `const` declarations as `variable` with the `readonly`
modifier. Add a Go-specific semantic token rule to map this to the
`constant` theme style, matching VS Code's behavior.

<img width="465" height="32" alt="image"
src="https://github.com/user-attachments/assets/e0bc8a60-2275-4f81-9185-8b86c51d3d08"
/>

Closes #50642

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 *or* Added/Fixed/Improved ...

Nianyu Shen created

3959921 Fix OpenGL initialization on Intel HD 4000 (#50772)

Click to expand commit body
For real this time?

Release Notes:

- N/A

John Tur created

608185b fix: Implement raw-window-handle traits for X11Window (#50768)

Click to expand commit body
I'm embedding a 3D viewport inside GPUI by creating a child window with
its own surface that fits the bounds of a GPUI element, and I need
access to the raw window handle of the current window to manage it.
Right now on X11 this is stubbed as unimplemented and results in a
panic. I've copied most of the same implementation from the associated
`RawWindow` into `X11Window`.

Small clip of a Bevy app embedded inside GPUI with a popover that draws
above the 3d surface to show testing was done:


[Screencast_20260304_182657.webm](https://github.com/user-attachments/assets/829f9197-1613-41a7-af83-d377f3154751)


 
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
- [ ] 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:

- Added implementations of `rwh::HasDisplayHandle` and
`rwh::HasWindowHandle` for `X11Window`

Gary Tierney created

5418013 agent_ui: Add "Paste as Plain Text" to message editor context menu (#50625)

Click to expand commit body
Add the existing `PasteRaw` action to the right-click context menu in
the message editor, making it more discoverable. Previously it was only
available via the keyboard shortcut (Cmd+Shift+V / Ctrl+Shift+V) or
the command palette.

Release Notes:

- Added "Paste as Plain Text" to the agent panel message editor
right-click menu

Eric Holk created

1fec1ca ci: Clean up some of our workflows (#50499)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

0c43ce8 nix: Hide pipewire lazy trampolines in libwebrtc when linking as SO (#50743)

Click to expand commit body
This would cause a null pointer dereference when trying to open an audio
device in Zed. More context:
https://github.com/NixOS/nixpkgs/pull/478907/changes#r2885943326

cc @cameron1024 

Release Notes:

- Fixed crash when trying to join a channel/test audio on Nix-built Zed
on Linux.

Jakub Konka created

53fca25 git_ui: Add ability to delete git worktrees from picker (#50015)

Click to expand commit body
Adds the ability to delete a git worktree directly from the worktree
picker, inspired by the existing branch delete functionality.


(`cmd-shift-backspace` on macOS, `ctrl-shift-backspace` on
Linux/Windows).

Screenshot:
<img width="1288" height="466" alt="Screenshot 2026-02-24 at 16 01 05"
src="https://github.com/user-attachments/assets/6ca5048d-63fa-4295-a578-358904bb92eb"
/>

Release Notes:

- Added the ability to delete a git worktree from the worktree picker

---------

Co-authored-by: Anthony Eid <anthony@zed.dev>

David Alecrim and Anthony Eid created

e717268 git: Allow committing in restrictive worktrees (#50749)

Click to expand commit body
follow up on: https://github.com/zed-industries/zed/pull/50649

When committing in a restrictive workspace we avoid running git hooks
instead of failing the commit because hooks aren't allowed. I also
passed in more git cli hardening configurations to use when Zed spawns
git commands

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:

- N/A

Anthony Eid created

67c2c34 Include repo_url in edit prediction requests when data collection is enabled (#50745)

Click to expand commit body
Release Notes:

- N/A

Max Brunsfeld created

3f1c833 agent: Cleanup `StreamingEditFileTool` (#50725)

Click to expand commit body
- Adds logging if tool fails
- Reduces boilerplate in test 
- Simplified code in a bunch of places

Release Notes:

- N/A

Bennet Bo Fenner created

9938ebe editor: Add support for no auto-indent on enter (#47751)

Click to expand commit body
Closes #47550

Changes the `auto_indent` setting from a boolean to an enum with three
modes:

- **`full`** (default): Adjusts indentation based on syntax context when
typing (previous `true` behavior)
- **`preserve_indent`**: Preserves the current line's indentation on new
lines, but doesn't adjust based on syntax
- **`none`**: No automatic indentation - new lines start at column 0
(previous `false` behavior)

This gives users more control over indentation behavior. Previously,
setting `auto_indent: false` would still preserve indentation on new
lines, which was unexpected.

Includes:
- Settings migration from boolean to enum values
- Settings UI dropdown renderer

Release Notes:

- Changed `auto_indent` setting from boolean to enum with `full`,
`preserve_indent`, and `none` options

<img width="1373" height="802" alt="Screenshot 2026-01-27 at 16 32 10"
src="https://github.com/user-attachments/assets/b629e1d8-7359-4853-8222-abfa71d6ebe2"
/>

---------

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

Oliver Azevedo Barnes and MrSubidubi created

4d42d3a docs: Remove Preview callouts for stable release (#50736)

Click to expand commit body
This PR removes Preview callouts from documentation for features that
are now in Stable.

## Files Updated

• docs/src/collaboration/overview.md
• docs/src/debugger.md
• docs/src/configuring-languages.md
• docs/src/troubleshooting.md
• docs/src/outline-panel.md
• docs/src/getting-started.md
• docs/src/tasks.md
• docs/src/ai/edit-prediction.md
• docs/src/ai/llm-providers.md

## What This Does

Removes callouts like:
```markdown
> **Preview:** This feature is available in Zed Preview. It will be included in the next Stable release.
```

And:
```markdown
> **Changed in Preview (v0.XXX).** See [release notes](/releases#0.XXX).
```

These features are now in Stable, so the callouts are no longer needed.

Release Notes:

- N/A

Joseph T. Lyons created

9316c4a Fix crash metrics ID (#50728)

Click to expand commit body
Before this change the crash handler uploaded crashes before sign-in had
happened.

Now we get the metrics_id correctly. This allows for us to tie crashes
reported
on Github to users who have opted into telemetry (users who have opted
into
crash reporting but not telemetry will not have a metrics_id).

Release Notes:

- Fixed crash reporter metadata collection

---------

Co-authored-by: Miguel Raz Guzmán Macedo <miguel@zed.dev>

Conrad Irwin and Miguel Raz Guzmán Macedo created