Commit Graph
28017 Commits
Author SHA1 Message Date
Austin CummingsandKirill Bulatov c501d389e9 Fix OpenFiles action not respecting use_system_path_prompts setting (#47027)
The OpenFiles action was always using the system file picker dialog,
ignoring the use_system_path_prompts setting. This adds a
workspace-level handler that calls prompt_for_open_path, which respects
the setting, instead of falling through to the global handler.

Closes #46386

Release Notes:

- Fixed "workspace: open files" not respecting "use_system_path_prompts"
setting

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>
2026-02-19 04:02:29 +02:00
Cole Miller b13f3789ff git: Mitigate panic in split diff (#49546)
Release Notes:

- N/A
2026-02-18 20:16:04 -05:00
Eric Holk b1db5de445 Fix crash: vim paste panics on editor-copied entire-line selections (#49134)
When clipboard data was produced by the editor's copy/cut with multiple
entire-line selections, vim's paste would panic with `byte index N is
out of bounds`.

The editor's `do_copy` and `cut_common` skip the `\n` separator between
clipboard selections when the previous selection was an entire-line
selection (because the text already ends with `\n`). However, vim's
paste code unconditionally did `start_offset = end_offset + 1`, always
assuming a `\n` separator exists between every pair of selections. This
caused the accumulated offset to exceed the text length, resulting in a
string slicing panic.

The fix checks `clipboard_selection.is_entire_line` to decide whether to
skip the separator, matching the behavior of the editor's own `do_paste`
method. The same fix is applied to both the vim and helix paste
implementations.

Release Notes:

- Fixed a crash when using vim paste on clipboard data copied with the
editor's copy command containing multiple entire-line selections.
2026-02-18 15:55:38 -08:00
Marshall Bowers 985167689d collab: Remove unused AccessToken model (#49542)
This PR removes the `AccessToken` database model and its related
queries, as they are no longer used.

Closes CLO-306.

Release Notes:

- N/A
2026-02-18 23:47:11 +00:00
Marshall Bowers a0347b8ade collab: Validate access tokens through Cloud (#49535)
This PR updates Collab to make it validate access tokens through Cloud
instead of doing it in-house.

We're reusing the `GET /client/users/me` endpoint—which is what we also
call on the client—to validate the user's access token.

We only need to do this when establishing a WebSocket connection, so the
increased latency of a network hop shouldn't be a problem.

Closes CLO-308.

Release Notes:

- N/A
2026-02-18 18:20:52 -05:00
Kirill Bulatov 3ee30231b4 Revert the gutter width limitation for multi buffers (#49536)
Follow-up of https://github.com/zed-industries/zed/pull/49374

This looks really bad when Zed zooms in and then out.

- N/A
2026-02-18 23:18:20 +00:00
Richard Feldman e8a72de57f Add agent worktree directory setting + worktree info persistence (#49139)
Add `agent_worktree_directory` to `GitSettings` for configuring where
agent worktrees are stored (default: Zed data dir). Remove `Copy` derive
from `GitSettings`/`GitContentSettings` (incompatible with String field)
and fix downstream `.as_ref().unwrap()` call sites.

Define `AgentGitWorktreeInfo` (branch, worktree_path, base_ref) and add
it to `DbThread` + `DbThreadMetadata` for persistence and session list
display.

Closes AI-33

Release Notes:

- N/A
2026-02-18 22:20:31 +00:00
Danilo LealandBennet Bo Fenner fc80cd4c25 git_ui: Add "Review Branch" with agent feature (#49513)
This PR adds a button in the `git: branch diff` view that allows to
quickly and easily send the entire diff to your last used agent for a
review. What this does is automatically submits a (pre-written and
generic) prompt to the last agents you were using in the agent panel
with the whole content of your diff.

<img width="750" height="1964" alt="Screenshot 2026-02-18 at 3  35@2x"
src="https://github.com/user-attachments/assets/493d8cf4-4815-4b01-91a0-6a39ad6219fe"
/>

Release Notes:

- Added a "Review Branch" button in the `git: branch diff` view so that
the whole diff can be quickly sent for review to an agent.

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-02-18 19:18:15 -03:00
Kurian Jojo 128d3a4f2f Revert "Added support for dismissing the toolchain path selector via … (#49504)
…`esc` (#48201)"

This reverts commit ddebf3b74b.

Select toolchain path dialog immediately dismisses upon selecting a
path, preventing the addition of new toolchains

- OpenPathDelegate emits DismissEvents in the `confirm` function too
- when the selection is confirmed, DismissEvent is emitted
- ToolchainSelector calls cancel because it receives the DismissEvent,
and it goes to the Search State
- This prevents the selected toolchain from being resolved and the
ScopePicker being presented

cc: @JosephTLyons 

Release Notes:

- Fixed a regression where the toolchain path selector would immediately
dismiss upon selecting a path, preventing the addition of new
toolchains.
2026-02-18 17:07:10 -05:00
Finn Evers 92979bc902 sidebar: Improve toggle button placement when fullscreen on macOS (#49524)
| Before | After |
| --- | --- |
| <img width="173" height="66" alt="grafik"
src="https://github.com/user-attachments/assets/9e406cf7-67bc-45d9-97dc-6e18515d0206"
/> | <img width="189" height="70" alt="grafik"
src="https://github.com/user-attachments/assets/b37a0c64-4130-4521-be7e-084a69c5a9c8"
/> |



Release Notes:

- N/A
2026-02-18 22:45:49 +01:00
Kirill BulatovandCole Miller e477b545b7 Enable type on search by default for the project search (#49374)
Deals with https://github.com/zed-industries/zed/issues/9318
Re-lands https://github.com/zed-industries/zed/pull/42889 with more
fixes to reduce overall flickering

Release Notes:

- Enabled type on search by default for the project search

---------

Co-authored-by: Cole Miller <cole@zed.dev>
2026-02-18 21:39:45 +00:00
Ben Brandt a3606082ec anthropic: Remove deprecated models (#49522)
Release Notes:

- anthropic: Removed models that have been deprecated from their API.
2026-02-18 20:19:38 +00:00
Tom HouléandMarshall f4e7e613a9 cloud_llm_client: Delete unused variants of CompletionRequestStatus (#49516)
Small clean up commit.

Co-authored-by: Marshall <marshall@zed.dev>

Release Notes:

- N/A
2026-02-18 14:30:40 -05:00
Tom Houlé f57df3638f agent_ui: Route agent thread feedback comments through cloud (#49481)
The agent thread feedback comments event was still going through the
standard telemetry pipeline. This routes it through cloud instead, as
was just done for agent thread rated and edit prediction rated, so we
can enforce organization data and privacy settings.

Part of CLO-297
2026-02-18 20:28:20 +01:00
Danilo LealandBennet Bo Fenner 026e9c7157 agent_ui: Add the ability to undo "reject all" (#48462)
Closes https://github.com/zed-industries/zed/issues/39294

This PR implements the ability to undo the "reject all" action from the
agent panel (and the other places where this button is surfaced).
Effectively, this allows to recuperate the edits an agent has introduced
in case you either accidentally clicked the button or regretted the
decision to reject all.


https://github.com/user-attachments/assets/6f048b95-dd0a-4a45-8b4f-cd8f99d45cb3

Release Notes:

- Agent: Introduced the ability to undo the "reject all" action from
agent-made changes.

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-02-18 15:49:36 -03:00
Tom Houlé d3bb8e57ed language_models: Activate StreamEnded support in completion streams for Cloud provider (#49337)
Now that the cloud-side StreamEnded support has landed, enable it on the
Zed client:

- Send the
`x-zed-client-supports-stream-ended-request-completion-status` header so
cloud knows to send `StreamEnded` status events.
- Track whether `StreamEnded` was received during the stream.
- Emit `StreamEndedUnexpectedly` error when the stream closes without a
`StreamEnded` status, indicating the response was truncated.

Concretely, this means that the agent panel will now display an
abnormally terminated response stream for model calls through a Zed
subscription as an error instead of just stopping.

Release Notes:

- The agent panel now displays an abnormally terminated response stream
for model calls through a Zed subscription as an error instead of just
stopping.
2026-02-18 19:42:06 +01:00
Richard Feldman c5ade1fa71 Add sidebar status icons for agent thread states (#49505)
<img width="800" height="1200" alt="image"
src="https://github.com/user-attachments/assets/2b765edc-4be4-476e-891a-9dd81fac2626"
/>

Add icon decorations on the agent icon in the sidebar to show thread
status:

- **Generation done**: blue dot (existing behavior, unchanged)
- **Blocked on tool permission/confirmation**: yellow warning triangle
- **Thread stopped due to an error**: red X

Priority order for decorations: confirmation > error > done > running
spinner.

Confirmation and error decorations persist as long as the thread is
actually in that state and always show regardless of whether the
workspace is active (unlike the blue dot which is notification-based).

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

Release Notes:

- N/A
2026-02-18 18:30:14 +00:00
Richard FeldmanandAnthony Eid 93e1499a1f Fix multi-workspace restoration and serialization bugs (#49380)
Fix several issues with multi-workspace serialization and restoration
that caused sidebar workspaces to not fully restore after Zed restart.

## Changes

### 1. Resilient restoration — don't let one failing workspace kill the
rest

In `restore_multiworkspace`, the loop restoring each workspace in a
group used `?` on every `.await`. If any single workspace failed (e.g. a
DB read error, item deserialization failure), all remaining workspaces
were silently abandoned. Changed to log-and-continue so each workspace
is attempted independently. `restore_multiworkspace` now returns a
`MultiWorkspaceRestoreResult` containing both the window handle and a
list of errors, which the caller logs individually.

### 2. Proper serialization at lifecycle events

- **`create_workspace`** now assigns a database ID (via `next_id()`) and
writes a `session_id`/`window_id` binding so newly-created workspaces
can be persisted and restored.
- **`remove_workspace`** now deletes the removed workspace from the DB
(preventing zombie restoration) and serializes the updated
multi-workspace state.
- **`activate`** now only serializes when the active workspace actually
changes, and uses the new `set_active_workspace` helper to keep the
ordering correct (set index *then* serialize, not the other way around).
- The `serialize` method now stores its task in `_serialize_task`
instead of fire-and-forget detaching, enabling `flush_serialization` to
await it.

### 3. Flush serialization on quit

The quit handler now calls `flush_serialization` on every workspace and
multi-workspace before `cx.quit()`, bypassing the 200ms throttle to
ensure all `session_id`/`window_id` values are written to the database
before the process exits.

### 4. Await pending tasks on app quit

`MultiWorkspace` now registers an `on_app_quit` handler that awaits all
in-flight serialization, creation, and removal tasks within GPUI's
shutdown timeout. The existing `on_release` handler continues to detach
tasks as a safety net for non-quit window closes, matching the pattern
used by `Room`.

### 5. Track workspace serialization task

`Workspace::serialize_workspace` now stores the actual serialization
task in `_serialize_workspace_task` instead of detaching it, so
`flush_serialization` can cancel any pending throttle *and* await the
in-flight write.

### 6. New persistence helper

Added `set_session_binding` query to update a workspace's `session_id`
and `window_id` in one shot, used by `create_workspace` to bind
newly-created workspaces to the current session.

### 7. Tests

Added tests covering:
- `flush_serialization` completing before quit
- `create_workspace` assigning a DB ID and serializing the active
workspace ID
- Removal of a workspace deleting it from the DB and updating
multi-workspace state
- Restoration resilience when individual workspaces fail

Closes AI-37

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

Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-02-18 18:26:26 +00:00
Cole Miller 5ebeac063c Revert "editor: Add FlexClipped block style and use it for spacer blocks" (#49508)
Reverts zed-industries/zed#49478
2026-02-18 13:15:00 -05:00
Richard Feldman f1c5b05752 Skip /dev/null redirects from terminal auto-allow command extraction (#49503)
Redirects to `/dev/null` (e.g. `2>/dev/null`, `&>/dev/null`) are
known-safe I/O routing, not commands. Previously, `extract_commands`
emitted normalized redirect strings like `"2> /dev/null"` as separate
entries in the command list checked against auto-allow regexes. Since
`check_commands` requires **all** extracted entries to match an allow
pattern, the unmatched redirect caused false-negatives — e.g. `git log
--oneline -20 2>/dev/null || echo ...` would not be auto-allowed despite
matching `^git` and `^echo` patterns.

Rather than removing all redirects from extraction (which would hide
dangerous redirects like `> /etc/passwd` from deny/confirm pattern
checking), this fix surgically skips only `/dev/null` targets during
redirect normalization. Redirects to real files are still emitted and
still require a matching pattern for auto-allow, preserving the
defense-in-depth property.

Closes AI-41

Release Notes:

- Fixed terminal auto-allow patterns incorrectly prompting for
confirmation on commands containing `/dev/null` redirects (e.g.
`2>/dev/null`).
2026-02-18 13:01:01 -05:00
Bennet Bo FennerandBen Brandt 3ddf1baf6d Fix cancellation issues with subagents (#49350)
This PR fixes issues with subagent cancellation, prior to this we would
still show a wait indicator for subagents that were cancelled from the
parent thread. We also removed the `stop_by_user` workaround, that code
path now uses `thread.cancel` directly

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: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-02-18 18:33:11 +01:00
Ben Kunkle 912f600a7b ep_cli: Filter fetched examples by can_collect_data (#49506)
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 ...
2026-02-18 12:27:04 -05:00
Joseph T. Lyons 3127811812 Bump Zed to v0.226 (#49498)
Release Notes:

- N/A
2026-02-18 16:56:53 +00:00
Anthony Eid d105a3ec35 agent: Disables multi workspace refresh queue for non-staff (#49496)
Refreshing the queue was causing hangs on debug builds, so this is a
short term fix until we rework how the sidebar gets its data.

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
2026-02-18 16:34:27 +00:00
Lukas Wirth 1d314931ed editor: Some more semantic highlighting perf work (#49491)
- Reduce some re-allocations in `text_anchors_to_visible_anchors` and
`refresh_semantic_tokens`
- Process `raw_to_buffer_semantic_tokens` work on the background thread

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-18 16:02:17 +00:00
Cole MillerandSmit Barmase 55435b72fb editor: Add FlexClipped block style and use it for spacer blocks (#49478)
`FlexClipped` acts like `Flex`, but only allows the block to render in
the main hitbox, not the gutter. This is a visual improvement for the
spacers compared to `Sticky`.


https://github.com/user-attachments/assets/2b0aed0c-91ff-4e74-85b1-aea81f4e8a35


Release Notes:

- git: Improved the visual display for spacers in the split diff view.

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-02-18 15:45:11 +00:00
Oleksiy Syvokon a1ddc50bac ep: Update teacher prompt (#49489)
* More conservative predictions for prose
* Explain "user accepted prediction" in the teacher prompt
* Sonnet 4.6 support
* Don't strip comments in teacher prompt's edit history

Release Notes:

- N/A
2026-02-18 15:26:47 +00:00
Danilo Leal 74dbf4b638 Remove older onboarding modals (#49484)
This PR removes onboarding modals for features that were announced, at
this point, a long time ago: Git v1, Debugger, and Agent Panel v1. This
cleans up the actions list a bit when you search for "onboarding". I
left the ACP and Claude Code ones, though; they were the two more recent
ones, but we should be able to remove them soon enough, too.

Release Notes:

- N/A
2026-02-18 12:17:35 -03:00
Marshall Bowers b82db905bc feature_flags: Add note about acp-beta feature flag (#49479)
This PR adds a note to the `acp-beta` feature flag about how it is used,
and that it should not be deleted if unreferenced.

Release Notes:

- N/A
2026-02-18 13:55:09 +00:00
Lukas Wirth 2bdcee65b4 gpui: Use ArenaBox for Effect::Emit payload (#49467)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-18 14:48:38 +01:00
Ben Brandt a8321800da acp: Remove unnecessary logs for config options (#49476)
Release Notes:

- N/A
2026-02-18 13:47:10 +00:00
Jakub KonkaandLukas Wirth 846b4191c9 editor: More perf work (#49465)
Seems that `SmallVec::clone` is pretty expensive in a generic case, and
specialising it improves the performance quite a bit!

Release Notes:

- Improved performance of different building blocks within the
MultiBuffer.

---------

Co-authored-by: Lukas Wirth <lukas@zed.dev>
2026-02-18 14:20:30 +01:00
Ben BrandtandBennet Bo Fenner 5fe8002213 acp: Update terminal tool call updates if we recieve a new one (#49456)
This showed up mostly in agents that stream terminal output to Zed that
the title wasn't updated in time to see the command when needing to
provide permissions.

Release Notes:

- acp: Fix for ACP terminal titles not always being updated to their
latest value.

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-02-18 11:08:09 +00:00
Lukas Wirth 2fb5628281 Reduce amount of monomorphizations from FnMut closures (#49453)
Replaces a bunch of `impl FnMut` parameters with `&mut dyn FnMut` for
functions where this is the sole generic parameter.
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-18 12:00:02 +01:00
Oleksiy Syvokon a3d5f56be8 ep: Encode cursor position in the predicted patch (#49450)
Release Notes:

- N/A
2026-02-18 09:55:26 +00:00
Ben BrandtandBennet Bo Fenner 9bc1a0e1e8 acp: Enable history for external agents for all users (#49449)
Removes the feature flag around listing and loading existing sessions
for external agents.

Release Notes

- acp: Expose session history for all external agents that support it.

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-02-18 09:54:21 +00:00
Lukas Wirth e7e632095a sum_tree: Implement Iterator::last and lower bound of Iterator::size_hint (#49448)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-18 09:52:52 +00:00
Lukas Wirth 65457acf6c multi_buffer: Remove unnecessary reference in as_singleton return type (#49447)
Allows cleaning up `open_tool_call_location` slightly

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-18 09:32:36 +00:00
Lukas Wirth 75a0e170a1 editor: Improve apply_fetched_hints for many excerpt multibuffers (#49444)
Reuses the new multi buffer api from
https://github.com/zed-industries/zed/pull/49349 for inlay hints

Release Notes:

- Reduced occasional stuttering coming from inlay hints in large
multibuffers
2026-02-18 10:19:08 +01:00
Marco Mihai Condrache 8044f484ca editor: Optimize TabMap chunks generation (#48378)
Currently, the next chunk is generated by traversing all characters of
the current folded chunk until a tab is found. Since we already have
bitmasks for characters and tabs, we can also propagate the newlines
bitmap from the rope and use it to make this computation O(1) in all
cases.

I haven’t run benchmarks yet.

Release Notes:

- N/A
2026-02-18 08:53:26 +01:00
Max Brunsfeld 301a892885 Put back logic for passing data collection choice to cloud (#49426)
Release Notes:

- N/A
2026-02-17 17:43:40 -08:00
Eric Holk 3554944a72 Make terminal permission pattern suggestions subcommand-specific (#49148)
Previously, clicking "Always allow for `cargo` commands" after running
`cargo build --release` would also silently permit `cargo run`
(arbitrary code execution), `cargo publish`, and any other cargo
subcommand. This was overly broad and did not match user intent.

Now the extracted pattern includes the subcommand when present, so the
button reads "Always allow for `cargo build` commands" and the pattern
`^cargo\s+build\b` only matches `cargo build` invocations — not `cargo
test`, `cargo run`, etc.

### How it works

- The second token is included in the pattern when it looks like a
subcommand (alphanumeric, hyphens, underscores, no leading `-`).
- When the second token is a flag (e.g. `ls -la`), only the command name
is used — the user sees "Always allow for `ls` commands".
- Single-word commands and path-like commands behave the same as before.

### Examples

| Command | Pattern | Button label |
|---|---|---|
| `cargo build --release` | `^cargo\s+build\b` | Always for `cargo
build` commands |
| `cargo test -p search` | `^cargo\s+test\b` | Always for `cargo test`
commands |
| `npm install` | `^npm\s+install\b` | Always for `npm install` commands
|
| `ls -la` | `^ls\b` | Always for `ls` commands |
| `ls` | `^ls\b` | Always for `ls` commands |
| `./script.sh` | *(rejected)* | *(no pattern button)* |

Release Notes:

- Agent: "Always allow" suggestions for terminal commands are now
subcommand-specific (e.g. "Always allow for `cargo build` commands"
instead of "Always allow for `cargo` commands").
2026-02-17 16:42:16 -08:00
Max Brunsfeld 4315ed2ca1 Filter collection of snowflake requests to those with latest schemas (#49424)
This allows us to just pull requests that have the latest EP request
schema with the `predicted` boolean on events in the edit history.

Release Notes:

- N/A
2026-02-17 16:37:28 -08:00
ed5605bd2c Show agent icon instead of folder icon in sidebar thread list (#49421)
Replace the generic folder icon next to thread entries in the workspace
sidebar with the actual agent icon (Claude, Zed Agent, Gemini, etc.) for
the active thread.

Release Notes:
- N/A

Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
2026-02-17 15:36:22 -08:00
Cameron McloughlinandZed Zippy b88ecd61b2 workspace: Group recent projects by date (#49414)
Release Notes:

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

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-17 23:30:28 +00:00
8088b42349 workspace: Add Toggle actions to all the side panels (#49395)
Release Notes:

- Add `toggle` actions to all panels to toggle visibility

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-17 23:06:27 +00:00
Danilo Leal c72a88a7eb ui: Remove unused components (#49410)
Some house-keeping on the UI crate; all of these were pretty much
unused, so we can take them out for the time being.

Release Notes:

- N/A
2026-02-17 19:28:30 -03:00
Max Brunsfeld 7fd3dd4bf7 Remove project cache in edit prediction CLI (#49409)
The cache isn't needed, now that we have a better way of reducing
resource consumption (disabling worktree scanning), and it adds race
conditions.

Release Notes:

- N/A
2026-02-17 14:20:46 -08:00
76efc691e6 git: More performance improvements when toggling between diff views (#49400)
- Defer syncing block maps from `set_companion`, eliminating some
redundant recomputations
- Emit one large multibuffer edit from `set_show_deleted_hunks` instead
of many small edits, to avoid bad case for block map

This cuts hangs roughly in half when toggling between views in a large
diff (1000 commits from the chromium repository).

<!-- 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:

- Improved performance with large diffs when toggling between diff
views.

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Co-authored-by: Lukas Wirth <lukas@zed.dev>
2026-02-17 22:09:27 +00:00
Cole Miller 2605757347 Preallocate vector for MultiBuffer::excerpt_ids (#49381)
This saves some time spent reallocating inside `Editor::on_buffer_event`
for large multibuffers.

Release Notes:

- N/A
2026-02-17 17:04:55 -05:00