Commit Graph
37824 Commits
Author SHA1 Message Date
Koya Masuda dfd48fa971 git_ui: Count commit title length by characters instead of bytes (#57025)
# What

- Replace `title.len()` with `title.chars().count()` in the commit title
length check, so the limit is measured in Unicode characters instead of
UTF-8 bytes.
- Applied in two places that share the same logic:
  - `crates/git_ui/src/git_panel.rs` — Git panel's inline warning
  - `crates/git_ui/src/commit_modal.rs` — commit modal's inline warning

# Why

The commit title length check used str::len(), which returns UTF-8 byte
length rather than character count. As a result, titles containing
multi-byte characters (Japanese, Chinese, emoji, etc.) triggered the
warning far below the configured commit_title_max_length — around 24
characters instead of the default 72.


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)
  - Before


https://github.com/user-attachments/assets/a895530c-2f73-470c-97fa-29d9467c14e1

  - After


https://github.com/user-attachments/assets/ffbe1ba2-0ccc-4b02-87f5-836da7841dd9


- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #ISSUE

Release Notes:

- Fixed commit title length check miscounting multi-byte characters as
multiple characters.
2026-05-18 13:13:41 +00:00
Finn EversandMarshall Bowers 0c10bbbc81 extension_cli: Disallow slash command extensions (#56864)
This will make CI error when we receive updates or new slash command
extensions.

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
2026-05-18 12:59:22 +00:00
Tom Houlé 3097a10c61 context_server: Mirror authorization server grant_types_supported (#53501)
In MCP OAuth, mirror the authorization server's grant_types_supported in
the DCR registration body instead of hardcoding just authorization_code.
Logfire's auth server requires both authorization_code and refresh_token
in grant_types, and we already uses refresh tokens, so the only issue
was not advertising the capability during registration. The DCR body now
intersects our supported grant types with what the server advertises, or
sends all of ours when the server metadata omits grant_types_supported.

Without this change, the Pydantic Logfire MCP auth server refuses our
client registration.

Release Notes:

- MCP: Improve selection of the `grant_types` we send during OAuth
dynamic client registration.
2026-05-18 12:49:09 +00:00
Tom Houlé db2dd21cd3 context_server: Handle bad WWW-Authenticate resource_metadata URLs (#53502)
In MCP OAuth, when the resource_metadata URL from the WWW-Authenticate
header from the MCP server is on the same origin, but points to a broken
endpoint (for example Pydantic Logfire doubles the path component,
producing /mcp/mcp), fall back to the RFC 9728 well-known URIs instead
of failing outright. The header URL is still tried first, as per the MCP
spec.

Release Notes:

- MCP OAuth: Handle bad URLs in WWW-Authenticate by falling back to the
well known authorization server metadata URLs.
2026-05-18 12:48:55 +00:00
Bennet Bo Fenner 30efea88c3 agent: Remove unused LanguageModelImage APIs (#57050)
Pulled out from #56866. Will help with MCP image support

Release Notes:

- N/A
2026-05-18 12:22:22 +00:00
Ben BrandtandBennet Bo Fenner adee202815 sidebar: Persist terminal threads in sidebar metadata (#56966)
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:

- Persist Terminal Threads across reloads

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-05-18 11:18:05 +00:00
Bennet Bo Fenner e0e3985cdb copilot: Fix issue when switching between OpenAI and Anthropic models (#56655)
We were storing reasoning output inside `RedactedThinking` which causes
issues when switching mid-turn from an OpenAI to an Anthropic model.
This implementation fixes this by storing it inside `reasoning_details`,
which matches our responses implementation in `open_ai.rs`

See
https://github.com/microsoft/vscode-copilot-chat/blob/main/src/platform/endpoint/node/responsesApi.ts

For whatever reason the copilot chat extension sets `summary: []`, this
is what our implementation does too

Closes #56385

Release Notes:

- Fixed an issue where the agent would error when using Copilot as a
provider and switching between OpenAI and Anthropic models
2026-05-18 09:57:08 +00:00
Ben Brandt aa54eeb2b0 eval_cli: Wait for model discovery (#57038)
Given the model list is dynamic now, we need a wait

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-18 08:41:02 +00:00
Xiaobo Liu 43bfecaafa editor: Remove redundant allocation when merging highlight ranges (#57034)
Reduce one Vec clone + collect allocation per frame

Release Notes:

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

---------

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
2026-05-18 07:45:02 +00:00
Ben Brandtandzed-zippy[bot] df0eb4f2a9 acp: Add logout support for ACP agents (#56959)
Behind feature flag until we move RFD forward, but already working great
on codex

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: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-05-17 20:50:16 +00:00
Xiaobo LiuandBen Brandt 5a35a67fb5 project: Remove stale registry agent archive caches (#55290)
Registry archive agents install each version into a versioned cache
directory, but older extracted archives were left behind after updates
and
could accumulate disk usage.

After resolving the current archive cache directory, remove other
versioned
cache directories for the same registry agent while preserving the
current
version.

Release Notes:

- Fix certain ACP registry agents not cleaning up old versions

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-05-17 20:35:45 +00:00
marius851000 d494b03c53 open_ai: Fix parsing response if token use info is unspecified (#55919)
I tried to use google cloud to test gemma4 and compare with the result
of ollama. it had response such as

```json
{"choices":[{"delta":{"content":"Hello","reasoning_content":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"matched_stop":null}],"created":1778081610,"id":"KV_7adz7Ov20xN8Py-angQ8","model":"google/gemma-4-26b-a4b-it-maas","object":"chat.completion.chunk","usage":{"extra_properties":{"google":{"traffic_type":"ON_DEMAND"}}}}
```

(notice that, while "usage" is present, it does not have any of the
usual value)

Eventually, I had some more issue when parsing the response (unrelated
to this), so I decided to try the google ai endpoint, with its own set
of issue.

Those simple change should only loosen the accepted format, so no new
compatibility error are expected (but I haven’t tried with other
provider)

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] 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)
(no change)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable


Release Notes:

- Improved open-ai compatibility when token usage info is absent
2026-05-17 19:50:14 +00:00
Rio FujitaandBen Brandt 817a4b7676 project: Context server updates on worktree changes (#51244)
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

Release Notes:

- Fixed context server availability updates when a new worktree is added
to or removed from a project.

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-05-17 19:38:37 +00:00
Ben Brandt 793ca5de44 agent_ui: Paste dropped paths into agent terminals (#56686)
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-17 17:15:09 +00:00
Ben Brandt 72163f746a acp: Add ACP session deletion support (#57004)
Still behind a flag until RFD progresses. But also fixes one area where
we would have called delete even if we didn't have support.

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-17 17:03:17 +00:00
Ben Brandt c223ad36d2 agent_ui: Show title edit for terminals in agent panel (#57005)
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-17 17:01:36 +00:00
Mikhail Pertsev 9131075ae8 editor: Extract edit_prediction and clipboard out of editor.rs (#56927)
cc @SomeoneToIgnore

## Summary

Follow-up to [this
discussion](https://github.com/zed-industries/zed/discussions/55352#discussioncomment-16919854).
This extracts the edit prediction and clipboard code from `editor.rs`
into `edit_prediction.rs` and `clipboard.rs`.

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-16 19:19:36 +00:00
toddlererandAnthony Eid 93e7495f8a git: Disable log.showSignature for internal commands (#55708)
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 #53604.

When `log.showSignature = true`, git prepends signature verification
lines to stdout before the `--format` output. The null-separated parsers
in `crates/git/src/repository.rs` weren't expecting that, so SHAs ended
up corrupted — the git graph detail panel showed "0 changed files" for
every commit, and file history was similarly broken.

Setting `-c log.showSignature=false` in `build_command` is the same
trick we already use for `core.fsmonitor`. It only affects
log/show/whatchanged, so other commands aren't touched.

Verified locally with an SSH-signed repo: before this change the detail
panel said "0 changed files"; after, the modified files show up
correctly.

Release Notes:

- git_graph: Fix breakage that occurs when `log.showSignature` is
enabled

---------

Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-05-16 18:54:51 +00:00
Earlopain 89f3b9b242 settings: Fix inverted VS Code import for files.simpleDialog.enable (#55678)
Seems to have been introduced in
https://github.com/zed-industries/zed/commit/bfbe180d08b27373671e00ec8214b13a5d998fcb.
These settings actually mean the opposite:

> Whether to use the system provided dialogs for Open and Save As. When
set to false, Zed will use the built-in keyboard-first pickers.

> Enables the simple file dialog for opening and saving files and
folders. The simple file dialog replaces the system file dialog when
enabled.

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 import of VSCode setting `files.simpleDialog.enable` being
inverted
2026-05-15 22:52:11 +00:00
Tim KilåkerandAgus Zubiaga 0799463cbc markdown_preview: Shrink preview to fit when pane toolbar grows (#55009)
## Summary

- Changes the outer `MarkdownPreviewView` div from `.size_full()` to
`.w_full().flex_1().min_h_0()`.
- Before: preview's height stayed at 100% of the pane regardless of
toolbar size, so deploying the buffer search bar pushed the preview's
bottom 45px past the pane edge — clipped by the pane's
`overflow_hidden`.
- After: preview takes only the leftover main-axis space and shrinks as
the toolbar grows. Bottom edge stays at the pane bottom.

Verified empirically: `bounds.size.height` round-trips `952px ↔ 907px`
with the toolbar at `67 ↔ 112` (Δ = 45px = the search bar's height).

Companion to #55008 (anchor compensation). Both PRs come out of
investigating #54987 — they fix two independent bugs that surface
together when toggling the search bar.

## Test plan

- [x] Compiles with `cargo clippy -p markdown_preview -- --deny
warnings`.
- [x] Manual: `Cmd-F` in the markdown preview no longer clips bottom
content past the pane edge.
- [x] Manual: `Esc` restores the preview to full available height.

Release Notes:

- Fixed markdown preview content being clipped past the pane edge when
the buffer search bar is open

Co-authored-by: Agus Zubiaga <agus@zed.dev>
2026-05-15 22:51:51 +00:00
Joseph T. Lyons 15b280eee4 WIP (#56923)
<img width="541" height="245" alt="SCR-20260515-phfs"
src="https://github.com/user-attachments/assets/30413912-5c83-49c1-8874-4f987af222d3"
/>

Might be nice to in the future, have this open a modal to allow
inputting, similar to configuring MCP servers, but this is nice quick
fix for now.

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-15 21:34:20 +00:00
Joseph T. Lyons 4c6369d661 Add a function to produce docs scoped to release channel (#56917)
Now that we have per-channel docs, it'll be nice to have a method to
link to "this" channel's docs when we ship features that link out to
them.

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-15 21:17:43 +00:00
MartinYe1234 ee41bc1ca9 agent_ui: Replace @rule mentions with @skill (#56902)
Replaces the `@rule` autocomplete entry in the agent chat input with
`@skill`, since Zed Rules are being deprecated in favor of Skills.
Behavior matches the old `@rule` flow: selecting a skill inserts a Skill
mention crease that loads the skill file as context, and the entry only
appears when there are available skills.

The underlying `MentionUri::Rule` parsing/handling is left in place so
previously saved rule mentions still load correctly — only the
autocomplete surface area was migrated.

Release Notes:

- Replaced the `@rule` autocomplete entry with `@skill` in the agent
chat input.
2026-05-15 18:52:44 +00:00
Joseph T. Lyons b85e6ad929 Use a submenu for Copy Tag in Git Graph context menu (#56910)
The command palette action `git graph: copy commit tag` still deploys a
context picker.

<img width="276" height="169" alt="SCR-20260515-mttj"
src="https://github.com/user-attachments/assets/635e93eb-8617-4a99-8727-ca32a587d8e2"
/>

But the context menu now uses a submenu when there are multiple tags:

0 tags:

<img width="383" height="284" alt="SCR-20260515-mtgo"
src="https://github.com/user-attachments/assets/b9520725-887e-42ff-910d-08264b2976ba"
/>

1: tag:

<img width="524" height="298" alt="SCR-20260515-mtmb"
src="https://github.com/user-attachments/assets/17eaf2fa-81f2-43d2-9175-ba99be8faa23"
/>

multiple tags:

<img width="471" height="288" alt="SCR-20260515-mtau"
src="https://github.com/user-attachments/assets/881705e3-9281-4be4-9d44-931b4810352a"
/>

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 `Copy Tag` workflow from Git Graph context menu to deploy a
submenu instead of a modal picker.
2026-05-15 18:32:42 +00:00
morgankrey 136cc51a08 Document ChatGPT Subscription provider (#56828)
## Summary

- Document the new ChatGPT Subscription provider from #53166
- Add to the LLM Providers page alphabetically between Anthropic and
DeepSeek
- Cover sign-in flow, available models (GPT-5.5, GPT-5.3 Codex), and
sign-out

## Test plan

- [ ] Verify section renders correctly in docs preview
- [ ] Confirm links and anchors work

Release Notes:

- N/A
2026-05-15 17:57:59 +00:00
MartinYe1234 7df0011164 Hide Rules UI when Skills feature flag is enabled (#56782)
Hides the legacy Rules surfaces when the `skills` feature flag is
enabled, since Rules are surfaced through the Skills UI in that case:

- The **Rules** entry in the agent panel's ellipsis (triple-dot)
dropdown menu is hidden.
- The `assistant: open rules library` command palette action is hidden.

The `@rules` autocomplete in the chat input is intentionally left alone
for now.

### Implementation notes

`cx.has_flag::<SkillsFeatureFlag>()` reads from a global feature-flag
store that is populated asynchronously from the server:

- **Command palette**: `update_command_palette_filter` is already re-run
via `cx.on_flags_ready` once flags arrive, so the filter is reapplied
with the correct value. No new wiring needed.
- **Dropdown menu**: the popover's menu closure runs on every open, so
the latest flag value is reflected at click time.

Release Notes:

- N/A
2026-05-15 17:14:16 +00:00
Danilo Leal b1a7f461a7 agent_ui: Adjust settings UI for some providers (#56879)
Namely, makes the ChatGPT subscription settings item a bit tidier, as
well as more consistent with the Copilot one.

Release Notes:

- N/A
2026-05-15 17:08:40 +00:00
Marshall Bowers cbed5c63dc collab: Remove unused fields from database user model (#56898)
This PR removes some more unused fields from the database user model:

- `github_user_created_at`
- `email_address`
- `name`
- `created_at`

These fields were not being used anywhere, and are nullable/defaulted in
the database in tests.

Release Notes:

- N/A
2026-05-15 17:01:42 +00:00
Bennet Bo Fenner c1f7a0d645 action_log: Accept deleted hunks after commit (#56892)
Sometimes the action log would not auto-accept deleted hunks, and I
finally found a repro for this, here's an explanation of what went wrong

```rust
// Before
use crate::{Alpha, Beta};

fn keep() {
    work();
}

fn remove() {
    work();
}

fn after() {
    work();
}
```

```rust
// After commit
use crate::{Alpha};

fn keep() {
    work();
}

fn after() {
    work();
}
```

The action log may track the deletion as:

```diff
 fn keep() {
     work();
 }

-fn remove() {
-    work();
-}
-
 fn after() {
     work();
 }
```

But the commit diff may choose different boundaries because nearby lines
repeat:

```diff
 fn keep() {
     work();
-}
-
-fn remove() {
-    work();
 }

 fn after() {
     work();
 }
```

Both diffs produce the same final file, but their row ranges differ. The
previous logic only accepted committed edits when those row ranges
matched exactly, so already-committed edits could remain marked as
unaccepted.

Now we have a fast path for checking if the base_text matches exactly,
which works fine in this case.

Release Notes:

- Fixed an issue where agent edits would sometimes not get auto-accepted
when they were commited
2026-05-15 16:27:14 +00:00
Bennet Bo Fenner 9adb9cb476 language_models: Remove unused cache_configuration API (#56884)
Release Notes:

- N/A
2026-05-15 16:27:11 +00:00
Ben Brandt 4bac6443e8 git: Kill git blame process on task drop (#56890)
We replace these tasks often, so we should clean up after ourselves
here.

Release Notes:

- git: Fix git blame processes not getting dropped properly.
2026-05-15 15:53:21 +00:00
Richard Feldman 105c284625 Dismiss Settings overlay when invoking New Thread (#56818)
When the Agent Panel had the Settings overlay open on top of the
ephemeral new-draft thread, pressing **Cmd-N** (or clicking *Start New
Thread* in Settings) silently did nothing — the action ran, but the
Settings overlay stayed painted on top.

The bug was in `AgentPanel::activate_draft`. Every other `activate_*`
path goes through `set_base_view`, which clears the overlay. But
`activate_draft` has an early return for the case where the base view
already holds the requested draft, and that early return only refocused
— it never touched `overlay_view`. So when the user was already on the
draft and the Settings overlay was on top, "new thread" had nothing
visible to do.

Fix: in that early-return branch, if an overlay is currently open, clear
it (which also handles focusing and emits `ActiveViewChanged`).

Added a regression test that puts the panel on the draft, sets the
Settings overlay, dispatches `NewThread`, and asserts the overlay is
gone. The test directly toggles `set_overlay(OverlayView::Configuration,
…)` rather than calling `open_configuration`, because the latter builds
provider configuration views and panics on the fake LM provider's
`unimplemented!()` `configuration_view` — and the bug being exercised
lives entirely in the overlay/base-view bookkeeping.

Closes AI-237

Release Notes:

- Fixed pressing "New Thread" (or Cmd-N) doing nothing when the Agent
Panel's Settings view was open
2026-05-15 15:41:16 +00:00
Albab Hasan 8ad5baee9b gpui_wgpu: Respect buffer_font_fallbacks setting (#54878)
wires user configured `FontFallbacks` into the cosmic text path. the
chain is resolved at font load time and stored on each `LoadedFont`.
`layout_line` splits each `FontRun` into spans by codepoint coverage and
emits one `Attrs` per slot so cosmic text shapes each span with the
correct face. inheriting codepoints (marks, zwj, zwnj, variation
selectors) stick to the current span so emoji zwj sequences and
combining marks are not torn across faces.

Closes #17254

Self-Review Checklist:

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

Release Notes:

- added support for `buffer_font_fallbacks` on linux
2026-05-15 15:34:18 +00:00
Ben Kunkle 130d683179 ep: Compress settled requests to cloud (#56793)
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-15 15:14:41 +00:00
Ben Kunkle d86d6f44df docs: Re-add missing cookie banner env var in build (#56889)
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:

- N/A or Added/Fixed/Improved ...
2026-05-15 15:04:55 +00:00
Locke Bircher 083d16624c Fix text copy via mouse click on Wayland (#50406)
I've been working on a GPUI application which has a button for copying
text. After starting the app in Wayland in Linux I noticed that when I
click the button to copy text it does not work. After interacting with
other buttons and/or copying text via keyboard shortcuts then my copy
button works.

I thought I was handling something wrong, but then I noticed that Zed
also exhibits this behavior: upon starting Zed if you highlight text and
right-click and select "Copy" then nothing happens. After you interact
with other UI elements and/or keyboard shortcuts then copy buttons seem
to work fine.

This paper cut has been annoying me and with the help of Claude Code I
arrived at this small fix. This solves the problem and this appears to
be the way the serial should be handled for clipboard actions via button
clicks in Wayland, as far as I've been able to learn. Here are a couple
related Wayland documentation pages that I double checked:

1.
https://wayland.app/protocols/wayland#wl_data_device:request:set_selection
2.
https://wayland.freedesktop.org/docs/html/ch04.html#sect-Protocol-data-sharing-devices

- [x] Added ~a solid test coverage and/or~ screenshots from doing manual
testing

    - Here's a screen recording of the behavior without this fix:

[wayland-clipboard-problem.webm](https://github.com/user-attachments/assets/6c7d3b3b-56fe-4083-a011-4906ee9bfbec)

    - Here's a screen recording of the behavior with this fix:

[wayland-clipboard-fix.webm](https://github.com/user-attachments/assets/167ee731-118a-4f67-8489-6cfaca4389ce)

    - Here's a screen recording of the problem in Zed itself:

[wayland-clipboard-problem-zed.webm](https://github.com/user-attachments/assets/e41a40e1-54aa-4b3f-a2c6-f3e90d06d50f)


- [x] Done a self-review taking into account security and performance
aspects
    - None that I could find or think of

- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
    - I don't believe this is applicable...

Release Notes:

- Improved first mouse-driven text copy action on Wayland
2026-05-15 14:29:14 +00:00
Kunall Banerjee 8214d6489c settings_ui: Match all query words in search (#56835)
Settings search treated multi-word queries as OR, so “tab size” matched
any document whose words contained a prefix of “tab” or “size” --
flooding results with unrelated entries like “Show Tab Bar” and “Maximum
Tabs”.

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

Closes #56244.

Release Notes:

- Fixed settings UI search returning unrelated results for multi-word
queries
2026-05-15 14:17:57 +00:00
David Wu 076d63af7f agent: Add Opus 4.7 speed support (#56701)
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-15 13:57:33 +00:00
Ruy VieiraandDanilo Leal afda3e6997 agent_ui: Allow toggling profile selector during generation (#56784)
The idle guard prevented the keybinding from working while the agent was
generating, even though the profile selector button in the UI remained
clickable. Changing the profile affects future messages, not the
in-flight response, so there is no reason to block it.

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

Release Notes:

- Fixed the `agent: toggle profile selector` keybinding being ignored
while the agent was generating a response.

---------

Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
2026-05-15 13:49:21 +00:00
Jiby Jose 61185076e0 Fix title generation when using openai models via subscription (#56858)
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: #56857 Title generation failing on agent threads with OpenAI
models from subscription

Currently title generation requests are made without any system prompt
which causes instructions to be not set, and the request fails. This
change makes sure there is always instructions set (api does not seem to
care if its empty or not)

Release Notes:

- N/A
2026-05-15 12:57:37 +00:00
Anthony Eid 86631e3d4e agent_panel: Hide thread title edit button outside thread view (#56833)
Hide the edit thread title button unless the visible agent panel surface
is a thread.

Release Notes:

- N/A
2026-05-15 12:47:03 +00:00
Danilo Leal 062aa55af9 git_ui: Improve history tab focus display (#56813)
Follow-up to https://github.com/zed-industries/zed/pull/56743 where we
only show the focused styles in history tab items if you're navigating
it with the keyboard. We were previously flashing the focused border
styles on click and they're not necessary if you're pointer-based.

Release Notes:

- N/A
2026-05-15 12:46:37 +00:00
Jiby Jose cfe3705758 language_models: Support specifying reasoning effort with OpenAI subscription (#56849)
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: #56844 

Release Notes:

- Added support for specifying effort level when using OpenAI models via
ChatGPT subscription
2026-05-15 12:41:40 +00:00
Danilo Leal 671cf12320 agent_ui: Fix slash characters being intercepted as commands (#56862)
Follow up to https://github.com/zed-industries/zed/pull/56689. This PR
fixes an error where any instance of a slash character in the message
editor was going through the slash command validation. The fix makes the
validation get triggered only if the slash character is the very first
thing typed in the message. This follow the approach Slack, Discord, and
other apps that contain slash commands use. Also tweaked the messaging a
little bit so it's crystal clear what's happening.

Release Notes:

- N/A
2026-05-15 12:14:35 +00:00
MostlyKandMrSubidubi 647a381750 repl: Refresh Python kernelspecs on buffer language change (#54709)
- Subscribe to buffer LanguageChanged events so language detection that
completes later (e.g. in remote projects) triggers a kernelspec refresh
and ensures the REPL UI is populated.

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

Release Notes:

- Python REPL UI stays responsive on remote connection

---------

Co-authored-by: MrSubidubi <finn@zed.dev>
2026-05-15 12:07:32 +00:00
Danilo Leal 6c6a08c5f4 Fix activity indicator menu opening when actions are running (#56865)
The fix comes based on that if the button is already wrapped in the
popover menu, it doesn't need to have a click handler for the menu to
open!

Release Notes:

- FIxed bug where the activity indicator in the status bar wouldn't open
a menu with menu items to cancel running actions.
2026-05-15 12:01:31 +00:00
Tim Vermeulen 57493d2505 editor: Fix hit testing when the editor is clipped (#56861)
Fixes editor hit testing when the editor is clipped, most easily
noticeable in a partially off-screen markdown block in the agent panel.

`PositionMap::point_for_position` was indexing into `self.line_layouts`
relative to the editor's scroll position (which in this example doesn't
apply because these editors don't scroll), rather than relative to
`self.visible_row_range.start`. This caused the reported column to not
always be computed using the correct row, which especially impacted rows
closer to the bottom of the editor. Notice how closer to the bottom,
`point_for_position` reports the correct row, but reports the column as
0:


https://github.com/user-attachments/assets/2a5b2c8b-2994-4983-a33b-ede209ba00e6




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:

- Fixes selection not always matching the mouse position in a markdown
block in the agent panel
2026-05-15 11:43:39 +00:00
Oleksandr KholiavkoandSmit Barmase 672393f95c csv_preview: Implement data_table columns pining (#56619)
## Summary

Adds column pinning (freeze) capability to data tables, allowing the
first N columns to remain visible while scrolling horizontally through
the rest of the table content.

Common spreadsheet/data table UX pattern. When viewing wide tables with
many columns, users need to see identifying information (row labels,
IDs) while scrolling right to explore data.

## Demo
Idle state:
<img width="559" height="179" alt="image"
src="https://github.com/user-attachments/assets/b3f89221-8aa9-4e8a-9a39-6f06cc8a4eea"
/>
Scrolled horizontally (name column dissapeared, line numbers column
stayed pinned):
<img width="522" height="174" alt="image"
src="https://github.com/user-attachments/assets/c6695a00-5e40-49b8-81d7-0b30e26bb7bb"
/>

## Implementation

- New `pin_cols(n: usize)` builder method on `Table` to specify how many
columns to pin
- Pinned columns render in a fixed section that doesn't scroll
horizontally
- Scrollable columns render separately with independent scroll state
- Horizontal scroll offset adjustments for proper column resize handle
positioning with pinned sections
- Pinned section stays at viewport left edge while scrollable section
scrolls independently
- Supports 0 < pinned_cols < total_cols (partial pinning)
- Applied to CSV preview for better UX with wide datasets

## Context

Part of CSV preview feature series, following PR #53496 (settings UI).

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)~~
no ui changes besides pinning itself. UI improvements out of scope of
this PR

Release Notes:

- Improved CSV preview with column pinning to keep identifiers visible
while scrolling

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-05-15 11:12:41 +00:00
Cameron Mcloughlin 751ee4bade agent: Make fast mode more obvious (#56825)
Makes the fast mode toggle more obvious when it's enabled

<img width="154" height="34" alt="image"
src="https://github.com/user-attachments/assets/0468c9bd-a2c8-4368-9b19-7e068360f5d5"
/>

<img width="154" height="34" alt="image"
src="https://github.com/user-attachments/assets/d35199ce-b22e-4323-94d7-1dd8afaa8f04"
/>


Release Notes:

- N/A or Added/Fixed/Improved ...
2026-05-15 10:10:49 +00:00
Lukas Wirth c03d9261d3 scheduler: Fix stacked borrows violation in scheduler (#56850)
Release Notes:

- N/A or Added/Fixed/Improved ...
2026-05-15 10:07:50 +00:00