Commit Graph
30586 Commits
Author SHA1 Message Date
Oleksiy Syvokon cb4d052d38 ep: Add BM25 context retriever (#58526)
Release Notes:

- N/A
2026-06-04 15:26:06 +00:00
Anant GoelandBen Brandt 5f2eba257d agent: Accumulate and persist cumulative token usage for threads (#58378)
`Thread::cumulative_token_usage` has been dead code since the agent2
rewrite: the field was added as a persistence placeholder in #36483 with
`#[allow(unused)]`, and the accumulation logic was deleted along with
agent1 in #40495. Since then, every saved thread persists
`cumulative_token_usage` as `{}` in `threads.db`, breaking offline
token-usage analysis and silently degrading eval reporting (`eval_cli`
prefers this value and was always falling back to the last request's
snapshot, undercounting multi-step turns).

This PR restores the accumulation, mirroring the original agent1
implementation:

- Providers emit multiple cumulative-per-request `UsageUpdate` snapshots
during a single request, so naive `+=` would double-count. We track the
previous snapshot for the in-flight request
(`current_request_token_usage`) and accumulate only the delta, resetting
the tracker each time a new completion request is built in
`run_turn_internal`. This counts each request exactly once, including
tool-call rounds and retries within a turn.
- Unlike agent1, the delta uses per-field `saturating_sub` instead of
the panicking `Sub` impl, so a provider reporting a smaller snapshot
can't crash Zed.
- Removed the `#[allow(unused)]`; the value now round-trips through
`to_db`/`from_db`, surviving restarts and continuing to grow when a
thread is reopened.
- Added a `cumulative_token_usage()` accessor following the
`latest_request_token_usage` convention.

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

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-06-04 15:24:02 +00:00
Oleksiy Syvokon 05f6f164a3 ep: Cap identifiers for LSP context retriever (#58539)
Release Notes:

- N/A
2026-06-04 14:30:21 +00:00
Sathwik ChirivelliandYara 🏳️‍⚧️ 3306edbfe9 git_ui: Disable CommitView diff hunk controls (#58514)
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 a bug where diff hunk controls were being displayed in the
non-editable commit view multibuffer.

Co-authored-by: Yara 🏳️‍⚧️ <git@yara.blue>
2026-06-04 12:55:44 +00:00
Oleksiy Syvokon df06ea0ad1 Fix infinite loop when inferring outline body range (#58536)
This test would cause an infinite loop without the fix.

Closes #53298 and #54069

Release Notes:

- Fixed high CPU usage when using Zeta in some cases (thanks
@clupprich!)
2026-06-04 12:26:03 +00:00
Smit Barmase 618be0d8f0 agent_ui: Fix panic when restoring an agent terminal in a remote project (#58533)
Closes FR-61

To reproduce:
- you should be on a remote project
- terminal’s working directory is set to home

Release Notes:

- Fixed a crash that could occur when restoring an agent terminal in a
remote project.
2026-06-04 12:11:17 +00:00
Zhiwei Liang 806adec3b8 Fix lost error messages when listing OpenRouter models (#58502)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] 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

`list_models` reads the response body once up front, then the error
branch read it
*again* into a shadowing `body`. Since the stream was already drained,
the second read
returned `""`, so error parsing always failed and we surfaced an empty
message instead
of the real API error.

This removes the redundant second read so the error branch uses the body
we already have.

Release Notes:

- Fixed OpenRouter API errors showing empty messages when fetching the
model list

Signed-off-by: Zhiwei Liang <zhiwei.liang@zliang.me>
2026-06-04 11:18:14 +00:00
Finn Evers 87a767c60a extension_api: Remove x86 support (#58259)
This PR drops the `Architecture::x86` variant within the extension API. 

Reason for this being that 
- Zed itself is not shipped for 32 bit and thus this variant is never
actually constructed
- we don't support a Node runtime in 32 bit environments
- basically all language and context servers do not ship 32 bit variants

Thus, this PR removes support for this variant, as currently, extension
authors always have to return an error for the missing 32 bit support of
their binaries. With this, this will no longer be needed.

Lastly, this removes one space of too much indentation I found whilst
doing these changes. Very visible in the GitHub UI luckily.

Release Notes:

- Removed support for extensions downloading language servers, debuggers
and MCP servers on 32-bit architecture. Extensions may still work if you
manually specify a path to an appropriate binary, but will not succeed
when attempting to download a binary based on the current systems 32-bit
architecture.
2026-06-04 11:01:48 +00:00
Oleksiy Syvokon c849e580b4 ep: Add an option to filter context by type when evaluating (#58523)
This allows us to collect all context once, and evaluate subsets of it
later.

Closes #ISSUE

Release Notes:

- N/A
2026-06-04 10:02:05 +00:00
Oleksiy Syvokon c8ec0f834c ep: Skip commits containing submodules / gitlinks (#58519)
We were not resolving them, so doing anything with such commit failed.


Release Notes:

- N/A
2026-06-04 09:05:19 +00:00
Albert BoguszandMrSubidubi 9aa0082ff6 Hide markdown code block scrollbar when wrapped (#58472)
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

Follow up of #57312. Hides the scrollbar (which does not do anything)
when markdown code blocks are wrapped.

Release Notes:

- Fixed the scrollbar on wrapped code blocks in the agent chat.

(As far as I can see the wrap button only exists in the agent chat and
not regular markdown previews.)

---------

Co-authored-by: MrSubidubi <finn@zed.dev>
2026-06-04 08:01:09 +00:00
saberoueslati 81687c98ae tab_switcher: Show full file names without truncation (#58483)
## Context

The tab switcher was truncating file names at the same 24-character
limit (`MAX_TAB_TITLE_LEN`) used by the narrow tab bar. This made files
that share a long common prefix, like `test_cpp_file_long_name.h` and
`test_cpp_file_long_name.cpp`, render identically, with both becoming
`test_cpp_file_long_name.…`.

The fix adds a `max_title_len: Option<usize>` field to
`TabContentParams`. When `None` (the default, used by the tab bar),
`Editor::tab_content` falls back to `MAX_TAB_TITLE_LEN` as before. The
tab switcher passes `Some(usize::MAX)`, which skips truncation entirely
and lets the UI container constrain the displayed text naturally.

Closes #58461

## How to Review

- **`crates/workspace/src/item.rs`** : Adds `max_title_len:
Option<usize>` to `TabContentParams`. Derives `Default` so `None` is the
zero-cost default; two existing struct literals in `pane.rs` that
couldn't use `..Default::default()` were updated to be explicit.
- **`crates/editor/src/items.rs`** : In `Editor::tab_content`, both the
title label and the description path now use
`params.max_title_len.unwrap_or(MAX_TAB_TITLE_LEN)` instead of the
hardcoded constant.
- **`crates/workspace/src/pane.rs`** : Two `TabContentParams` struct
literals updated to include `max_title_len: None`, preserving the
existing 24-char tab bar behaviour.
- **`crates/tab_switcher/src/tab_switcher.rs`** : Sets `max_title_len:
Some(usize::MAX)` in `render_match`, opting the tab switcher out of
truncation.

Video of the manual test below :
Used the same names of the files in the issue but also longer ones to
showcase the behavior in different file lengths :

[Screencast from 2026-06-04
00-08-02.webm](https://github.com/user-attachments/assets/5f388257-2f3d-494c-ab50-bf46496dbd38)

I'm obviously open to discussing this further specially the new
truncation behavior of the file with the longest name in the manual
test.

## 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
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- Fixed tab switcher truncating long file names, making files with a
shared prefix indistinguishable
2026-06-04 05:21:56 +00:00
Floyd Wang 32d512acdb gpui: Fix cursor styles not applying to panel-backed windows (#58493)
`set_active_window_cursor_style` only matched `WINDOW_CLASS` (used by
`WindowKind::Normal`). Panel-backed windows
(`Floating`/`Dialog`/`PopUp`) use the sibling `PANEL_CLASS`, so the
check failed for them: a focused panel fell through to `mainWindow`,
applying the cursor to the wrong window and leaving `cursor_pointer()`
with no visible effect.

Add an `is_gpui_window` helper that accepts both classes (both carry
`WINDOW_STATE_IVAR`) and use it to resolve the active window.

### Before


https://github.com/user-attachments/assets/f1bf820e-7af8-44f2-bfcd-d51e60706454

### After


https://github.com/user-attachments/assets/d4fa319d-029d-4516-922e-70ed753fa90a

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
- [x] Performance impact has been considered and is acceptable
2026-06-04 03:37:52 +00:00
Mayank Verma fcc4a6aaa3 gpui: Make tooltip show delay configurable (#58291)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] 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

This adds a `tooltip_show_delay(Duration)` API so callers can override
the default 500ms delay.
2026-06-04 03:15:36 +00:00
Roméo Maignal 7d250ab2e5 tab_switcher: Select first buffer in the list when a query is enabled (#58424)
…tered (#58420)

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 #58420

Release Notes:
- Reset `selected_index` to 0 whenever the query goes from empty to
non-empty, ensuring the first (best) fuzzy match is always highlighted
when the user starts typing.
- This is handled in `update_matches()` and `update_all_pane_matches()`
by checking whether the query is empty before applying the reset.
2026-06-04 03:05:21 +00:00
Danilo Leal db1be11a42 sidebar: Ensure plus icon button stays visible when menu is open (#58482)
Similar treatment to the ellipsis menu, where we keep the icon button
that triggers the menu visible, so we know where the menu is anchored
to. This was missing from a recent PR where we improved the drafts UX.

Release Notes:

- N/A
2026-06-03 23:23:01 +00:00
Danilo Leal f243c91756 Use button component for Mermaid block controls (#58473)
Tiny one here, just to maintain Ui consistency as I noticed the custom
div-built buttons were not using theme tokens for coloring the different
states.

<img width="600" alt="Screenshot 2026-06-03 at 6  54@2x"
src="https://github.com/user-attachments/assets/678474f1-1807-4993-ac15-928a0033338d"
/>

Release Notes:

- N/A
2026-06-03 22:04:36 +00:00
Anthony EidandYara e023730795 Fix hang detection crash when foreground stats are missing (#58464)
Register the foreground thread with the GPUI profiler before starting
hang detection, so foreground task statistics are available when the
hang detection thread samples profiler data.

cc: @yara-blue I choose to leave the expect statements because it seems
like an invariant that we should uphold. Let me know if you would rather
have early returns and telemetry if they're hit

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 FR-58

Release Notes:

- Fixed a crash in hang detection when foreground thread statistics were
missing.

---------

Co-authored-by: Yara <git@yara.blue>
2026-06-03 21:58:23 +00:00
Sathwik Chirivelli 590928affc git_graph: Add tree view for commit changed files (#58198)
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

Summary:

- Added a toggleable tree view for changed files in the git graph commit
details panel
- Reused shared ListItem rows and file icon folder rendering for
changed-file entries
- Kept flat view available for status-sorted changed files

Tests:

- cargo check -p git_graph

Release Notes:

- Improved commit details changed-file lists with an optional tree view
2026-06-03 21:45:33 +00:00
Marshall Bowers 269a799e31 collab: Add a warning about modifying database schema files (#58468)
This PR updates the test database schema files in Collab with a warning
about adding the corresponding database migration in Cloud before
merging any changes.

This should pair with the Danger warning to provide additional
signposting (and also for agents who may be modifying the files).

Includes the re-dumped schema for the addition of the `language_name`
column on the `language_servers` table.

Release Notes:

- N/A
2026-06-03 20:53:00 +00:00
Ben KunkleandNbarry 797cba7276 ep: Add accepted and explicit reject fetching (#58434)
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 ...

Co-authored-by: Nbarry <nbarry@zed.dev>
2026-06-03 20:51:15 +00:00
Danilo Leal 0dfe328a23 Improve markdown preview styles (#58465)
Closes https://github.com/zed-industries/zed/issues/58364

This PR adjusts heading and body text font size (mostly reducing them a
bit), as well as colors (making the body text slightly darker than
headings), and content separation, through adding a bottom border to
headings until H3.

| Before | After |
|--------|--------|
| <img width="2620" height="2044" alt="Screenshot 2026-06-03 at 5 
01@2x"
src="https://github.com/user-attachments/assets/d10c7916-e4cb-4999-8be1-08e26793fd35"
/> | <img width="2622" height="2044" alt="Screenshot 2026-06-03 at 5 
02@2x"
src="https://github.com/user-attachments/assets/13105982-283d-436b-973e-b6198cd2503b"
/> |

Release Notes:

- Improved markdown preview styles, making it more legible and easier to
parse.
2026-06-03 20:38:23 +00:00
MartinYe1234 fb7e3ec7b1 Fix external tool call locations (#58367)
Summary:

- Allow agent tool-call locations outside visible worktrees to resolve
as local buffers.
- Fall back to opening absolute paths from the tool-call click handler.

Tests:

- cargo test -p acp_thread
test_tool_call_location_resolves_external_file
- cargo check -p agent_ui

Closes AI-362
Release Notes:

- Fixed opening agent-created files outside the current project, such as
global skill files.
2026-06-03 19:48:08 +00:00
Henrique FerreiroandDanilo Leal 77429dc4ce Add Gerrit icon for Chromium hosting provider (#57713)
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

Improves [#44738](https://github.com/zed-industries/zed/pull/57500) by
including an icon for the Chromium code review remote. The Gerrit SVG
icon was created by Claude, using
https://commons.wikimedia.org/wiki/File:Gerrit_icon.svg#/media/File:Gerrit_icon.svg
as source.

<img width="167" height="66" alt="Screenshot 2026-05-26 at 11 48 46"
src="https://github.com/user-attachments/assets/d6a85751-3b86-4e30-a090-632f8b97d925"
/>

Release Notes:

- Added icon for the Chromium code review remote provider.

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2026-06-03 19:29:26 +00:00
Marshall Bowers 0f0d942959 collab: Only access github_user_id and github_login columns in tests (#58457)
This PR marks the `github_user_id` and `github_login` columns on the
`User` database model as only being accessible in tests.

Closes CLO-829.

Release Notes:

- N/A
2026-06-03 19:20:14 +00:00
Danilo Leal 64e8e75a9b Fix update version button stuck on "Downloading" step (#58435)
Very often, I'd wake up, to which point there's a new Nightly release
out, and the update button would be stuck in the "Downloading..." step.
It'd only immediately change its state to "Restart" once I quit the app
and re-open it again. Turns out we were just missing a cx.notify in the
callback to trigger a re-render.

Release Notes:

- Fixed a bug where the update version button would be stuck in the
"Downloading..." step.
2026-06-03 16:06:15 +00:00
Ben KunkleandOleksiy 0bc571b903 Fix jump capture (#58430)
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 ...

---------

Co-authored-by: Oleksiy <oleksiy@zed.dev>
2026-06-03 15:50:50 +00:00
Anthony Eid 0e559e5519 agent: Fix a UTF-8 boundary panic in the agent streaming parser (#58432)
The parser stores emitted byte offsets between partial tool-call parses.
Because partial JSON can be repaired differently as more bytes arrive, a
byte offset that was valid in an earlier string can land inside a
multibyte character in a later string. We now normalize those offsets
with `find_char_boundary` before slicing.

Added property tests covering boundary-sensitive write/edit streaming
sequences to prevent regressions.

Fixes Sentry ZED-8Y1 / 7523469866.

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 a crash that could occur while streaming agent edits containing
multibyte characters.
2026-06-03 15:49:01 +00:00
Bennet Bo FennerandRichard Feldman 7a1d4e670b agent: Fix compaction limit (#58431)
Release Notes:

- N/A

Co-authored-by: Richard Feldman <oss@rtfeldman.com>
2026-06-03 15:39:50 +00:00
zed-zippy[bot] da058f33aa Bump Zed to v1.7.0 (#58427)
Release Notes:

- N/A

Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-06-03 15:28:33 +00:00
Danilo Leal 576b8b79e4 settings_ui: Make skills page UI more consistent with others (#58425)
Mainly around ensuring the section dividers are visible and placing the
link/share button in the same place as the other items in the
regular/main settings UI page.

<img width="600" alt="Screenshot 2026-06-03 at 11  57@2x"
src="https://github.com/user-attachments/assets/69233da6-e743-435b-911a-6dd70c079560"
/>

Release Notes:

- N/A
2026-06-03 15:08:29 +00:00
Cameron Mcloughlin 6d20698eef mermaid: The other half of #57967 (#58419)
I was a silly goose didn't notice my `git push` failed, so merged #57967
without a critical commit, and some follow-ups.

This PR just cherry-picks those commits.

Release Notes:

- N/A or Added/Fixed/Improved ...
2026-06-03 14:10:43 +00:00
Matei Opreaanddino 5282cffff6 theme_selector: Mark the active theme with a check icon (#58404)
While browsing themes in theme selector, the currently active theme will
always be marked with a check icon so you can always have a reference of
where you started from.

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

Here's a preview: 
<img width="950" height="806" alt="Screenshot 2026-06-03 at 13 09 46"
src="https://github.com/user-attachments/assets/2081d9ec-b56d-4542-be58-e59e3569bc7a"
/>
<img width="958" height="818" alt="Screenshot 2026-06-03 at 13 09 52"
src="https://github.com/user-attachments/assets/134d933f-c9de-4b2c-80f5-ed5be4fb2844"
/>


Release Notes:

- Improved the theme and icon selectors to display a check next to the
active theme

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-06-03 13:56:42 +00:00
d178767443 sidebar: Add right-click menu to thread items (#58232)
Closes AI-286

This PR adds a right-click menu to thread items in the sidebar. A big
motivation for this addition was surfacing the "regenerate thread title"
action. And because this action and the "open thread as markdown" action
previously only worked on the already-loaded agent panel, there was a
load of plumbing needed to make that work even for threads in workspaces
that haven't been loaded, mostly using the thread metadata store. At the
end of the day, the title regeneration feature is only possible for the
Zed agent, so this is gated from external agents. But I believe it's now
in a slightly nicer spot due to some refactors to better expose the
state in which the title regeneration can fall into.

Release Notes:

- Agent: Added a right-click menu to thread items in the sidebar,
allowing to regenerate a thread title, rename a thread title, open the
thread as markdown, and archive it.

---------

Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-06-03 13:44:48 +00:00
Ben Brandt 201ad02662 git_ui: Make git_ui call support optional (#58413)
Broke the headless builds for evals. Open to cleaner ways of doing
this...

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-06-03 13:18:45 +00:00
Latias94andcameron e4893e74d1 markdown: Update merman renderer to 0.6 (#57967)
Following up on #57644 by @cameron1024, this PR updates `merman` to
v0.6.

With merman 0.6's new raster-safe SVG pipeline, Zed can move generic
`usvg`/`resvg` cleanup passes out of this crate and rely on merman for
them instead.

**What's moved to merman:**
- `foreignObject` fallback text generation
- Unsupported CSS cleanup
- Invalid SVG attribute cleanup

**What's kept in Zed:**
- Theme CSS injection and accent color assignment
- Zed-specific fallback overlay handling

**Integration note:**
In merman v0.6, fallback overlay groups are marked with
`data-merman-foreignobject="fallback"` and preserve source classes like
`node` or `section-*`, so host CSS can still style fallback text. This
PR updates Zed's accent tracker to check for this marker, ensuring
fallback overlays are not treated as real layout nodes.

I also added a render-stage test for the new contract: the SVG output
from `render_mermaid` is already raster-safe before Zed-specific
post-processing runs.

---

### 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:
- Improved rendering of Mermaid diagrams in Markdown previews.

### Tests:
- `cargo +1.95 fmt --check -p mermaid_render`
- `cargo +1.95 test -p mermaid_render`
- `cargo +1.95 clippy -p mermaid_render --all-targets -- -D warnings`
- `git diff --check HEAD~1..HEAD`

---------

Co-authored-by: cameron <cameron.studdstreet@gmail.com>
2026-06-03 13:10:54 +00:00
Oleksiy Syvokon c2d63e32b8 Clear LLM token and model list on sign out (#57724)
Closes #FR-20

Release Notes:

- Fixed Zed provider models remaining available after sign-out
2026-06-03 12:45:17 +00:00
Oleksiy Syvokon d1b5716958 ep: Back off Zeta requests after Cloud timeout (#58394)
Pause edit prediction requests for 10 seconds after receiving a 408
timeout response. This should help Cloud to recover from spikes.


Release Notes:

- N/A
2026-06-03 12:27:09 +00:00
Oleksiy Syvokon f4a83cfdd4 ep: Make retrieved context limit configurable (#58405)
The `--related-context-limit` param controls how many tokens can we
allocate for editable context. Useful for evaluation primarly.


Release Notes:

- N/A
2026-06-03 12:19:27 +00:00
6635ea690c agent: Improve compaction UI (#58409)
Reworked the UI so we can actually see the compaction output. Design
pass TBD


https://github.com/user-attachments/assets/89108398-476b-493f-a5eb-d20159fc6830



Release Notes:

- N/A

---------

Co-authored-by: Gaauwe Rombouts <mail@grombouts.nl>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
2026-06-03 12:18:28 +00:00
Lukas Wirth a94841f2c8 Fix panic in uncommitted_diffs_for_events (#58410)
nightly only i believe so no rel notes
Release Notes:

- N/A or Added/Fixed/Improved ...
2026-06-03 12:14:44 +00:00
2f8a37e907 vim: Fix increment/decrement for negative numbers without gaps (#58327)
Finally continuing from PR #35200:

I adapted the fix to the changed find_target() logic and added more
tests for version strings like `0.82.46`.
This is a different but similar fix compared to #47356 for helix mode -
not sure if this can and should be unified?

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)
(should not affect UI at all)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #35193 

Release Notes:

- Fixed vim's increment (`ctrl-a`) and decrement (`ctrl-x`) commands
skipping the number under the cursor in dotted strings like version
numbers (e.g. `0.81.46`) and hyphened date strings (e.g. `2015-02-01`)

---------

Co-authored-by: Stefan Bethge <kjyv@users.noreply.github.com>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-06-03 11:31:38 +00:00
Lukas Wirth c7035afc30 agent_ui: Cache cross-channel thread import check off the render loop (#58402)
channels_with_threads opened a fresh SQLite connection per
release-channel database on every call, and the sidebar called it twice
per frame from its render path, blocking the render loop on disk I/O.

Run the per-channel checks on a background thread and cache the
resulting channel names once at sidebar construction, since the
per-channel databases cannot change while this process runs.

Release Notes:

- Fixed a cause of stutters in the agent panel sidebar rendering
2026-06-03 11:29:40 +00:00
Smit Barmase 3d241b0e7b go: Fix table test detection in large files (#57277)
Closes #46881

Depends on #57276.

Implements `GoRunnableResolver` to post-process table test matches. The
resolver picks the correct string field by comparing against the field
used in `t.Run(tc.<field>, ...)`.

Release Notes:

- Fixed Go table tests not showing run buttons in files with many test
cases.
2026-06-03 10:53:22 +00:00
Oleksiy SyvokonandEric Holk 49764bd5c9 ep: Editable context collectors and metrics (#58400)
This change adds metrics for evaluating editable context collectors and
the collectors themselves:

- `cursor excerpt`: small area around the cursor.
- `current-file`: the full file that contains the cursor.
- `edit-history`: excerpts around edit history edits.
- `edit-history-file`: full files referenced by the edit history.
- `git-log`: files related to the cursor file according to recent git
co-change history.
- `oracle-file`: full files referenced by the expected patches. This is
an oracle/evaluation-only source because it uses the target patch.

Individual collectors can be enabled by passing a comma-separated list
like this: `ep context --type=edit-history,current-file`. There's also a
preset, `--type=editable`, which will enable all collectors except
oracle.

This change also adds the
`.prompt_input.related_files[0].excerpts[0].context_source` field.

Editable context is only accessible via ep-cli for now.

Release Notes:

- N/A

---------

Co-authored-by: Eric Holk <eric@zed.dev>
2026-06-03 10:10:34 +00:00
Tom Houlé de1effbd56 cloud_api_client: Add a few helpers for response handling (#58346)
This centralizes some repeated logic across `cloud_api_client`, to map
generic request failures (`ConnectionFailed`, 401s) to errors and read
response bodies, handling failures there too.

Closes CLO-759.

Release Notes:

- N/A
2026-06-03 09:18:14 +00:00
Wanten 2991e00e5e gpui: Anchor IME candidate window to the start of the visual line (#55876)
## Summary

This PR fixes horizontal jumping of the IME candidate window during text
composition.

On the shared `selected_bounds` path used by Windows, the candidate
window no longer follows the preedit caret character-by-character.
Instead, it anchors to the start of the current visual line, which keeps
the candidate window stable while typing.

Linux Wayland uses a different IME positioning path, so it was not
affected by the original implementation in this PR. This PR now also
includes a Wayland-specific adjustment so that Wayland uses the same
visual-line anchoring behavior.

## Changes

1. **Shared / Windows path**
Updated `selected_bounds` in `crates/gpui/src/platform.rs` to use a
visual-line-aware anchor for preedit text.

This removes the distracting horizontal movement of the candidate window
while typing and keeps the anchor aligned with the active visual line.

2. **Linux Wayland path**
Updated the Wayland IME area calculation in
`crates/gpui_linux/src/linux/wayland/window.rs` to use the same
visual-line-start anchoring strategy for preedit text.

This brings Linux Wayland in line with the Windows behavior while
preserving Wayland's platform-specific IME handling.

## Notes

I had previously tried a separate Wayland-specific fix in
24f7bb6e27, but later reverted it in
8cfe7a2a54441f89c170fbdd165a49b3e787b3c4 because the behavior was not
good enough and it regressed the original positioning behavior.

The current Wayland implementation is a new, simpler approach that keeps
the original behavior intact while also removing horizontal
candidate-window jumping.

## Visuals

### Windows / shared path

* **Before the fix:** (The candidate box moves along with the preedit
text, which is distracting)
    
<img width="918" height="675" alt="before"
src="https://github.com/user-attachments/assets/29cb05e4-3e99-4b54-9ce3-78710b307ce6"
/>

<img width="478" height="682" alt="before_1"
src="https://github.com/user-attachments/assets/cff38b65-96dd-4ed7-b06b-7fbcd448fab9"
/>

* **After the fix:** (Candidate box stays fixed at the line start during
typing, correctly jumps to new lines or follows active segments)

<img width="918" height="675" alt="after"
src="https://github.com/user-attachments/assets/4f50a710-dc0d-4959-a313-1184122ab759"
/>

<img width="478" height="683" alt="after_1"
src="https://github.com/user-attachments/assets/8e9df121-ffcc-45ad-ba0b-f1ad3cef87bc"
/>

### Linux Wayland

*  **Before / previous behavior**

<img width="552" height="796" alt="before"
src="https://github.com/user-attachments/assets/e3e84312-c626-41cb-945f-66c13aa96df6"
/>


*  **After / current implementation**

<img width="546" height="772" alt="after"
src="https://github.com/user-attachments/assets/a01ab6d7-a3b6-4d56-a1cb-b2b112b6b914"
/>


---

## 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
*   [x] Tests cover the new/changed behavior (manual verification only)
*   [x] Performance impact has been considered and is acceptable

Release Notes:

- N/A
2026-06-03 08:36:05 +00:00
Anthony Eid bc5e58ecc0 agent_panel: Fix mention pasting crash (#58375)
This crash occurred because metion crease were using raw text ranges
that were precomputed before calling editor.edit(), and didn't take into
account that editor normalizes text inserted

The fix is normalizing the text first, then using the normalize text
range for the crease

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:

- Fix a crash that could occur when adding a crease to the agent panel
2026-06-03 03:45:35 +00:00
Anthony Eid ab913c96c6 helix: Fix paste crash (#58373)
Closes [#58343](<https://github.com/zed-industries/zed/issues/58343>)

This crash happened because Helix paste restored selection using the raw
clipboard text length, but buffer edits normalize CRLF line endings to
LF before inserting. When pasting CRLF text at or near EOF, the restored
selection could extend past the normalized snapshot length and panic in
`MutableSelectionsCollection::select_ranges`. The fix normalizes the
text before measuring it for selection restoration and adds regression
coverage for CRLF paste in Helix mode.

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 a crash that could occur when pasting at the end of a file in
Helix mode
2026-06-03 03:45:31 +00:00
Anthony Eid da41cecb05 git: Fix a regression introduced with removing gitlib2 dep (#58359)
The regression introduced in #53453 where selecting a remote branch from
the branch picker checked out the remote tracking ref directly, leaving
the repository in detached HEAD state. Instead of creating a local
branch that set the remote branch as it's upstream.

The fix was reverting the old checks we did before #53452 was merged to
figure out if the branch was valid, remote only, local, or local without
the upstream set. Depending on the type of reference it is Zed will
check it out, or create/set the branch with remote tracking to its
upstream branch.

I also added a regression test to prevent this from happening again in
the future

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-06-02 23:29:55 +00:00