Commit Graph
31406 Commits
Author SHA1 Message Date
Conrad IrwinandZed Zippy 47c72e4a8a Defer wgpu context creation until we have a surface (#49926)
Fixes ZED-54X

Release Notes:

- Linux: wait to request a graphics context until we have a window so we
can (ideally) pick a better context or (less ideally) fail more
gracefully.

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-24 06:27:31 +00:00
Max Brunsfeld 4f59c67cd7 Fix incorrect cursor excerpt handling in EP CLI format-prompt (#49947)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-24 05:13:33 +00:00
Conrad Irwin a076b1b0c3 Fix wasmtime panic handling (#49944)
We see a number of crashes in Sentry that appear to be crashes in
wasmtime.
This shouldn't happen, as wasmtime is designed to run untrusted code
"safely".

Looking into this, it seems likely that the problem is that we race with
wasmtime
when installing signal handlers. If wasmtime's handlers are installed
before ours,
then any signals that it intends to handle (like out of bounds memory
access) will
reach our handlers before its; which causes us to assume the app has
crashed.

This changes fixes our crash handler initialization to ensure we always
create
our signal handler first, and reverts a previous attempt to fix this
from #40883

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:

- Linux: Fixed crashes that could happen due to our crash handler
erroneously catching signals intended for wasmtime.
2026-02-23 21:44:20 -07:00
Cole Miller 00b9127309 git: More rigorously test excerpt syncing for split diff, and fix a couple of bugs (#49907)
This PR adds a more rigorous test for the excerpt syncing logic in
`SplittableEditor`, in preparation for refactoring that code, since
we've had some bugs there.

The new test covers
- edits within the RHS multibuffer
- edits to the individual main buffers, not necessarily within the
excerpt bounds of the split diff
- excerpt expansion
- excerpt removal
- excerpt recalculation based on diff hunk ranges

Bugs fixed:
- incorrect edit merging logic in `patches_for_range`
- `merge_excerpts` leaving stale excerpt IDs in `excerpts_by_path`

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:

- N/A
2026-02-24 03:33:33 +00:00
ᴀᴍᴛᴏᴀᴇʀandDanilo Leal c98c2815d7 git_ui: Make stash picker footers button wrap (#49814)
Closes #48383

An alternative approach would be to use `min_w` instead of `w`, but that
would result in inconsistent widths across the three tabs in the git
picker, causing layout jumps when switching between them. It might be
more appropriate to simply increase the width directly.

|Before|After|
|--|--|
|<img width="932" height="290" alt="CleanShot 2026-02-22 at 02 01 20@2x"
src="https://github.com/user-attachments/assets/a0868cf5-86a0-4375-9cf5-6728a6411ff1"
/>|<img width="970" height="274" alt="CleanShot 2026-02-22 at 02 03
50@2x"
src="https://github.com/user-attachments/assets/acee111c-06ff-48d1-b1c7-c118bdddfcf9"
/>|

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 footer buttons clipped in stash picker when vim mode is enabled
on macOS

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2026-02-24 02:57:44 +00:00
AltayandDanilo Leal 12278e81be settings_ui: Improve control alignment for multiline settings rows (#49850)
Closes #49848

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)

## Summary
Align right-side controls in settings rows when descriptions wrap to
multiple lines, and relax the text-width cap for better balance.

## Changes
- Top-aligned settings row containers in shared settings UI render paths
by adding `items_start()` to:
  - Setting rows (`render_settings_item`)
  - Sub-page link rows
  - Action link rows
- Updated the left text column width constraint in
`render_settings_item` from `w_3_4` to `w_full + max_w_2_3 + min_w_0` to
avoid overlap while reducing excess empty space.

## Validation
- Built and ran Zed locally with `cargo run`.
- Manual verification in Settings pages with multiline descriptions and
right-side controls:
  - General
  - Appearance
  - Languages & Tools
  - Agent/Terminal-related sections
- Confirmed improved control alignment and no right-column text overlap
in the tested views.

  | Before | After |
  |---|---|
|
![1-before](https://github.com/user-attachments/assets/bf548d15-a1a6-4917-81ac-0a1afefa2ea1)
|
![1-after](https://github.com/user-attachments/assets/47a61610-7b74-48bd-838d-e39e3b578d19)
|
|
![2-before](https://github.com/user-attachments/assets/92c0bd32-9772-42f4-be98-b1818556fa80)
|
![2-after](https://github.com/user-attachments/assets/188e0fdf-91ea-49bf-9648-9177107d94c9)
|







## Linked Issues
- #49848

Release Notes:

- Fixed settings row layout so right-side controls align better with
multiline setting descriptions.

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2026-02-24 01:56:35 +00:00
Danilo Leal b3aedc4fd7 agent_ui: Add some design tweaks to the subagents UI (#49938)
- Increase hit area of both the preview expansion as well as the full
screen expansion
- Add the ability to stop a subagent from the full screen view
- Fix subagent state display in the full screen view (e.g., we were
showing the green check mark even when the subagent was cancelled)
- Make card header font size consistent with the thread through a new
enum value in `LabelSize`
- Refine tooltip content and display
- Fix slight layout shift happening between the "there is no thread" and
"there is a thread" states

---
 
Closes #ISSUE

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
2026-02-23 22:46:49 -03:00
Max BrunsfeldandBen Kunkle a98e4651a2 Fix handling of excerpt regions in EP CLI (#49936)
Previously, we were not computing excerpt regions correctly for EP
examples captured from prod. This PR fixes that, and also simplifies the
data flow in the EP CLI. Examples either come from a concise spec (like
the markdown evals), or are collected from prod. Either way, we compute
from them a `ZetaPromptInput`, and the downstream steps like
prompt-formatting and scoring are derived from that.

Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
2026-02-23 17:08:09 -08:00
Cole Miller 159ebdc4ba git: Fix diff view buttons not working when project diff or branch diff is empty (#49884)
Release Notes:

- git: Fixed a bug where the buttons to toggle the split diff view would
have no effect when the diff being viewed was empty.
2026-02-23 19:28:13 -05:00
Eric Holk dacbfe9afe Remove thread title persistence (#49929)
This was causing performance issues and is on its way out anyway.

Release Notes:
- N/A
2026-02-23 22:58:50 +00:00
Conrad Irwin 0190150a69 Fix panic in breadcrumbs (#49930)
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)


Fixes
https://zed-dev.sentry.io/issues/7286512714/?project=4509715135987712&query=is%3Aunresolved&referrer=issue-stream

Release Notes:

- Fix (rare) panic when breadcrumbs contain newlines
2026-02-23 22:32:47 +00:00
Cole Miller 94851aff19 editor: Prevent panic when attempting to resolve a breakpoint anchor against the wrong buffer (#49893)
Closes ZED-4HY

Release Notes:

- Fixed a crash when using breakpoints.
2026-02-23 16:28:40 -05:00
384e0c45e7 zeta: Consolidate logic for picking region sizes, use larger editable region (#49921)
This will not affect how Zeta 2 behaves in production until we update
Cloud to pull in the changes to the `zeta_prompt` crate. But from some
early testing, it seems to improve behavior, not worsen it, even though
the editable region size differs from the currently-deployed model's
training data.

Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-23 12:52:33 -08:00
Xiaobo LiuandConrad Irwin 0479610d6f http_client: Fix Codex ACP install robustness by staging downloads (#45428)
Release Notes:

- Improved Codex ACP install robustness by staging downloads

---------

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
2026-02-23 13:18:03 -07:00
Conrad Irwin f2f86078ad Fix panic when folding immediately after a tab (#49920)
fixes ZED-57B

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:

- Fixed a (rare) panic when a fold was created immediately following a
tab character
2026-02-23 13:16:33 -07:00
Kunall Banerjee 8ce8e4c601 context_menu: Fix certain menu items not reacting to click events (#49557)
Use `Workspace::for_window` instead of `window.root().flatten()`.



https://github.com/user-attachments/assets/3ea6dae3-166d-49e4-9fff-8256e13cc2bf



https://github.com/user-attachments/assets/eb8d9394-5f71-4df6-b0db-c1c8078f1b9a



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 certain context menu items not reacting to click events
2026-02-23 18:58:34 +00:00
Conrad Irwin bc85d93c23 Don't panic in auth flow (#49916)
Closes #49641

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:

- Fixed panic when authentication failed to bind to lookback port
2026-02-23 18:42:51 +00:00
Ben Brandt e128e1eade agent: Allow expanding subagent from full header (#49911)
Makes it a bigger click target for the expanded preview.

Release Notes:

- N/A
2026-02-23 17:45:29 +00:00
Bennet Bo FennerandZed Zippy afafccbb57 agent: Fix slow file edits when using Opus 4.6 (#49904)
Fixes a regression introduced in #48545 (reasoning effort selector). We
saw edit file tool calls taking a long time (loading animation was
displayed, no diff) when using Opus 4.6. This was caused by Opus 4.6.
emitting thinking tokens even when the user explicitly disabled thinking
in the UI.
<img width="289" height="67" alt="image"
src="https://github.com/user-attachments/assets/090a99f8-9b07-4d25-9058-3706f9333396"
/>

In addition to the thinking tokens causing overhead, we were slowing
down file editing even more. because changing between
thinking/non-thinking between requests causes the cache to be
invalidated
([docs](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#what-invalidates-the-cache)).

This PR ensures that we inherit the setting for enabling or disabling
thinking from the thread from which the edit tool was called.

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

Release Notes:

- Fixed an issue where editing files was taking a long time when using
Opus 4.6

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-23 18:39:48 +01:00
Danilo Leal 77859bb59b git_graph: Add button to open up the commit view (#49910)
This PR adds a button at the bottom of the commit details panel to
quickly open the commit view:

<img width="500" height="806" alt="Screenshot 2026-02-23 at 2  22@2x"
src="https://github.com/user-attachments/assets/770234b2-a46d-4595-9f9e-7af7eeac73be"
/>

---

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
2026-02-23 14:36:01 -03:00
Danilo LealandAnthony Eid b5d5936029 git_graph: Add some design adjustments (#49899)
- Made hover/active styles, as well as clicks, work for the entire row,
capture the graph element, too (needed to make some manual hover and
other states management to pull that off)
- Used the existing `Chip` component for the branch chip instead of a
local recreation
- Adjusted spacing and sizing of commit detail panel, including button
labels truncation and tooltip content
- Added diff stat numbers for the changed files, to match the commit
view
- Standardized the commit avatar component across the git graph, the
commit view, and the file history view
- Added scrollbar to the changed files uniform list
- Removed author name display redundancy (kept only email)
- Made the commit detail UI have a min-width

<img width="750" height="1964" alt="Screenshot 2026-02-23 at 11  31@2x"
src="https://github.com/user-attachments/assets/d1433bd8-5edb-4829-882b-52b1bffbd6db"
/>

--- 

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: Anthony Eid <anthony@zed.dev>
2026-02-23 17:07:28 +00:00
Conrad IrwinandMarshall dc73716c2d Add a cargo wrapper to report build times (#49632)
This adds `./script/cargo` which is a transparent wrapper around `cargo`
intended for use by internal staff members at Zed.

It:
- adds `--timings` to `cargo build`/`cargo test`/`cargo run`
- saves the output to ZED_DATA_DIR/build-timings

When Zed starts (and you're logged in as a staff member) the
build-timings
directory is uploaded to our existing telemetry stack.

Co-authored-by: Marshall <git@maxdeviant.com>

Release Notes:

- N/A
2026-02-23 09:46:28 -07:00
Ben Brandt c6c9c89fd4 agent: Remove warning for spawn_agent (#49903)
It seems this was working too well and the model wasn't choosing to use
subagents at all.

Release Notes:

- N/A
2026-02-23 17:32:45 +01:00
Ben Brandt 15d752a3dd agent: Subagent low context warnings (#49902)
Allow the parent agent to handle cases where the subagent is running on
of context window. Also communicates if it has completely out of
context.

Release Notes:

- N/A
2026-02-23 16:03:32 +00:00
Dino 23dc8ddf86 git: Remove unused actions (#49901)
Remove both `git::LoadMoreHistory` and `git::ViewCommitFromHistory`
actions as although both actions were registered in the workspace, they
don't actually have effect when run.

This appears to have been leftover from
https://github.com/zed-industries/zed/pull/42441 , possibly the initial
implementation on how to open a commit and load more commits when the
file history view was open, which is now handled with `Button.on_click`
callbacks instead of relying on actions.

Closes #49288 

Release Notes:

- Removed unused git actions – `git: load more history` and `git: view
commit from history`
2026-02-23 15:23:32 +00:00
Sakthi Santhosh AnumandandKunall Banerjee 22d5f1f760 Use title case for UI labels (#49864)
Use title case everywhere.

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:

- Use title case for UI labels

---------

Signed-off-by: Sakthi Santhosh Anumand <mail@sakthisanthosh.in>
Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
2026-02-23 10:20:31 -05:00
Ben Brandt ef3c04c618 agent: Staff ship subagents (#49885)
Release Notes:

- N/A
2026-02-23 16:10:28 +01:00
Ben Brandt 29bb4743eb agent: Remove timeout for subagent (#49898)
For the last few days, the model has never picked a good timeout value.
It seems they are better at choosing timeouts for bash commands but not
agents. Given there are some rate limits involved, I think it is hard to
estimate and we already have an upper bound of execution which is the
context window to keep it from going indefinitely.

Release Notes:

- N/A
2026-02-23 15:08:33 +00:00
Bennet Bo FennerandBen Brandt c2c6a29abc Improve subagent permission UX (#49874)
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-23 15:05:15 +00:00
Marek Vrbka 3332a77b87 Fix OpenAI-compatible setting description (#49846)
While testing the OpenAI compatible endpoint, it didn't work, so after a
bit of digging I found out it actually expects the completions endpoint
instead. So I changed the description accordingly.

Maybe this is a bug in the implementation instead and the description
should be correct.
2026-02-23 14:52:41 +00:00
Jakub Konka da0f2f1863 livekit_client: Spawn audio input with high priority (#49887)
Use `BackgroundExecutor::spawn_with_priority(Priority::RealtimeAudio,
fut)` to spawn the audio input thread with correct thread priority much
like we do for audio output. Under-the-hood, `spawn_with_priority +
Priority::RealtimeAudio` boils down to calling `std::thread::spawn` and
setting appropriate thread priority.

Release Notes:

- N/A
2026-02-23 15:24:46 +01:00
Lukas Wirth 73da39f4b0 text: Swap anchor_range_between and anchor_range_around (#49888)
These functions had their names swapped accidentally

Follow up to https://github.com/zed-industries/zed/pull/49618

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-23 14:07:04 +00:00
Anthony Eid ab369c4f70 git_graph: Improve commit detail panel UI (#49876)
- Use git panel icons to show a changed file's state
- Centered avatar at top and move close button to top right
- Made changed file list scrollable
- clicking on a file open's it's historic commit view
- Note: The commit view doesn't fully populate the multibuffer, will fix
this in a different PR because it involves updating the commit view
interface to add more functionality


## Before
<img width="602" height="1704" alt="image"
src="https://github.com/user-attachments/assets/75a12fff-8a6a-4d0f-90dd-544adb0c2814"
/>

## After
<img width="227" height="856" alt="Screenshot 2026-02-23 at 1 23 45 PM"
src="https://github.com/user-attachments/assets/244cc9f3-e94d-4cc6-ac46-80fe70a619ff"
/>


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-23 12:44:08 +00:00
Remco Smits f7b49eee95 git_graph: Allow cancelling active selection via keyboard (#49836)
This PR allows you to cancel an active selectio inside the git graph via
a keyboard shortcut.


https://github.com/user-attachments/assets/f84218c3-5a92-4d9d-b089-4946559d50d0

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
2026-02-23 12:41:00 +00:00
Maksim Bondarenkov a815ba218a Fix regression for windows-gnu build in audio (#49844) 2026-02-23 13:28:39 +01:00
Marco Mihai Condrache 1aa8977790 gpui: Read thermal state from window handle (#49847)
Should close #49566

Inside `on_request_frame`, it’s conceptually incorrect to update the
application directly. Instead, we should read the thermal state through
the window handle, just like in the rest of the callback. That path uses
`try_borrow_mut` internally, so if the application is already being
updated elsewhere, we can safely skip checking the thermal state for
that frame and retry on the next one.

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-23 13:15:10 +01:00
Brandt WearyandHector fcb7e60384 editor: Store folds by file path for persistence across tab close (#47698)
## Summary

Extends #46011 to make folds survive tab close and workspace cleanup.

- Adds `file_folds` table keyed by `(workspace_id, path)` instead of
`editor_id`
- Follows the `breakpoints` table pattern in
`workspace/src/persistence.rs`
- Includes backwards-compatible migration from `editor_folds` on first
read

cc @Veykril - you reviewed the original fold persistence PR, this
extends it to handle the tab-close case.

## Problem

Folds stored by `editor_id` get deleted when:
1. User closes a tab
2. Tab is removed from workspace serialization
3. On next Zed start, `cleanup()` deletes editor rows not in
`loaded_items`
4. `ON DELETE CASCADE` wipes associated folds
5. User manually reopens file → folds gone

This is especially painful for PKM/notes workflows where folds represent
permanent document structure (collapsed sections, reference blocks,
etc).

## Solution

Store folds by file path, not editor ID. The `breakpoints` table already
proves this pattern works in Zed - breakpoints persist across tab close
because they're keyed by path.

## Migration

The PR includes backwards-compatible migration: reads from `file_folds`
first, falls back to `get_editor_folds()`, and migrates old data on
first read. Happy to remove this if you'd prefer a clean break - I'd
delete `get_editor_folds()`, remove the fallback logic in
`read_metadata_from_db()`, and add a `DROP TABLE IF EXISTS editor_folds`
migration. Users would lose any folds saved before the update.

## Test Plan

- [x] Unit test for `file_folds` queries in `persistence.rs`
- [x] Manual test: Open file → fold → close tab → quit Zed → reopen →
manually open file → folds restored

Release Notes:

- N/A

Co-authored-by: Hector <hector@cyberneticwilderness.com>
2026-02-23 12:51:45 +01:00
Filipe Azevedo 8739c2cbcb recent_projects: Fix remote reconnect when server is not running (#49834)
Closes https://github.com/zed-industries/zed/issues/49363

When an existing remote workspace's connection is dead (e.g. the server
died and reconnect failed, leaving the client in `ServerNotRunning`
state), `remote_connection()` returns `None`. Previously this caused an
error dialog, blocking reconnection — the user had to manually switch to
another project and back to recover.

Now the code falls through to establish a fresh connection instead,
matching the previous behavior where clicking "Reconnect" would just
work.

Release Notes:

- Fixed remote reconnect failing with an error when the server is not
running, now establishes a fresh connection instead.
2026-02-23 12:39:56 +01:00
Oleksiy Syvokon c369192562 ep: Add a parameter to sample at most N near-duplicates (#49870)
Duplicates are defined as cursor positions that have an approximate
Jaccard similarity greater than 0.5 (over token 5-grams).

From the resulting clusters of near-duplicates, we select up to N
examples that are maximally different from each other.


Release Notes:

- N/A
2026-02-23 10:56:57 +00:00
Oleksiy Syvokon 629e7708cc ep: Fix teacher parser and other fixes (#49863)
Release Notes:

- N/A
2026-02-23 07:18:04 +00:00
Brett Schneider c3b7a893be languages: Add syntax highlighting for HTML character references (#48629)
HTML character references like `&middot;`, `&apos;`, and `&#123;` are
correctly parsed by tree-sitter as named nodes
(`html_character_reference` in TSX/JavaScript, `entity` in HTML), but no
highlight query captures them. This means they render as plain,
unhighlighted text in the editor.

This PR adds one-line highlight captures for each:

- **TSX** (`crates/languages/src/tsx/highlights.scm`):
`(html_character_reference) @string.special`
- **JavaScript** (`crates/languages/src/javascript/highlights.scm`):
`(html_character_reference) @string.special`
- **HTML** (`extensions/html/languages/html/highlights.scm`): `(entity)
@string.special`

`@string.special` is already styled by all built-in themes (One Dark,
Ayu, Gruvbox, etc.), so no theme changes are needed.

Release Notes:

- Added syntax highlighting for HTML character references (`&middot;`,
`&apos;`, `&#123;`, etc.) in TSX, JavaScript, and HTML files.
2026-02-22 23:40:18 -05:00
John Tur 8ae99556ab Revert "Optimize workspace/didChangeWatchedFiles handler" (#49826)
Reverts zed-industries/zed#49778

This seems to have made things much worse in some cases, so I'll have to
think of a different way to fix the original issue.

Release Notes:
- N/A
2026-02-21 23:54:57 -05:00
b00a252378 git_graph: Improve loading time (#49736)
This PR Fixes a loading performance regresssion inside the git graph.
The main issue is that we always acted on the received repository
events, this is good in 9 out of 10 cases except for the initial loading
phase of the git graph. This is because we invalidate the graph data
every time we receive a `GitStoreEvent::ActiveRepositoryChanged`,
`RepositoryEvent::BranchChanged` or `RepositoryEvent::MergeHeadsChanged`
event this still sounds good, but the caveat is that we receive these 3
events on initial repository loading. This happens when you start up Zed
and is getting the active repository, branch ect. from your project.
When it detects a repository/branch etc. it checks if it has been
changed and emits an event for it. This is always the case for initial
repository loading, because the active repository/branch always start as
**None**. So receive an event for these non actual changes makes the git
graph cancel its initial loading and start fetching again on every
invalidated graph data call.

We fixed this by checking the **scan_id** of the repo to check if the
repo has been initialized, if its bigger then 1 we know we need to
invalidate the data because it was a actual user change instead of a
initial loading event.

**Before** (note you see the loading state twice):


https://github.com/user-attachments/assets/c25bfae1-0e2f-4c8b-a0d0-926acb33adff

**After** (almost instant):


https://github.com/user-attachments/assets/7e4ac116-65a2-4eb6-aa4c-37291d6acd0f

-----

**Before** (switching repositories shows empty commits pane)


https://github.com/user-attachments/assets/71b04285-49e7-47bb-9660-ad53bbf15c46

**After** (switching repositories shows correct graph from the cache)


https://github.com/user-attachments/assets/38c33d93-f592-4440-b63b-567fda0fbeb8

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: Anthony <anthony@zed.dev>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
2026-02-21 23:05:23 +00:00
Kavi Bidlack 88a4c20f3f git_ui: Ignore extraneous links in git output (#49817)
Closes #49746 

Previously, the `LinkFinder` looked at all of the lines, which sometimes
includes links unrelated to the pull request, like a post quantum
cryptography warning that links to
[this](https://www.openssh.org/pq.html) article.

Release Notes:

- When searching for pull request links in git output, only lines that
start with `remote:` are searched.
2026-02-21 21:48:39 +01:00
ᴀᴍᴛᴏᴀᴇʀ f57003cb00 editor: Remove redundant clone in highlight_text (#49810)
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
- [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-21 16:42:09 +00:00
Marco Mihai Condrache 567a8e1e38 gpui: Take advantage of unified memory on macOS (#49236)
Third attempt to land this improvement: (#45577, #44273)

The previous PR didn’t work on Intel MacBooks because I made a wrong
assumption about the unified memory check. `has_unified_memory` only
tells us that the CPU and GPU share memory. It does not mean we’re
running on an Apple GPU family.

Memoryless textures are only supported on Apple GPUs. Some Intel Macs
report unified memory, but they don’t support memoryless textures, which
is why the previous change failed there.

So instead of relying on unified memory, we now explicitly check that
we’re running on an Apple GPU family before enabling memoryless
textures.

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:

- Reduced memory usage on macOS

---------

Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>
2026-02-21 16:53:12 +01:00
Lukas Wirth 4a37945f3a editor: Improve colorize_bracket highlight performance (#49803)
The binary search insertion scheme in `highlight_text` works fine for
small numbers of elements but does not handle large amounts of ranges
well, as that will cause constant memcpying of the latter half of the
vec. Bracket colorization tends to have a huge amount of entries though,
so this can cause massive lags on the foreground thread. The better
approach here is to just collect all elements and re-sort them once.

Release Notes:

- Reduced mini-stutters occuring due to large amount of bracket
colorization in big buffers and agent diffs
2026-02-21 14:41:23 +00:00
Ben Brandt afb861fbe6 agent: More subagent wordsmithing (#49804)
Now that this is also used for resuming, I think this is clearer what
the input is.

Release Notes:

- N/A
2026-02-21 14:14:16 +00:00
Xin Zhao fd9e70e130 editor: Fix bracket highlight flickering when editing (#49797)
Closes #49653

Before you mark this PR as ready for review, make sure that you have:
- [x] screen record added
- [x] Done a self-review taking into account security and performance
aspects
- [x] No UI change

The original `refresh_matching_bracket_highlights` method always
performed a clear --> highlight procedure, even when the bracket
positions hadn't changed, causing the highlights to flicker. Normally,
for single quotes or brackets, the flickering area is small and hard to
notice (though visible if you pay close attention), but for Python
docstrings, the three quotes create a larger highlighted area, making
this issue much more apparent.

After fix:


https://github.com/user-attachments/assets/bcd9b464-0def-438d-86b3-7e6b3779b5c6



Release Notes:

- Fixed bracket highlights flickering when editing inside brackets
2026-02-21 11:19:56 +00:00
Xiaobo Liu dbb7e7b16d project: Remove unused BufferOpened event (#49775) 2026-02-21 10:10:51 +00:00