5db8d6d
agent: Only use AgentSessionInfo in history (#50933)
Click to expand commit body
Previously we required AgentSessionInfo all over the place, which meant
there were lots of unnecessary fake ones created all over the place.
Made the methods and functions only take the data they need so we only
use these in history contexts now, as intended.
Release Notes:
- N/A
Ben Brandt
created
8a38d2d
agent_ui: Adjust empty state for the panel for v2 (#50932)
Click to expand commit body
Making the message editor take all the available space, and improving
the loading state for external agents a bit.
Release Notes:
- N/A
- Make clicking on the project header collapse/expand the group as
opposed to activating the workspace
- Added the "threads" label close to the sidebar toggle button
- Made the open folder icon button open the file finder directly as
opposed to the recent projects popover
Release Notes:
- N/A
Danilo Leal
created
61e7032
agent_ui: Adjust panel toolbar design for v2 (#50927)
Click to expand commit body
Adding some adjustments so the toolbar looks more like the designs we've
been working on. All that changes here are only valid for the v2 feature
flag. Haven't changed anything for today's production version.
Release Notes:
- N/A
Danilo Leal
created
77fa028
Ensure consistent newline behavior in auto-height editors with JetBrains keymap (#47595)
Click to expand commit body
Add an explicit `Editor && mode == auto_height` context block. This
ensures that `Shift+Enter` and `Ctrl+Enter` correctly insert a newline
at the cursor position in editors like the AI Agent Panel,
preventing them from inheriting conflicting overrides (e.g., JetBrains
mapping `Shift+Enter` to `editor::NewlineBelow`).
Closes #47269
Release Notes:
- Fixed an issue where `Shift+Enter` would insert a newline at the end
of the text instead of the cursor position in the Agent Panel when using
certain keymaps.
5289bea
nix: Coerce rel path to cargo wrapper script into abs path (#50919)
Click to expand commit body
This allows you to now re-use our Zed flake in different side projects
with cargo wrapper script having its path correctly resolved.
Say you have this dir structure:
```
$HOME/dev/zed
$HOME/dev/something
```
Then this now works:
```
$ cd $HOME/dev/something
$ nix develop ../zed
$ cargo version
cargo 1.93.0 (083ac5135 2025-12-15)
```
Release Notes:
- N/A
Jakub Konka
created
49ef205
terminal: Fix drag-and-drop in vertical terminal panels (#49825)
Click to expand commit body
Closes #49800
Adds `handle_drop` to Item & ItemHandle, which allows an active item in
a pane to consume drop events before the pane does.
Release Notes:
- terminal: Fix drag-and-drop not working in vertical terminal panels
claire
created
e3d0a35
Fix `formatter: "auto"` to skip language servers that can't format (#50661)
Click to expand commit body
Closes #50631
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)
Release Notes:
- Fixed `formatter: "auto"` silently doing nothing when the first
language server for a language doesn't support formatting (e.g., Dependi
before Tombi for
TOML).
João Soares
created
d2952be
zed: Fix shared agent thread links not opening (#50915)
Click to expand commit body
Release Notes:
- Fixed an issue where shared agent thread URLs would not open.
Smit Barmase
created
e9ffef0
editor: Hide hover links when mouse cursor is not visible (#50424)
Click to expand commit body
When I am in the middle of editing, pressing Ctrl would
counter-intuitively highlight links even when the mouse cursor is
hidden. This change considers the state of the mouse cursor before
painting links on hover.
Before: Modifier pressed, cursor hidden, link visible
<img width="506" height="518" alt="image"
src="https://github.com/user-attachments/assets/82a59e83-e3cb-490f-b292-148686ec569d"
/>
After: Modifier pressed, cursor hidden (red dot indicates current cursor
position)
<img width="408" height="298" alt="image"
src="https://github.com/user-attachments/assets/c19ed83c-4778-4890-97b9-5155cdcf658b"
/>
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 spurious link highlighting when mouse cursor is hidden
Fixes #50776
Karthik Nishanth
created
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.
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
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
5bb76ee
Merge branch 'zed-industries:main' into bedrock-thinking-toggle-integration
Shardul Vaidya
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
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 ...
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>
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
2ca8510
bedrock: Add Haiku 4.5 to thinking-capable models
Click to expand commit body
Haiku 4.5 supports extended thinking but not adaptive thinking.
Co-authored-by: Ona <no-reply@ona.com>
Shardul Vaidya
and
Ona
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
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.
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>
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