Commit log

84b1de6 editor: Store folds by file path for persistence across tab close (#47698)

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

Brandt Weary and Hector created

4325520 recent_projects: Fix remote reconnect when server is not running (#49834)

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

Filipe Azevedo created

450c66c ep: Add a parameter to sample at most N near-duplicates (#49870)

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

Oleksiy Syvokon created

67d9e7d ep: Fix teacher parser and other fixes (#49863)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

d54a262 languages: Add syntax highlighting for HTML character references (#48629)

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

Brett Schneider created

af20a87 docs: Auto-apply preview release suggestions (#49650)

Click to expand commit body
This draft PR auto-applies queued documentation suggestions collected
from recently merged PRs.

34 documentation suggestions from merged PRs were processed. See the
commit message for the full list.

Release Notes:

- N/A

---------

Co-authored-by: Katie Geer <katie@zed.dev>

morgankrey and Katie Geer created

a2f397b Revert "Optimize `workspace/didChangeWatchedFiles` handler" (#49826)

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

John Tur created

bb368ce git_graph: Improve loading time (#49736)

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

Remco Smits , Anthony , and Anthony Eid created

da93e7d git_ui: Ignore extraneous links in git output (#49817)

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

Kavi Bidlack created

b30ceb8 repl: Bump nbformat to v1.1.0 (#49787)

Click to expand commit body
Fix applied on nbformat where single line cells are strings.

Closes discussion from
https://github.com/zed-industries/zed/discussions/25936#discussioncomment-15782292.
Relevant PR from nbformat: https://github.com/runtimed/runtimed/pull/259

Release Notes:

- N/A

MostlyK created

5901d58 editor: Remove redundant clone in `highlight_text` (#49810)

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

ᴀᴍᴛᴏᴀᴇʀ created

c8656ac gpui: Take advantage of unified memory on macOS (#49236)

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

Marco Mihai Condrache created

5e3efc6 editor: Improve `colorize_bracket` highlight performance (#49803)

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

Lukas Wirth created

76c878d agent: More subagent wordsmithing (#49804)

Click to expand commit body
Now that this is also used for resuming, I think this is clearer what
the input is.

Release Notes:

- N/A

Ben Brandt created

c22eaa7 editor: Fix bracket highlight flickering when editing (#49797)

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

Xin Zhao created

5205e54 project: Remove unused BufferOpened event (#49775)

Xiaobo Liu created

b49698b visual_tests: Fix MultiWorkspace panics (#49784)

Click to expand commit body
After commit ee3f40f, the settings-related visual tests started
panicking. The settings UI code depends on MultiWorkspaces, so changing
these tests appropriately fixes the panics.

Closes #49659

Release Notes:
- N/A

claire created

d08d98f Update Mistral AI provider icon (#49793)

Click to expand commit body
This PR updates the Mistral AI provider icon to better align with
Mistral's branding. The current icon (from 2023) is not fully aligned
with Mistral's visual identity, and this change ensures consistency and
clarity for users.

### Changes Made
- Replaced the Mistral AI provider icon with an updated design to better
reflect Mistral's branding.

### Testing
- **Manual Testing:** Screenshots have been taken to verify the visual
changes. No visual regression testing was performed since this is a
minor icon update.
<img width="306" height="249" alt="Capture d’écran 2026-02-21 à 09 26
44"
src="https://github.com/user-attachments/assets/b6fa568b-66e5-4460-9bf8-88c0c6139c88"
/>
<img width="331" height="249" alt="Capture d’écran 2026-02-21 à 09 12
50"
src="https://github.com/user-attachments/assets/31ed4ffd-0b9a-47f3-92b8-e8eff6f0acb6"
/>
<img width="306" height="249" alt="Capture d’écran 2026-02-21 à 09 12
56"
src="https://github.com/user-attachments/assets/6339bb9e-5824-41e1-bdef-d809e5ac1cf3"
/>

- **Test Coverage:** No additional test coverage is required for this
change, as it is purely visual.

### Checklist
- [x] Added screenshots for manual testing.
- [x] Done a self-review taking into account security and performance
aspects (no impact).
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist).

### Release Notes
- Updated Mistral AI provider icon to align with Mistral's branding.

---

### Additional Notes
- The previous icon (from 2024) was not fully aligned with Mistral's
visual identity. This update ensures consistency.
- Screenshots of the new icon are attached for review.

Adrien Etaix created

1e9987d Update C# docs (#49789)

Click to expand commit body
Release Notes:

- N/A

John Tur created

1ae087b Improve ETW profiler action (#49788)

Click to expand commit body
- Don't enable heap tracing by default since it has a large performance
impact. A separate action that records with heap tracing is available.
- Use in-memory recording rather than file recording, since the latter
seems to cause a lot of dropped stack walks.
- Don't record stack walk data for GPU events to help reduce the trace
size.

Release Notes:

- N/A

John Tur created

d1cd9fb Fix certain title bar elements not being interactive on Windows (#49781)

Click to expand commit body
https://github.com/zed-industries/zed/pull/48330 caused the title bar to
start eating input events below these controls. We should find a way to
make the title bar handling less busted, but this will do for now.

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

Release Notes:

- N/A

John Tur created

9e0c5f4 diagnostics: Fix typo in toolbar controls (#49779)

Click to expand commit body
Release Notes:

- Fixed typo in stop diagnostics update tooltip.

Grant Azure created

21ac361 Optimize `workspace/didChangeWatchedFiles` handler (#49778)

Click to expand commit body
Previously, `didChangeWatchedFiles` registrations triggered a rebuild of
a single `GlobSet` containing all file watch patterns for the language
server. This means that, each time `didChangeWatchedFiles` is
registered, the work it takes to construct the `GlobSet` increases. This
quadratic blowup caused massive lag with language servers which register
thousands of watched files (like Roslyn).

Instead, create one `GlobSet` per registration and try matching them
one-by-one each time a file watcher event is raised.

---

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

Release Notes:

- Optimized performance for language servers which register many
file-watching notifications.

John Tur created

57725ca title_bar: Show organization plans (#49769)

Click to expand commit body
This PR updates the organization selector to also show the plan that is
available through each organization.

Also makes the `plan` method on the `UserStore` return the plan for the
current organization, if it exists.

We aren't yet populating the `plans_by_organization` collection.

Release Notes:

- N/A

Marshall Bowers created

1dc574f title_bar: Factor out `PlanChip` component (#49766)

Click to expand commit body
This PR factors out a `PlanChip` component in the `title_bar`.

Release Notes:

- N/A

Marshall Bowers created

327ad43 title_bar: Add organization selector (#49763)

Click to expand commit body
This PR adds an organization selector to the title bar for switching
between organizations.

Closes CLO-301.

Release Notes:

- N/A

Marshall Bowers created

930d932 git: Fix panic when unstaged diff is recalculated before its primary diff (#49753)

Click to expand commit body
For inverted diff APIs like `hunks_intersecting_base_text_range`, we
need a snapshot of the main buffer to use as context to compare hunk
anchors, convert anchors to points, etc. Previously, we were always
using a snapshot of the main buffer at the time when the diff was
calculated. This worked well for the hunks of the primary `BufferDiff`,
but it's not valid when the diff also has a secondary set of hunks,
because those hunks are recalculated on their own schedule--so it's
possible for the hunks of the secondary diff to contain anchors that are
newer than the original buffer snapshot that was taken at the time the
primary diff hunks were last calculated. This caused a panic when using
these anchors with the original buffer snapshot.

This PR fixes the issue by using the same approach for inverted diffs as
for non-inverted diffs at the multibuffer level: we take a snapshot of
the main buffer at the time when we snapshot the diff state (including
the diff itself), guaranteeing that that snapshot will be new enough to
resolve all the anchors included in both the primary diff and the
secondary diff.

Closes ZED-54J

Release Notes:

- Fixed a panic that could occur when using the branch diff in split
view mode.

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>

Cole Miller and Antonio Scandurra created

765444d zeta2: Include type definitions in related files (#49748)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Ben Kunkle created

8f5ae2d ep_cli: Only compute reversals on last user edit (#49747)

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

f676dfe docs: Update docs for external agents (Claude Agent) (#49739)

Click to expand commit body
- Documentation URLs have been updated to point to `code.claude.com`
instead. This’ll prevent an unnecessary redirect for everyone.
- Added note about Agent teams feature not yet supported.

Closes #49663.

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

Release Notes:

- N/A

---------

Co-authored-by: Katie Geer <katie@zed.dev>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

Kunall Banerjee , Katie Geer , and Claude Sonnet 4.6 created

556271b zeta2: Try not to jump to collaborators as much (#49742)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Ben Kunkle created

334584c docs: Revise migration guides (#49743)

Click to expand commit body
Release Notes:

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

Katie Geer created

7bd4437 Fix broken accounts.html links in migrate docs (#49744)

Click to expand commit body
Fixes broken `docs/accounts.html` links in all five migration guides.

## Changes

Replace `https://zed.dev/docs/accounts.html` with
`https://zed.dev/docs/authentication` in:

- `docs/src/migrate/vs-code.md`
- `docs/src/migrate/intellij.md`
- `docs/src/migrate/pycharm.md`
- `docs/src/migrate/webstorm.md`
- `docs/src/migrate/rustrover.md`

These links were flagged as 4xx in an SEO audit. The `accounts.html`
page does not exist; `authentication` is the correct destination.

Release Notes:

- N/A

Katie Geer created

66bdb11 agent: Change tool name to spawn_agent (#49741)

Click to expand commit body
After looking around a bit, I felt like subagent wasn't the right way to
introduce this tool to the model. And with some back and forth
verification + market research, we both agreed spawn_agent was a better
name for what this tool is doing.

It still calls the right tool if you ask for a subagent, but especially
if we move these to be running in the background, spawn will be a better
name anyway.

Release Notes:

- N/A

Ben Brandt created

9304e02 agent: Allow the agent to reprompt an existing subagent (#49737)

Click to expand commit body
Also fixes a regression I introduced that didn't cancel threads after
the timeout was hit

Release Notes:

- N/A

Ben Brandt created

36b6e83 agent: More generous timeouts for subagents (#49734)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

e42dae5 agent: Tweak subagent input params and docs (#49732)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

56fd9da git_ui: Add diff stat numbers in Branch Diff view (#49716)

Click to expand commit body
This PR adds the diff stat numbers to the `git: branch diff` view
toolbar.

<img width="550" height="1964" alt="Screenshot 2026-02-20 at 10  58@2x"
src="https://github.com/user-attachments/assets/0fc63b64-ce6e-417a-92b5-8008f2561a8f"
/>

--- 

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:

- Git: Added diff stat numbers to the Branch Diff (`git: branch diff`)
view.

Danilo Leal created

9ad8c7a editor: Distribute lines across cursors when pasting from external sources (#48676)

Click to expand commit body
Release Notes:

- When pasting multiple lines equaling the number of cursors Zed now
maps each line to each cursor

Lukas Wirth created

9fdfc42 Fix cargo test -p editor for Linux/Wayland (#49730)

Click to expand commit body
`cargo test -p editor` now builds on Linux/Wayland

Release Notes:

- N/A

Jakub Konka created

9b0cb4e text: Store fragment's deletions on stack (#49726)

Click to expand commit body
Helps #38927

- In the common case, each fragment has at most one deletion, so we can
skip the heap allocation
- SmallVec is smaller than an empty HashSet
- Makes cloning cheaper
- From my analysis of the code it's not possible to have duplicate ticks
(I may be wrong tho)

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

Marco Mihai Condrache created

40c159c git: Prevent panic when updating excerpts in split diff (#49725)

Click to expand commit body
When using the split view, if the project diff inserts excerpts for the
same buffer using two different `PathKey`s, we panic inside
`LhsEditor::update_path_excerpts_from_rhs` because of an implicit
assumption that `excerpts_for_path()` and `excerpts_for_buffer()` return
the same number of values. This PR addresses that by ignoring any
excerpts for the given buffer that have a different path key from the
provided one.

Release Notes:

- Fixed a crash when using the split diff view.

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Co-authored-by: Eric <eric@zed.dev>

Cole Miller , Jakub Konka , and Eric created

d05ea29 ep_cli: Delete sync-deployments command (#49728)

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

0823cac multi_buffer: Fix outdated anchors resolving incorrectly in diff hunks in `resolve_summary_for_anchor` (#49719)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/48441

Release Notes:

- Fixed panics with selection handling in expanded diff hunk

Lukas Wirth created

fd32e31 editor: Add copy button for project diagnostics messages (#49671)

Click to expand commit body
| Before | After |
|---|---|
| <img width="734" height="178" alt="before"
src="https://github.com/user-attachments/assets/1cea5854-e1b5-45a5-92ee-ed66bde06cc6"
/> | <img width="834" height="186" alt="after"
src="https://github.com/user-attachments/assets/bddb9280-89b3-4800-b9c9-08e456bc9ed8"
/> |

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:

- Added copy button for project diagnostics messages

---------

Co-authored-by: ozacod <ozacod@users.noreply.github.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

ozacod , ozacod , and Danilo Leal created

46d11d2 agent: Allow tools to have structured output (#49722)

Click to expand commit body
Previously we only had the ability to return anyhow errors, which
limited the amount of structured data we could send the model.

Now tools can also return structured data in the error cases, which is
super helpful for subagents in particular

Release Notes:

- N/A

Ben Brandt created

366d5fa collab_ui: Add a loading state when signing in (#49713)

Click to expand commit body
| Before      | After      |
| ------------- | ------------- |
| <video
src="https://github.com/user-attachments/assets/ad5892f8-1fb9-4ea4-ba97-e1f2dc778f9e">
| <video
src="https://github.com/user-attachments/assets/f932dfd7-90a7-4536-b42e-f5508412e5d8">
|

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

Marco Mihai Condrache created

989887c Add ETW profile recorder action (#49712)

Click to expand commit body
https://github.com/user-attachments/assets/8b0be641-625e-410f-b7c1-abe549504c11

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:

- Added a `zed: record etw profile` action that can be used to collect
performance profiles on Windows.

John Tur created

f22f4db agent: Make agent::addSelectionToThread use current line when no selection (#48045)

Click to expand commit body
When there is no selection, make `cmd->` (`agent::addSelectionToThread`)
use the current line containing the cursor instead of doing nothing.

Supports both Zed Agent and Zed Assistant.
Works with multiple-cursors and a mix of selections and cursors.

Authored by Claude Opus 4.5, tested by me.

Release Notes:

- agent: Make `agent::addSelectionToThread` (`cmd->`) use the current
line of the cursor when there is no selection.

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Peter Tripp and Bennet Bo Fenner created

b1366c3 git_ui: Refine display of the "Review Diff" button (#49710)

Click to expand commit body
This PR makes the "Review Diff" button show up only if the multibuffer
_isn't_ empty and if AI is enabled. It was previously just checking for
the AI setting.

Release Notes:

- N/A

Danilo Leal created