Commit log

3275481 Fix race condition in channel notes rejoin (#50034)

Click to expand commit body
Closes #49998

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 (very rare) crash that could happen due to lost edits in
channel buffers

Conrad Irwin created

bc81ada Fix panic in can_resolve when passed an invalid excerpt ID (#50052)

Click to expand commit body
Fixes ZED-59F

This is follow-up work from #49994; which assumed that can_resolve would
return
false for an invalid excerpt id.

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

Conrad Irwin created

0caaecc Fix panic in message editor paste (#50051)

Click to expand commit body
Fixes ZED-4KY

Release Notes:

- Fixed a panic when pasting into the agent UI

Conrad Irwin created

c94a9b7 Edit prediction: prioritize related excerpts that are referenced near the cursor (#50050)

Click to expand commit body
We store the byte distance between the cursor and references to each
definition. When including excerpts in the prompt, we prioritize them in
the order of proximity. I've updated the Edit Prediction Context view to
display the excerpt's `order`, and sorting the files in order of their
excerpt with the lowest order.

Release Notes:

- N/A

Max Brunsfeld created

23f7bde git: Simplify excerpt syncing code for `SplittableEditor` (#49943)

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

Cole Miller created

6111af7 Use a separate feature flag for EP jumps than for zeta2 (#50041)

Click to expand commit body
This allows us to enable zeta2 for certain end users without opting them
into the still-in-development jumps feature.

Release Notes:

- N/A

Max Brunsfeld created

c3efb13 agent_ui: Add some UI adjustments to subagents (#50032)

Click to expand commit body
Follow-up to https://github.com/zed-industries/zed/pull/49938:

- Adding the gradient overlay in all states within the preview slot
- Remove label from the "Full Screen" button to make it simpler and more
minimal

<img width="400" height="1182" alt="Screenshot 2026-02-24 at 7  59@2x"
src="https://github.com/user-attachments/assets/3c30e2b2-a572-4438-8cd3-4879bf54fea0"
/>

Release Notes:

- N/A

Danilo Leal created

04db6c3 zeta2: Use editable range returned by cloud for prediction diffs (#50029)

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: Max <max@zed.dev>

Ben Kunkle and Max created

67b52f3 auto_update: Persist custom icons across app updates on macOS (#49727)

Click to expand commit body
After setting a custom icon on macOS, an `Icon\r` file is generated in
the application's root directory to store the custom icon metadata.
Currently, the update process uses `rsync -av --delete`, which removes
this `Icon\r` file and causes the custom icon to revert to the default
blue folder.

This PR adds the `--exclude 'Icon?'` parameter to ensure the file is
preserved during updates.

Closes #26639 , Closes #29900.

Since I cannot trigger the auto-update mechanism manually, I mounted the
latest Zed disk image and simulated the update by executing the rsync
command in the terminal to verify the fix.

<img width="2254" height="1596" alt="图片"
src="https://github.com/user-attachments/assets/26660fa4-447f-427a-b2dd-e6280ce3d42d"
/>


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 custom macOS app icons would revert to default
blue folders after an update.

ᴀᴍᴛᴏᴀᴇʀ created

ad2b262 Clamp textures on Linux too (#50025)

Click to expand commit body
Port of #10314 to the wgpu renderer

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:

- Fixed a panic when rendering an image larger than the GPU could
support.

Conrad Irwin created

f9a9d9c Bump ashpd/oo7 dependencies (#49815)

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

Bilal Elmoussaoui created

0912dc9 Add humanizer skill for AI writing pattern detection (#50021)

Click to expand commit body
## Summary

Add a standalone **humanizer** skill based on Wikipedia's "Signs of AI
writing" guide that detects and fixes 24 common AI-writing patterns.
Also update brand-writer to recommend running humanizer as a
pre-validation step for high-stakes content.

## Details

**New skill: `/humanizer`**
- Detects 24 AI-writing anti-patterns from Wikipedia's guide (maintained
by WikiProject AI Cleanup)
- Covers content patterns (significance inflation, vague attributions),
language patterns (copula avoidance, synonym cycling), style patterns
(em dash overuse, boldface), and communication patterns (chatbot
artifacts, sycophantic tone)
- Includes a two-pass audit workflow: draft rewrite → "What makes this
obviously AI generated?" → final revision
- Adds guidance on injecting "soul" and personality, not just removing
bad patterns

**Updated: brand-writer**
- Added Phase 4 "Humanizer Pass" recommending `/humanizer` for
high-stakes content (homepage, announcements, product pages)
- Phases renumbered (Validation is now Phase 5)

## Attribution

Based on [blader/humanizer](https://github.com/blader/humanizer) and
[Wikipedia:Signs of AI
writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing).

Release Notes:

- N/A

morgankrey created

ca0fffb git: Fix panic on duplicate status entries in git status parsing (#49191)

Click to expand commit body
## Summary

Fixes **ZED-2XA** — "Unexpected duplicated status entries: Untracked and
Untracked" crash.

**Impact:** 22 occurrences, 3 users affected (Sentry). The panic was
introduced in #23483 (2025-01-22) which added the `dedup_by` logic for
handling deleted-in-index + untracked file combinations.

No related GitHub issues were found filed against this crash.

## Root Cause

`GitStatus::from_str` sorts entries by path and then calls `dedup_by` to
merge duplicate entries. The only handled case was `(INDEX_DELETED,
Untracked)` — all other duplicates hit a catch-all `panic!`. In
practice, git can produce duplicate `??` (untracked) entries for the
same path, which triggered this crash.

## Fix

- Identical duplicate statuses (e.g., `Untracked, Untracked`) are now
silently deduplicated (keep one)
- Other unexpected duplicate combinations log a warning instead of
crashing
- Added a regression test that parses `"?? file.txt\0?? file.txt"` and
verifies it produces a single entry

## Verification

- Reproduction test passes: `cargo test -p git --
test_duplicate_untracked_entries`
- Full crate tests pass: `cargo test -p git` (20/20)
- Clippy clean: `./script/clippy`

Release Notes:

- Fixed a crash when git produces duplicate status entries for the same
file path

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

morgankrey and factory-droid[bot] created

cbb9cce Fix panic in inlay hints (#49994)

Click to expand commit body
We were resolving inlay hints against an old snapshot, which
occasionally led to panics

Co-Authored-By: Cole <cole@zed.dev>

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:

- Fixed a (rare) panic in inlay hints

Co-authored-by: Cole <cole@zed.dev>

Conrad Irwin and Cole created

273a6cb extension_ci: Remove merge-base `fork-point` flag in version check (#50014)

Click to expand commit body
Also removes the debugging step again.

Release Notes:

- N/A

Finn Evers created

3873cd0 extension_ci: Add debugging step (#50013)

Click to expand commit body
GitHub 4 me 0 - after testing for x times in a local and even the remote
setup provided by Namespace during an action, this now adds a dedicated
step to debug the failure we are seeing in extension tests to finally
resolve said issue.

Release Notes:

- N/A

Finn Evers created

34d6a7c extension_ci: Explicitly state second merge base parameter (#50011)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

9cecaf7 Fix field name mismatch (#50010)

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

Conrad Irwin created

5c99e68 Pause scheduled background agent workflow (#50009)

Click to expand commit body
Disable the cron schedule for the background agent MVP workflow. Manual
runs via workflow_dispatch are still available.

The workflow was running daily on weekdays but the project is being
paused. This change:
- Comments out the schedule trigger
- Adds a note pointing to the Notion doc for context
- Preserves the ability to run manually

See [Background Agent for
Zed](https://www.notion.so/Background-Agent-for-Zed-3038aa087eb980449b9ee02f70ae8413)
Notion doc for current status and contacts to resume this work.

Release Notes:

- N/A

morgankrey created

c5aea77 editor: Fix clipboard selection range for multi-line copy-and-trim (#48977)

Click to expand commit body
When copying multiple selections with copy-and-trim, create a single
clipboard selection spanning the original buffer range rather than one
selection per trimmed line. This preserves correct paste behavior in Vim
mode when pasting trimmed content.

Closes #48869.

Release Notes:

- Fixed clipboard selection range for multi-line copy-and-trim

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>

Kunall Banerjee and dino created

c583fea extension_ci: Update compare versions check (#50006)

Click to expand commit body
Updates the check to explicitly compare against `origin/main` as opposed
to just `main`.

Release Notes:

- N/A

Finn Evers created

79e44ca Align docs_suggestions.yml with repo CI conventions (#49999)

Click to expand commit body
Cleans up a new GitHub Actions workflow.

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

John D. Swanson created

3ae4f4e Add `streaming-edit-file-tool` feature flag (#49997)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

d25a850 extension_ci: Set `fetch-depth` to `0` in tests (#49996)

Click to expand commit body
This makes the full history available in tests. 

Release Notes:

- N/A

Finn Evers created

269b03f workspace: Add ActivateLastPane action (#49853)

Click to expand commit body
## Summary

Add `workspace::ActivateLastPane` so users can bind a shortcut (for
example `cmd-9`) to focus the last pane.

## Why

Today, the closest option is `workspace::ActivatePane` with an index
(for example `8`), but that has side effects: when the index does not
exist, it creates/splits panes (`activate_pane_at_index` fallback).

`ActivateLastPane` gives a stable, no-surprises target: focus the
rightmost/last pane in current pane order, never create a new pane.

## Context

This capability has been requested by users before:
- https://github.com/zed-industries/zed/issues/17503#event-22959656321

## Prior art

VS Code exposes explicit editor-group focus commands and index-based
focus patterns (e.g. `workbench.action.focusSecondEditorGroup` ...
`focusEighthEditorGroup`) in its workbench commands:
-
https://github.com/microsoft/vscode/blob/main/src/vs/workbench/browser/parts/editor/editorCommands.ts#L675-L724

Zed already follows numbered pane focus in default keymaps
(`ActivatePane` 1..9 on macOS/Linux/Windows), so adding a dedicated
"last pane" action is a small, natural extension:
- `assets/keymaps/default-macos.json`
- `assets/keymaps/default-linux.json`
- `assets/keymaps/default-windows.json`

## Change

- Added `workspace::ActivateLastPane`
- Implemented `Workspace::activate_last_pane(...)`
- Wired action handler in workspace listeners
- Added `test_activate_last_pane`

## Validation

- `cargo test -p workspace test_activate_last_pane -- --nocapture`
- `cargo test -p workspace test_pane_navigation -- --nocapture`
- `cargo fmt --all -- --check`

## Risk

Low: focus-only behavior, no layout/data changes, no default keymap
changes.

Release Notes:

- Added `workspace::ActivateLastPane` action for keybindings that focus
the last pane.

---------

Co-authored-by: xj <gh-xj@users.noreply.github.com>

xj and xj created

3495746 git: Capture all working tree changes for the Review Diff action (#49993)

Click to expand commit body
The AI-assisted "Review Diff" action was only working for committed
changes because we were passing HEAD in the git command. Without it, it
captures all of the working tree changes, the same way the Branch Diff
view itself does. I think this is now better and more intuitive, because
it shouldn't be required that you commit the changes to have them
quickly reviewed by an agent.

Release Notes:

- N/A

Danilo Leal created

c58d388 git_ui: Hide the `ReviewDiff` action if branch diff view isn't open (#49988)

Click to expand commit body
This PR hides the `git: review diff` action when not in the branch diff
view, because otherwise, that wouldn't do anything.

Release Notes:

- N/A

Danilo Leal created

3cf7cb5 multi_buffer: Improve lookup performance for `MultiBufferSnapshot::excerpt` (#49986)

Click to expand commit body
Co-authored by: John Tur <jtur@zed.dev>
Release Notes:

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

Lukas Wirth created

e57a486 Narrow `.occlude()` call (#49981)

Click to expand commit body
Release Notes:

- N/A

John Tur created

b9463f5 multibuffer: Make "Open File" button also visible on hover (#49980)

Click to expand commit body
This makes the "Open File" button in the file header within multibuffers
also visible as you hover over the headers. Previously, this button
would only show up for the selected/focused file, but it now also shows
up on hover for making mouse-based interaction easier.

Release Notes:

- N/A

Danilo Leal created

0f21e2a extension_ci: Use fork point for version comparison (#49972)

Click to expand commit body
Lost another battle to the GitHub docs. Instead, now let's just do it
ourselves here in bash and not guess whatever GitHub is referring to in
their documentation..

Release Notes:

- N/A

Finn Evers created

f96ac58 extension_ci: Use `head_ref` for version comparison (#49970)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

f375a1a image_viewer: Use checkerboard from GPUI (#49575)

Click to expand commit body
As we have checkerboard, used same pattern as git diff inside Image
Viewer.
Now that CPU instructions aren't an issue, perhaps size can be lowered
to 16/24 for base boxes.



Release Notes:

- N/A

MostlyK created

c6a82b3 debugger: Open correct pane for breakpoints (#49390)

Click to expand commit body
Closes #40602

### Summary

This PR ensures that active debug lines only open in a single pane and
new active debug lines are added to the most recent pane that contained
an active debug line. This fixes a bug where Zed could go to the active
debug line file and location in every pane a user had open, even if that
pane was focused on a different file.

I fixed this by storing the `entity_id` of the pane containing the most
recently active debug line on `BreakpointStore`, this is consistent with
where the selected stack frame is stored. I used an `entity_id` instead
of a strong type to avoid circular dependencies. Whenever an active
debug line is being set in the editor or by the debugger it now checks
if there's a specific pane it should be set in, and after setting the
line it updates `BreakpointStore` state.

I also added a new method on the `workspace::Item` trait called `fn
pane_changed(&mut self, new_pane_id: EntityId, cx: &mut Context<Self>)`
To enable `Editor` to update `BreakpointStore`'s active debug line pane
id whenever an `Editor` is moved to a new pane.


### PR review TODO list

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:

- debugger: Fix bug where active debug lines could be set in the wrong
pane

Anthony Eid created

060d071 workspace: Invert dependency on call crate by extracting into a trait (#49968)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Piotr Osiewicz <piotr@zed.dev>

Jakub Konka and Piotr Osiewicz created

ca7d48a Update linux.md to add Ubuntu community packages (#49654)

Click to expand commit body
Today I added ubuntu LTS distributions to my debian repo.
You can find the index of noble and jammy here
https://debian.griffo.io/apt/dists/noble/main/binary-amd64/Packages
https://debian.griffo.io/apt/dists/jammy/main/binary-amd64/Packages

So far zed is the second most download package in my repo!

<img width="769" height="648" alt="image"
src="https://github.com/user-attachments/assets/e07a2312-e56a-4e2c-86d9-70cbf6c6aa73"
/>

Release Notes:

- N/A

Dario Griffo created

7b51947 Fix backward compatibility for v0.0.4 GitHub extension bindings (#49858)

Click to expand commit body
## Summary
- Route `zed:extension/github` in `since_v0_0_4` to the `since_v0_6_0`
bindings
- Call `latest_github_release` through `since_v0_6_0` for compatibility
with the v0.0.4 extension API

Release Notes:

- Fixed backward compatibility for v0.0.4 extension API GitHub bindings.

Felix Zeller created

fe6e528 terminal: Fix mouse scroll report count for negative scroll lines (#49931)

Click to expand commit body
Follow-up to #45600.

## Summary

Fix mouse scroll reports sending only one event when scrolling down in
terminal apps with mouse mode (tmux, neovim, etc.), regardless of how
many lines were scrolled.

## The Problem

After #45600, trackpad scrolling speed was fixed. But when scrolling
**down** (negative `scroll_lines`), the terminal was still sending only
**one** scroll report per gesture, no matter how many lines the user
scrolled. Scrolling up worked correctly.

## Root Cause

In `scroll_report()` we had:

https://github.com/zed-industries/zed/blob/a8043dcff8f28a0443d7ec238e7f020689ebe1ff/crates/terminal/src/mappings/mouse.rs#L96

`scroll_lines` can be negative (scroll down) or positive (scroll up).
For negative values:

| scroll_lines | max(scroll_lines, 1) | Reports sent | Verdict |
|--------------|---------------------|--------------|------|
| 3 (up)       | 3                   | 3           |Right
| -3 (down)    | 1                   | 1           |WRONG|

So we always sent exactly 1 report when scrolling down, losing the
scroll magnitude.

Use `scroll_lines.unsigned_abs()` instead of `max(scroll_lines, 1)`.
This matches how `alt_scroll()` in the same file already handles
`scroll_lines`. Now both directions send the correct number of reports.

https://github.com/zed-industries/zed/blob/a8043dcff8f28a0443d7ec238e7f020689ebe1ff/crates/terminal/src/mappings/mouse.rs#L102

## Testing

- Added unit tests: `scroll_report_repeats_for_negative_scroll_lines`
and `scroll_report_repeats_for_positive_scroll_lines`
- Manually tested scrolling in tmux and neovim with mouse mode

---

Release Notes:

- Fixed mouse scroll in terminal apps (tmux, neovim, etc.) only sending
one scroll event when scrolling down, regardless of scroll amount

Emamul Andalib created

b5eeeb9 agent_ui: Avoid querying `OnboardingUpsell` in prepaint (#49963)

Click to expand commit body
This hits the sqlite database unnecessarily

Release Notes:

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

Lukas Wirth created

564424b Defer wgpu context creation until we have a surface (#49926)

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

Conrad Irwin and Zed Zippy created

096610e Fix incorrect cursor excerpt handling in EP CLI format-prompt (#49947)

Click to expand commit body
Release Notes:

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

Max Brunsfeld created

9f08443 Better cargo wrapper (#49946)

Click to expand commit body
Fixes the wrapper on linux/mac to not double-run cargo. Makes it work at
all on windows

Release Notes:

- N/A

Conrad Irwin created

61e7746 Fix wasmtime panic handling (#49944)

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

Conrad Irwin created

c7dd119 git: More rigorously test excerpt syncing for split diff, and fix a couple of bugs (#49907)

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

Cole Miller created

060e4af Skip docs suggestions workflow for fork PRs (#49942)

Click to expand commit body
## Summary

Fork PRs don't have access to repository secrets (`FACTORY_API_KEY`),
causing the docs suggestions workflow to fail when triggered by external
contributor PRs.

This adds a condition to skip the `batch-suggestions` job when the PR
originates from a fork (`github.event.pull_request.head.repo.full_name
!= github.repository`).

## Context

See failing job:
https://github.com/zed-industries/zed/actions/runs/22323201362/job/64586740764

The `pull_request` trigger doesn't pass secrets to workflows running on
fork PRs for security reasons. This is expected GitHub behavior.

Release Notes:

- N/A

morgankrey created

1c7563c git_ui: Make stash picker footers button wrap (#49814)

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

ᴀᴍᴛᴏᴀᴇʀ and Danilo Leal created

bb271cf build: Add cargo timing script to devshell (#49941)

Cameron Mcloughlin created

da6ff30 settings_ui: Improve control alignment for multiline settings rows (#49850)

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

Altay and Danilo Leal created

62f1689 agent_ui: Add some design tweaks to the subagents UI (#49938)

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

Danilo Leal created

5ef898d Fix handling of excerpt regions in EP CLI (#49936)

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

Max Brunsfeld and Ben Kunkle created