Commit Graph
37978 Commits
Author SHA1 Message Date
Lukas WirthandKieran Freitag e2d07eaa0c buffer_diff: Remove git2 dependency from buffer_diff (#56013)
Split out of https://github.com/zed-industries/zed/pull/53453

Release Notes:

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

Co-authored-by: Kieran Freitag <kfreitag@kieran.ca>
2026-05-26 14:28:02 +00:00
Bennet Bo Fenner 813ca1510c git_ui: Create new worktree on latest origin main (#57704)
When creating a git worktree, we now always fetch latest `origin/main`
and create the worktree based on that. If running `git fetch` fails, we
show an error toast with the option to base the worktree of off local
`origin/main`:

<img width="530" height="45" alt="image"
src="https://github.com/user-attachments/assets/f9ae4c05-8c2c-44f3-9c14-3c291a9d82f6"
/>


Release Notes:

- git: Always create worktrees based on latest `origin/main`
2026-05-26 14:20:50 +00:00
liam ba41a8b6cb vim: Fix replace in helix select mode (#57553)
Resolves https://github.com/zed-industries/zed/issues/57522

This diff fixes `r` in Helix select mode. The keybinding already pushed
the replace operator in `helix_select`, but when the replacement
character was typed, the operator dispatch only handled `HelixNormal`,
so selected text in `HelixSelect` fell through and cleared the operator
without editing the buffer.

With this change, Helix select mode uses the same `helix_replace` path
as Helix normal mode. Multi-character selections now replace each
selected grapheme with the typed character and return to Helix normal
mode, matching the existing behaviour for Helix normal selections.

Release Notes:
- Fixed `r` not replacing multi-character selections in Helix select
mode.
2026-05-26 14:15:31 +00:00
Bennet Bo Fenner e7b081dd52 agent: Show error message of edit tool call in UI (#57722)
Ensures that we show the error message of the `edit_file`/`write_file`
tools in the UI

Release Notes:

- agent: Fixed an issue where errors would not show up in the UI if an
edit tool call failed
2026-05-26 14:10:06 +00:00
crazydude123andSmit Barmase b8cc2b51be vim: Fix g i and g a in Helix mode to match Helix semantics (#57621)
In Helix mode, `g i` and `g a` currently leak through from the catch-all
`VimControl && !menu` section:

- `g i` fires `vim::InsertAtPrevious` (Vim's "go to last insert"), but
Helix's `goto_implementation` expects an LSP jump to the implementation
site.
- `g a` fires `editor::SelectAllMatches`, but Helix's
`goto_last_accessed_file` expects to jump to the alternate buffer.

This adds explicit overrides in the shared `(vim_mode == helix_normal ||
vim_mode == helix_select)` section so both keys behave per Helix's
documented goto-mode bindings: https://docs.helix-editor.com/keymap.html

### Before
| Key | Helix expects (`goto_*`) | Zed actual (leaked from Vim) |
| --- | --- | --- |
| `g i` | `goto_implementation` (LSP) | `vim::InsertAtPrevious` |
| `g a` | `goto_last_accessed_file` | `editor::SelectAllMatches` |

### After
| Key | Action |
| --- | --- |
| `g i` | `editor::GoToImplementation` |
| `g a` | `pane::AlternateFile` |

Refs #4642

Bounty: https://app.opire.dev/issues/01J6HJZCK02FVD4XG900FY36EE

### Release Notes:

- vim: Fixed `g i` and `g a` in Helix mode to invoke
`goto_implementation` and `goto_last_accessed_file` instead of leaking
Vim-mode bindings.

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-05-26 14:06:15 +00:00
liamandSmit Barmase 3e57e2b546 vim: Fix Helix jump on selected lines (#57565)
Resolves https://github.com/zed-industries/zed/issues/57486

This diff fixes `g w` after selecting lines with `x` in Helix mode. `x`
leaves Zed in Helix normal mode with a non-empty selection, but jump
target collection treated non-visual selections as ranges to skip. As a
result, words on the selected line did not receive jump labels.

With this change, Helix normal mode keeps existing selection ranges
eligible for jump targets, matching Helix's behavior where normal mode
can still carry selections. The regression covers `x` followed by `g w`
targeting a word inside the selected line.

Release Notes:

- Fixed `g w` not targeting words on lines selected with `x` in Helix
mode.

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-05-26 14:05:40 +00:00
crazydude123andSmit Barmase 35ba059398 vim: Swap q/Q in Helix mode to match Helix macro semantics (#57622)
Helix inverts Vim's macro keys: **`Q`** starts/stops recording, **`q`**
replays. Currently both leak through to Helix mode from the catch-all
`VimControl && !menu` section using Vim's mapping, so Helix users
hitting `Q` to record a macro instead get playback, and vice versa.

Helix's default keymap explicitly chooses this inversion — the Vim
mapping is even present as a commented-out alternative in
[helix-term/src/keymap/default.rs](https://github.com/helix-editor/helix/blob/master/helix-term/src/keymap/default.rs):

```rust
"Q" => record_macro,
"q" => replay_macro,
// "q" => record_macro,
// "Q" => replay_macro,
```

### Before
| Key | Helix expects | Zed actual (leaked from Vim) |
| --- | --- | --- |
| `q` | `replay_macro` | `vim::ToggleRecord` |
| `Q` | `record_macro` (start/stop) | `vim::ReplayLastRecording` |

### After
| Key | Action |
| --- | --- |
| `q` | `vim::ReplayLastRecording` |
| `shift-q` | `vim::ToggleRecord` |

Refs https://docs.helix-editor.com/keymap.html
Refs #4642

Bounty: https://app.opire.dev/issues/01J6HJZCK02FVD4XG900FY36EE

### Release Notes:

- vim: Swapped `q` and `Q` in Helix mode so they record / replay macros
per Helix defaults instead of leaking Vim bindings.

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-05-26 14:05:31 +00:00
Kunall Banerjee 8ab36ea921 git_ui: Fix commit modal buttons hidden at small ui_font_size (#56366)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #55939.

Release Notes:

- Fixed commit modal buttons being hidden for `ui_font_size` values
2026-05-26 13:42:51 +00:00
Kunall Banerjee e76d89e6a2 project_panel: Color worktree-modified files as modified, not warning (#57716)
I use the One Dark theme, so to actually test if my fix worked, I had to
also do:

```jsonc
"experimental.theme_overrides": {
  "warning": "#ff0000",
  "modified": "#00ff00",
},
```

| Before | After |
|--------|--------|
| <img width="676" height="254" alt="image"
src="https://github.com/user-attachments/assets/a2831667-1113-49ac-b6aa-1221c71bf997"
/> | <img width="299" height="137" alt="image"
src="https://github.com/user-attachments/assets/ad6e85aa-ba24-47ad-b69d-6d0c3aa3a407"
/> |

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #57443.

Release Notes:

- Fixed Project Panel git status indicator showing modified files with a
warning color instead of the modified color
2026-05-26 13:41:44 +00:00
Lukas Wirth 7faa815336 go_to_line: Fix go to line in multibuffers (#57700)
Instead of mixing row dimensions accidentally, this will now target the
rows in the current active excerpt, clamping to the nearest excerpt if
out of bounds.


Release Notes:

- Fixed go to line going to arbitrary lines in multibuffers
2026-05-26 13:41:28 +00:00
Cameron Mcloughlin 464b0b37bc agent: Fix clipping in fixed-width (#57726)
Fixed width mode wouldn't reliably take the sidebar width into account
when laying out the content of the agent panel. This fixes it
 
Release Notes:

- N/A or Added/Fixed/Improved ...
2026-05-26 13:23:01 +00:00
Ben Kunkle 9ac5425e90 Remove CRLF line endings (#57680)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #ISSUE

Release Notes:

- N/A or Added/Fixed/Improved ...
2026-05-26 12:59:21 +00:00
Lukas Wirth 02bec843ac agent: Make messages vec cheap to clone (#57712)
For long threads we will spend more and more time cloning the messages
just to save them to the database, as we need a copy of everything to do
so asynchronously. Messages are really expensive to clone though and we
accumulate a lot of them really fast, so even for smaller threads we
start seeing pauses in the millisecond range. The fix to this is fairly
simple though, we never mutate the messages once pushed to the vec, so
just Arc them.

This PR also slightly changes `UserMessage` to be a bit faster to clone
as well.

Release Notes:

- Fixed a cause of stutters when interacting with the agent
2026-05-26 10:00:34 +00:00
Tom Houlé 9b3457fff5 anthropic: Pass beta header for speed in BYOK (#57707)
We were sending the `speed` field set to `"standard"` for BYOK Anthropic
but without the corresponding beta header. leading the requests to fail
with "invalid request format to Anthropic's API: speed: Extra inputs are
not permitted".

This makes sure to attach the beta header whenever the `speed` parameter
is used.

Release Notes:

- Fixed "speed: Extra inputs are not permitted" errors for Opus 4.6 and
4.7 in the Anthropic API provider.
2026-05-26 09:00:33 +00:00
David AneksteinandLukas Wirth 8ce20e167c Clarify Lamport ordering comment in remote edit (#52037)
## Context

This PR updates a misleading comment in the remote edit merge path in
the text CRDT.

At `crates/text/src/text.rs`, the code skips fragments when
`fragment.timestamp > timestamp`, but the comment described this as
"lower lamport timestamp." In this codebase, Lamport ordering is
ascending (`value`, then `replica_id`), so `>` means a higher Lamport
timestamp.

This change is comment-only and does not change runtime behavior.

## How to Review

1. Open `crates/text/src/text.rs` and inspect the updated two-line
comment above the `while let Some(fragment) = old_fragments.item()` loop
in `apply_remote_edit`.
2. Confirm the condition directly below is unchanged:
`fragment.timestamp > timestamp`.
3. (Optional) Cross-check Lamport ordering in
`crates/clock/src/clock.rs` (`impl Ord for Lamport`) to confirm the
wording.

## Self-Review Checklist

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior (comment-only change; no
behavior changes)
- [x] Performance impact has been considered and is acceptable

Release Notes:

- N/A

Co-authored-by: Lukas Wirth <lukas@zed.dev>
2026-05-26 07:48:29 +00:00
KyleBarton d77fa6cf31 Support local devcontainer features (#55225)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #53486

Note that this builds off of #55117 because both touched similar code
areas; I thought it best to in order to avoid conflicts.

Release Notes:

- Added support for local features in dev containers
2026-05-26 07:13:00 +00:00
Kirill Bulatov 8d4499341e Support LSP document links (#56011)
Closes https://github.com/zed-industries/zed/issues/33587


https://github.com/user-attachments/assets/bbaea8a9-402e-485b-800e-2f4486142956

Release Notes:

- Supported LSP document links (enabled by default, use
`"lsp_document_links": false` to turn it off)
2026-05-26 07:09:47 +00:00
Albert BoguszandDanilo Leal 324b695f95 Add icons for Bitbucket, Codeberg, Forgejo, Gitea, and GitLab remotes (#57500)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] ~Unsafe blocks (if any) have justifying comments~ (N/A)
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Improves #44738 by including icons for more non-GitHub remotes instead
of a generic link icon. The SVG icons I added in `assets/icons` are
sourced from [simpleicons.org](https://simpleicons.org) as placeholders.
They most definitely aren't in Zed's style and need design team input.

Previews from History tab in Git panel (clicking on a commit in git
graph also shows matched icons):


![Bitbucket](https://github.com/user-attachments/assets/f6397716-8ac7-42f2-ba6d-7f2564cce19e)


![Codeberg](https://github.com/user-attachments/assets/d4c40d93-2cde-498d-8205-02c7dc495498)


![Forgejo](https://github.com/user-attachments/assets/a11d3ccb-05e3-4af6-9b14-8a89b4390e7e)


![Gitea](https://github.com/user-attachments/assets/7e84701a-a8c4-4298-851b-472765ef05b8)


![GitLab](https://github.com/user-attachments/assets/fb798f67-79f1-4937-add0-c3d636854182)

Release Notes:

- Added icons for Bitbucket, Codeberg, Forgejo, Gitea, and GitLab remote
providers.

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2026-05-26 02:10:47 +00:00
MartinYe1234andDanilo Leal 462dee35aa Add skill import from GitHub URL (#57458)
Summary:

- Added a URL mode to Skill Creator for importing GitHub Markdown files.
- Added clipboard prefill and command palette entry for creating a skill
from URL.
- Reused skill frontmatter parsing so imported skills prefill metadata
and content.
- Added Command Palette command to add skills via URL.

Closes AI-301
Release Notes:

- Added Skill Creator support for importing skills from GitHub Markdown
URLs

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2026-05-26 02:04:08 +00:00
Smit BarmaseandDanilo Leal 2d945f50fb agent_ui: Surface pending tool call permission when scrolled out of view (#57632)
Closes #53266

When a tool call awaiting permission is below the viewport, it’s easy to
miss why the agent has stopped working. This PR adds a floating row at
the bottom of the panel that mirrors the pending permission request.

It reuses the same permission prompt, so you can allow or deny it and
see the raw input without scrolling to the end of the thread. It offers
a "Scroll to" button to jump back to the inline prompt in the thread.
Once the inline prompt is in view, the floating row disappears. If
multiple tool calls need permission, including a subagent’s, they’re
shown one at a time so rows don’t stack on top of each other.

<img width="508" height="181" alt="image"
src="https://github.com/user-attachments/assets/7d5fedd6-bc4d-4674-8ea2-5c8f2ed3aff6"
/>

Release Notes:

- Improved visibility of pending tool call confirmations in the Agent
Panel when its scrolled out of view.

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2026-05-26 01:17:14 +00:00
Xiaobo Liu 2106e8c104 deepseek: Simplify error mapping in DeepSeek stream_completion (#57582)
Release Notes:

- N/A
2026-05-25 17:01:58 +00:00
Lena 16f52c0812 Duplicate Bot: Handle failure modes better (#57663)
- don't fail to parse json when Claude ignores the instructions and
returns fenced json
- don't fail to search for issues by area labels when Claude ignores the
instructions and returns prose instead of comma-separated list
- don't mark workflow runs as successful when json parsing blew up or
posting the comment failed

Release Notes:

- N/A
2026-05-25 16:49:51 +00:00
Max Brunsfeld 40f2aa2214 Fix git hang caused by accidental inheritance of stdin FD (#57572)
When restarting Zed, I hit a bug where all Git operations were hung. I
realized that there was a hanging git process running `git cat-file
--batch-check=%(objectname)`. The process was waiting on stdin. This was
surprising, because [the
code](https://github.com/zed-industries/zed/blob/e2bbdb19b6da2ee157ca1d36100acde2134a1663/crates/git/src/repository.rs#L1665-L1709)
that spawns this process explicitly closes the pipe that is attached to
the process's stdin after writing a list of ref names.

Using Claude, I found that this could be caused by that pipe file
descriptor being cloned due to file descriptor inheritance when another
child process is `exec`'d while that stdin pipe is open. The fix is to
enhance our Darwin process spawning layer to set the close-on-exec flag
for the pipe file descriptors, so that they are not inherited by child
processes spawned using code paths that don't set
`POSIX_SPAWN_CLOEXEC_DEFAULT`.

Release Notes:

- Fixed a bug on macOS where Git operations could be blocked depending
on the timing of spawning child processes.
2026-05-25 16:20:30 +00:00
Cole Miller 16ede263e4 git: Degrade gracefully when refreshing git state (#57292)
This PR changes the git store's `compute_snapshot`, which runs to update
state that depends on the contents of `.git`, to degrade gracefully when
fetching individual pieces of state fails. For example, when fetching
the list of branches fails, instead of returning early from the function
(leaving the previous git state snapshot in place with stale state), we
continue with an empty list of branches. This prevents failures of
individual git commands from making the entire git UI get stuck
indefinitely.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #ISSUE

Release Notes:

- Fixed an issue where failing to fetch branches using the git CLI would
prevent other git-related state from being updated.
2026-05-25 16:15:12 +00:00
MartinYe1234 d7fc2cae01 Revert "Rename agent threads from the sidebar" (#57654)
Reverts zed-industries/zed#57521
Forgot review approval

Release Notes:
- N/A
2026-05-25 15:45:10 +00:00
Cole Miller b31bc1507b Batch excerpt insertions per file when opening commit view (#57330)
When viewing the diff for a commit where one of the files has a large
number (hundreds or thousands) of diff hunks, we can get a hang on the
main thread, since there's a large amount of work to recompute diff
transforms for thousands of excerpts. This PR makes it so that we batch
the addition of excerpts, with yield points in between batches so the UI
remains responsive.

We should have something similar for the project diff, but that's a bit
trickier; will address it in a separate PR.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- Improved performance when opening the commit view with files that have
many diff hunks.
2026-05-25 14:42:01 +00:00
Finn Evers 20d9c75e15 zed: Add OpenStatusPage action (#57316)
Following up on our recent extension outage, this PR adds an action to
quickly visit our status page (which with the help of @\gaauwe was
recently updated to a more up to date design 🎉 ).

While already invokable through the command palette, we can later use
this to also add buttons where appropriate for a quick lookup of our
current status.

Release Notes:

- Added the `zed::OpenStatusPage` action to be able to easily visit the
Zed status page.
2026-05-25 14:41:33 +00:00
Mikhail PertsevandCole Miller f7088b3f8a git: Recover branch refs when metadata lookup fails (#57285)
cc @cole-miller 

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- Fixed branch enumeration when a broken Git ref prevents commit
metadata from being read.

---------

Co-authored-by: Cole Miller <cole@zed.dev>
2026-05-25 14:29:46 +00:00
Lena 3cd2b46b4e Duplicate Bot: Add more context for triagers (V3) (#57647)
In addition to the user-facing suggestions with potential duplicates,
the bot will now also have a separate collapsible block in the same
comment that's meant more for the triagers. This block will list the
duplicates we're less sure about as well as recently closed issues that
seem related to the issue at hand.
This commit updates the bot to V3 for the tracking-effectiveness
purposes and fixes some leftovers from the previous dupe bot change
(activating the bot for issues with no type).
It also improves the reliability of the script a bit, wrapping some
calls to the GitHub API into retries.


Release Notes:

- N/A
2026-05-25 14:29:13 +00:00
MartinYe1234 06b478c817 Rename agent threads from the sidebar (#57521)
Summary:
- Added a rename action for agent threads in the sidebar.
- Persisted renamed thread titles and kept open thread views in sync.

Release Notes:

- Improved agent threads by allowing them to be renamed directly from
the sidebar.
2026-05-25 14:25:25 +00:00
Xiaobo Liu 992d36b6b0 markdown: Support shift+click to extend text selection (#57586)
When shift is held during a single click, extend the existing selection
from its anchor point to the clicked position instead of starting a new
selection.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- Added markdown support shift+click to extend text selection
2026-05-25 14:09:22 +00:00
Finn Evers 1eb05b0192 docs: Add more information for releasing extensions (#57261)
Release Notes:

- N/A
2026-05-25 14:06:00 +00:00
Lena 7dd6b3f3c5 Duplicates bot: Stop skipping blank issues (#57643)
We regularly get a certain amount of 'blank' issues on github — those
created bypassing all our templates — and since a fair share of them are
bug reports, it would be helpful for the person triaging if the
duplicates bot has left suggestions on these issues too.

Release Notes:

- N/A
2026-05-25 12:20:10 +00:00
Kirill Bulatov 4bc769a328 Make project panel to auto reveal multi buffer excerpts with latest selection (#57236)
Make non-singleton editors to return project paths by adding a `fn
active_project_path`: this had been added as `fn project_path` and
similar already, so the PR replaced those methods with the generic one
now.

Before:


https://github.com/user-attachments/assets/d0773e18-3910-4c5b-bcb3-a742f9bf9691


After:


https://github.com/user-attachments/assets/e7a3f13e-9649-4564-a7e6-dccf54f8c000


Release Notes:

- Made project panel to auto reveal multi buffer excerpts with latest
selection
2026-05-25 11:53:12 +00:00
Oleksiy Syvokon bde5c0bdc9 ep: Fix bugs in the split-commit command (#57604)
Correctness and efficiency fixes to `imitate_human_edits`.

Release Notes:

- N/A
2026-05-24 18:49:05 +00:00
Oleksiy Syvokon 97c42c448f ep: Avoid service files as a split point (#57603)
Make up to ten retries to avoid placing cursor on files that are
typically machine generated (like Cargo.lock)

Release Notes:

- N/A
2026-05-24 18:00:41 +00:00
Oleksiy Syvokon 1d612aa5aa ep: Fix header for target patches (#57598)
Previously, we were always copying the _first_ header of the source
patch, which is wrong for 99% of time.

Release Notes:

- N/A
2026-05-24 17:22:48 +00:00
Oleksiy Syvokon a1af76c34d ep: Add jitter to cursor position (#57597)
When generating a training or evaluation example with `ep split-commit`,
the cursor sampling logic becomes:

1. 80% chance of cursor being at the end of the source patch
2. 20% chance of cursor being at the beginning of the target patch
3. 20% chance of adding a jitter offset (same line, ±5 columns for now)

Release Notes:

- N/A
2026-05-24 16:43:53 +00:00
Nikita Tikhomirov cd41936526 gpui_wgpu: Bump cosmic-text to v0.19.0 (#56988)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Resolves the issues described at
https://github.com/pop-os/cosmic-text/releases/tag/0.19.0
This fix addresses the characters '\u{001C}' | '\u{001D}' | '\u{001E}' |
'\u{0085}' | '\u{2029}', which can cause the Editor gpui-component to
crash, as these characters can cause the 'assert "left == right"'.

Release Notes:
- N/A
2026-05-24 08:33:56 +00:00
Abdullah As-Sadeed 79f1be3ee8 docs: Fix typo in minimap docs (#57568)
The "all_editor" option for the `minimap.display_in` key is invalid. The
correct option is "all_editors".

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- N/A
2026-05-24 07:27:52 +00:00
Vlad Ionescu 006ad3dfcf opencode: Model updates (#57556)
Closes https://github.com/zed-industries/zed/issues/57331

Model updates:
- **Free**: removed MiniMax M2.5 Free as per
https://github.com/anomalyco/models.dev/commit/10ddc78ce084dedb0fd62e96001b38303d382413
- **Zen**: added Gemini 3.5 Flash as per
https://github.com/anomalyco/models.dev/blob/f5f7d1a1677f549217b91575b7f28f969a15c3e2/providers/opencode/models/gemini-3.5-flash.toml
- **Zen**: added Grok Build 0.1 as per
https://github.com/anomalyco/models.dev/blob/f5f7d1a1677f549217b91575b7f28f969a15c3e2/providers/opencode/models/grok-build-0.1.toml

The newly-added Zen models **were not tested** as I don't have a Zen
subscription and I stubbornly refuse to get one.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- OpenCode: updated models (added Gemini 3.5 Flash and Grok Build 0.1,
removed MiniMax M2.5 Free)
2026-05-23 09:39:08 +00:00
liam b56cf1a352 grammars: Highlight markdown code spans in tables (#57506)
Resolves https://github.com/zed-industries/zed/issues/57501

This diff fixes Markdown inline syntax highlighting inside pipe table
cells. The block Markdown parser represents table content as
`pipe_table_cell` nodes rather than `inline` nodes, so Zed’s existing
`markdown-inline` injection ran for paragraph text but skipped code
spans inside tables.

With this change, table cells also inject `markdown-inline`, allowing
existing inline highlighting to handle code spans consistently between
paragraph text and table cells.

| Before | After |
| --- | --- |
| <img width="500" alt="Before screenshot"
src="https://github.com/user-attachments/assets/bdb75c18-9f20-4f3c-bea6-946194098db6"
/> | <img width="500" alt="After screenshot"
src="https://github.com/user-attachments/assets/23ae7bc5-5208-4dc7-ab6f-d07404aeae06"
/> |

Release Notes:

- Fixed Markdown inline code highlighting in table cells.
2026-05-22 22:40:13 +00:00
Cole Miller c0ba5aa6af scheduler: Add the ability to suppress Running seed output (#57525)
This is useful when running tests for a large number of iterations
noninteractively

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- N/A
2026-05-22 18:49:48 +00:00
Ben Kunkle 490c71af06 ep: Fix edit prediction diff popover being occluded by right docs and sidebar (#57519)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #ISSUE

Release Notes:

- Fixed an issue where edit prediction previews that appeared in the
diff popover could be occluded by open docks or the sidebar on the right
side of the editor
2026-05-22 18:21:54 +00:00
MartinYe1234 ad8dd42ad0 Avoid linkifying non-interactive code spans (#57515)
## Summary

- Skip code-span link resolution when markdown prevents mouse
interaction
- Add regression coverage for non-interactive code spans

## Tests

- cargo test -p markdown
test_code_span_link_ignores_code_when_mouse_interaction_is_prevented

Release Notes:

- Fixed extra link styling on file paths in agent tool call labels.
2026-05-22 17:20:57 +00:00
roboticsdude60 9c47885200 Fix skill frontmatter loading multi-codepoint UTF-8 graphemes at chunk boundary (#57466)
Self-Review Checklist:

- [X] I've reviewed my own diff for quality, security, and reliability
- [X] Unsafe blocks (if any) have justifying comments
- [X] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [X] Tests cover the new/changed behavior
- [X] Performance impact has been considered and is acceptable

Closes #57463

Release Notes:

- Fixed utf-8 parsing issues when loading skill frontmatter with
multi-codepoint graphemes (such as an emoji) crossing file chunk load
boundaries.
2026-05-22 15:29:06 +00:00
MartinYe1234andzed-zippy[bot] 667a07ce3c Prefix read_file tool output with line numbers (#56779)
Format `read_file` tool output in `cat -n` style: each line is prefixed
with its line number right-aligned in a 6-character field, followed by a
single tab, followed by the line's original content (newlines preserved,
including CRLF). Numbering reflects the actual file lines, so a ranged
read starting at line 42 emits `42` for its first line, not `1`.

For large files, content returned by `get_buffer_content_or_outline` is
**not** prefixed:

- The symbol outline path already conveys structure via its `[L100-150]`
annotations.
- The truncated first-1KB fallback (used when a file exceeds
`AUTO_OUTLINE_SIZE` and has no parseable outline) is wrapped in a
synthetic `# First 1KB of …` header, so its lines don't correspond to
real file line numbers.

Both cases are reported via `BufferContent::is_synthetic` (renamed from
`is_outline`).

Also updates the `edit_file` tool's input doc to describe the prefix
format and tell the model to strip it before constructing `old_text` /
`new_text`, preserving the original indentation that appears after the
tab.

Updates how we render `read_file` tool call outputs in the UI
(screenshots included in comments below).
Also fixes an existing bug where `read_file` tool call outputs would not
re-render their content code block when an older thread was restored
(the tool's `replay` hook was missing).

Closes AI-226

Release Notes:

- Improved how `read_file` tool output renders in the agent panel, with
a line-number gutter, and fixed it not re-rendering on restored threads

---------

Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-05-22 15:02:17 +00:00
Matei Oprea 502974e7b7 git_ui: Let branch and repo name use available panel width (#57502)
The git panel footer truncated branch and repo against a predefined
character budget. This PR improves that and lets both float free with
flex-based truncation.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable



Some examples.

<img width="738" height="1794" alt="Screenshot 2026-05-22 at 17 35 09"
src="https://github.com/user-attachments/assets/18a4873c-fbcf-4875-8d1a-82eaa2ce222c"
/>
<img width="1590" height="1562" alt="Screenshot 2026-05-22 at 17 35 15"
src="https://github.com/user-attachments/assets/c4adf7a3-e093-4104-af20-c098eda80c08"
/>
<img width="990" height="1570" alt="Screenshot 2026-05-22 at 17 28 20"
src="https://github.com/user-attachments/assets/eda0dd31-2461-4d4b-b63c-902c6c47231e"
/>
<img width="606" height="1640" alt="Screenshot 2026-05-22 at 17 28 12"
src="https://github.com/user-attachments/assets/4a165d75-93d3-45a4-9d8b-525c39f49493"
/>


Closes #57238

Release Notes:

- Fixed the git panel branch name staying truncated even when the panel
was wide enough to show the full name (#57238)
2026-05-22 14:56:05 +00:00
Ben Brandt c6dc1848b1 acp: Enable ACP additional directories (#57497)
If the agent server supports it, we pass along the multiple directories.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #54480

Release Notes:

- acp: External agents that support it now have access to all working
directories in a project.
2026-05-22 13:56:45 +00:00
Ben Brandt 1d60b45c6a acp: Add logout support (#57492)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- acp: Add Logout flow for agents that support it.
2026-05-22 12:25:26 +00:00