8d53ebc
ci: Add workflow for bumping Zed versions (#54485)
Click to expand commit body
Release Notes: - N/A
Finn Evers created
8d53ebc
ci: Add workflow for bumping Zed versions (#54485)
Release Notes: - N/A
Finn Evers created
a658e1d
git_ui: Fix double borrow when showing worktree error message (#54555)
Fixes ZED-6Q0 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 #54544 Release Notes: - Fixed a crash that could occur when git worktree creating fails
Bennet Bo Fenner created
2475a30
telemetry: Add latency metrics (#54454)
Self-Review Checklist: - [ ] 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 #ISSUE Release Notes: - N/A or Added/Fixed/Improved ... --------- Co-authored-by: Eric Holk <eric@zed.dev>
Katie Geer and Eric Holk created
8ff9302
bedrock: Fix wrong model ID for Opus 4.7 (#54554)
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 #54547 Release Notes: - bedrock: Fixed an issue where Opus 4.7 would not work because of an invalid model ID
Bennet Bo Fenner created
2c23789
Keep trailing semicolons attached to the preceding word when wrapping (#54546)
When soft-wrapping text, `LineWrapper::is_word_char` determines which
characters stick to the preceding word at wrap boundaries. The list
already includes trailing punctuation like `,`, `.`, and `:`, but was
missing `;`. As a result, a message like "we won't pass it on; no big
deal" could wrap with `;` isolated at the start of the next line (`on` /
`; no`).
This was most visible in the agent panel message editor but affects any
surface that uses soft-wrapping.
Also adds `assert_word("on;")` to `test_is_word_char` to guard against
regressions.
Release Notes:
- Fixed trailing `;` being wrapped to a new line instead of staying
attached to the preceding word.
Eric Holk created
73127da
acp_tools: Always capture ACP transport and stderr into the log ring (#54536)
Part of #54531. Previously the log tap started disabled and only flipped on when someone opened the ACP logs panel for the first time on a given connection. That meant the common *'I noticed something is wrong with my agent, let me go look at the logs'* workflow started with an empty pane \u2014 all the traffic that led up to the problem was already gone. This removes the `enabled` flag on `AcpLogTap` so capture is unconditional. The backlog ring is still bounded at `MAX_BACKLOG_MESSAGES` (2000), so memory is capped. The steady-state cost is one channel send per transport/stderr line, which is negligible compared to the JSON-RPC serialization that already happened to produce the line. Net diff is ~40 lines deleted from `acp_tools.rs` \u2014 the flag, its accessors, the early-return in `emit`, and the `active_tap` bookkeeping needed to enable it on first subscribe. I confirmed with the author of the original opt-in design before making this change. Release Notes: - N/A
Eric Holk created
41b4e89
Enable segment heap for Zed (#54538)
Reduces memory usage on Windows by using a newer heap implementation. Memory usage after opening into the Welcome screen: - Before: 124 MB - After: 91 MB Release Notes: - N/A
John Tur created
72d004c
git_graph: Add remote support for commit data handler (#54468)
### Motivation To support remote Git graph usage, we need remote support for the Git APIs that the graph depends on. This PR adds remote support for `CommitDataHandler` (the `git cat-file --batch` process manager), allowing remote Git graph consumers to fetch visible commit data without polling. #### Summary The Git graph separates the UI and data layers so the UI can continue rendering while commit data is fetched in the background. This change extends that model to remote repositories by allowing `GitStore::fetch_commit_data(sha: Oid, await_result: bool, cx: &mut Context) -> &CommitDataState` to await remote commit loading. For simplicity, the `Starting` variant was removed from `CommitDataState`. `CommitDataState::Loading(Option<...>)` now stores `Some(...)` when `await_result == true` is passed to `fetch_commit_data`. This allows the data layer to await commit loading without polling, and only when explicitly requested. I also removed the `Graph` prefix from `CommitData`-related types because this API is general-purpose and not limited to the graph. Longer term, I hope to replace `Repository::show` with the commit data functionality, since it already provides built-in caching. #### Bug Fixes - Fix stale `Loading(...)` entries that survive enqueue failure or handler shutdown. - Fix commit data handler bookkeeping so `pending_requests`, `completion_senders`, and `CommitDataState` remain consistent. - Fix remote commit-data loading so the data layer can await results instead of polling. #### Testing - Add property tests for commit data fetching. - Add a collab integration test that verifies batched remote commit-data fetching. #### Follow Up In a follow-up, I want to replace the `Repository::show` backend with the commit data handler and remove `CommitDetails` from the codebase as a cleanup and maintenance pass. The commit data handler already provides caching and is a better long-term path for commit metadata access. I may also want to allow the `CommitData` type to propagate errors to callers. For the Git graph, the remaining work is remote search and initial data fetching. 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: Remco Smits <djsmits12@gmail.com>
Anthony Eid and Remco Smits created
f4addb6
editor: Make the multiline comment folding more robust (#54102)
Basically just applied the suggested fix as described in #53606 , I also experimented with a hackier soln. that used the same logic as the code this is replacing, but it seemed solidly worse than this version. The original issue extremely clear with what is going on / what needed to be fixed. heres a video: https://github.com/user-attachments/assets/e7fc60f7-0a8c-403c-877f-93f58f370b00 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 #53606 Release Notes: - editor: Fixed incorrect inclusion of comments into folds
Finn Eitreim created
61ac961
Revert "jsonc: Recognize `renovate.json` as JSONC" (#54537)
Reverts zed-industries/zed#54527 This has unintended side effects, thus revert it to the prior state for now. Release Notes: - N/A
Finn Evers created
234fbfc
docs: Link to Task hooks from Worktree Isolation section (#54532)
Adds a link to the Tasks section of the docs from the Worktree Isolation section in parallel-agents.md Release Notes: - N/A
María Craig created
fa0ba05
Fix search bar not closing on escape in Helix keymap (#48847)
Release Notes: - Fixed an issue where pressing `Escape` in the search bar did not dismiss it when using the Helix keymap, while it worked correctly in Vim mode. Co-authored-by: buildingvibes <buildingvibes@users.noreply.github.com> Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
buildingvibes , buildingvibes , and Jakub Konka created
0800c00
editor: Add generic navigation overlays (#52630)
Closes #52629 ## Overview Adds a generic editor-owned navigation overlay primitive for rendering target ranges, anchored labels, and fade ranges. This gives [Helix amp jump](https://github.com/zed-industries/zed/pull/43733), [Beam Jump](https://github.com/zed-industries/zed/pull/45387), and future jump-style features (like [this one](https://github.com/zed-industries/zed/issues/14801)) a shared editor abstraction for overlay layout and paint instead of feature-specific render paths. ### 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
Mikhail Pertsev created
5920187
jsonc: Recognize `renovate.json` as JSONC (#54527)
Self-Review Checklist: - [Yes] I've reviewed my own diff for quality, security, and reliability - [N/A] Unsafe blocks (if any) have justifying comments - [N/A] The content is consistent with the [UI/UX checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) - [N/A] Tests cover the new/changed behavior - [N/A] Performance impact has been considered and is acceptable Release Notes: - N/A
Peter Tripp created
b4d10b8
helix: Update keymap to support search and similar features with no tabs open (#51434)
Release Notes: - helix: Fix some commands that you might want use when you have no panes open, like project or symbol search. --------- Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Finn Eitreim and Jakub Konka created
2c49900
terminal: Fix heredoc commands failing in agent shell (#49106)
Release Notes: - Fixed heredoc commands failing with "syntax error: unexpected end of file" in AI Agent shell execution Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Wuji Chen , Claude , and Jakub Konka created
b38e8f1
Revert "language: Fix slow Tree-sitter parsing" (#54524)
It's currently not valid to limit the syntax highlighting cursor in this way, because it prevents us from recognizing important patterns like `(function_item name:(identifier) @function` if the function exceeds the context length, which is common. We'll need to think harder about whether there's a different solution the problem of slow queries in the presence of large parse errors. Reverts zed-industries/zed#52674
Max Brunsfeld created
8e4c679
Handle git push when there is no remote (#54522)
Previously hitting `Publish` in the git panel would silently fail with no error message if the git repo was new or didn't have a remote. Now, when hitting `Publish` or attempting to push when there is no remote using keyboard shortcuts, or using `Push To` or force push options, an error message will be displayed. <img width="1135" height="522" alt="Screenshot 2026-04-22 at 10 02 26 AM" src="https://github.com/user-attachments/assets/93c5e7ee-371e-4c2c-961b-42501cbd7119" /> <img width="1135" height="522" alt="Screenshot 2026-04-22 at 10 02 36 AM" src="https://github.com/user-attachments/assets/a923e5f2-4099-45b5-8fe2-eb78f4fc9f10" /> 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 handling of `git push` when there is no remote available to push to
Chris Biscardi created
d4163c7
command_palette: Fix showing keybinding in footer actions on zero matches (#54519)
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 #54517 Release Notes: - Fixed Command Palette behavior where footer actions could still route to a fallback hidden command when search returned no matches.
galuis116 created
9b8c468
Fix auto_save on_focus_change with modals (#54455)
Self-Review Checklist: Closes #53863 Updates #53920 Updates #51949 Updates #45166 Release Notes: - Updated auto_save_on_focus_change to handle modals better.
Conrad Irwin created
828a64c
Stop eagerly clearing available code actions on row change (#53571)
João Soares created
76883bb
Support code lens in the editor (#54100)
Kirill Bulatov created
c928336
Handle more already supported image formats across the codebase (#54326)
Kirill Bulatov created
7fd07dd
git: Only show header staging checkboxes when hovering the header itself (#54204)
Previously, we would show these checkboxes whenever hovering anywhere in the `entries` group, which covers all headers and status entries. This seems excessive, and also has a problem that the header checkboxes disappear when the mouse moves over a non-header (status entry) checkbox, presumably because those have `stop_propagation`. Now, we only show the checkbox for a header when that specific header is hovered. 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
Cole Miller created
2a6ee04
Add `line_ending` setting to control line-ending normalization (#54356)
Closes #49581 Adds a `line_ending` language setting that controls how line endings are handled for new files and during format/save: - `detect` (default) — detects existing line endings; new files use the platform default - `prefer_lf` / `prefer_crlf` — sets LF or CRLF for new files and files with no existing convention, while preserving existing files - `enforce_lf` / `enforce_crlf` — normalizes all line endings to LF or CRLF on every format/save The setting can be configured globally, per-language, or via `.editorconfig`'s `end_of_line` property (which maps to `enforce_lf` / `enforce_crlf`). Release Notes: - Added `line_ending` setting to control how line endings are handled for new files and normalized on save. - Added support for `.editorconfig` `end_of_line` property to enforce line endings. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
melocene and Smit Barmase created
c974420
Fix hang in replace all when the query contains non-ASCII text and regex-special characters (#54422)
Closes #54331 Updates #50848 Release Notes: - Fixed hang in replace all when the query contained non-ASCII text and regex-special characters
Conrad Irwin created
bcf4c71
vim: Respect auto_indent setting in o/O commands (#53620)
## Summary Closes #53570 - `o` and `O` in normal mode were unconditionally copying the current line's indentation into the new line, ignoring the `auto_indent` setting entirely - When `auto_indent: "none"` is set, new lines created by `o`/`O` now start at column 0 as expected - When `auto_indent` is `preserve_indent` or `syntax_aware`, behavior is unchanged The fix reads `language_settings_at` for the relevant row and splits edits into two paths: `editor.edit()` (no autoindent) for `None`, and `editor.edit_with_autoindent()` for everything else — mirroring the approach already used by the non-vim `Newline` action. ## Test plan - Added `test_o_auto_indent_none`: verifies `o`/`O` produce column-0 lines with `auto_indent: "none"`, including edge cases (first line, empty line) - Added `test_o_preserve_indent`: verifies `o`/`O` copy the current line's indentation with `auto_indent: "preserve_indent"` (regression guard) - Existing neovim-backed tests (`test_o`, `test_insert_line_above`, `test_o_comment`) continue to pass Release Notes: - Fixed vim `o`/`O` commands ignoring the `auto_indent: "none"` setting, causing new lines to inherit indentation instead of starting at column 0
David Alecrim created
2d30f95
Add Parallel Agents documentation (#53535)
Adds documentation for the Parallel Agents feature. ## Changes - **New page** `docs/src/ai/parallel-agents.md`: covers the Threads Sidebar component, switching threads, the archive and search, importing ACP threads, running multiple threads, multiple projects, worktree isolation, and the default layout change - **`docs/src/ai/overview.md`**: rewrites the Agentic editing section to lead with the Threads Sidebar, adds Parallel Agents to the Getting started links - **`docs/src/ai/agent-panel.md`**: adds a cross-link to the Threads Sidebar in Creating New Threads, removes the Navigating History section (now covered in the Threads Sidebar docs) - **`docs/src/SUMMARY.md`**: adds Parallel Agents between External Agents and Inline Assistant Release Notes: - N/A --------- Co-authored-by: Katie Geer <katie@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
María Craig , Katie Geer , Max Brunsfeld , and Danilo Leal created
dfb8e34
settings: Remove the `project_name` project setting (#54511)
The `project_name` worktree setting was added in #36713 to let users
override the name shown in the window title. Its description ("The
displayed name of this project. If left empty, the root directory name
will be displayed.") suggests broader coverage, and #46440 reports the
reasonable expectation that it should also apply in the project
switcher. In practice the setting has only ever affected
`Workspace::update_window_title`, so everywhere else (recent projects,
the multi-worktree pane, ...) keeps falling back to the worktree root
name.
Rather than plumb the setting through each of those surfaces, I'm
removing it. Having a project-level setting control how your editor
displays the project has downsides. For example it means a checkout can
dictate UI in someone else's Zed. The natural home for a custom display
name is the workspace DB, set from the UI, which is what we should do if
we want this feature back.
If you want this back, the path forward is to store the display name in
`WorkspaceDb`, expose a UI affordance to edit it, and read it from
`update_window_title`, `recent_projects::get_recent_projects` /
`get_open_folders`, and any other places that currently derive a display
name from the worktree root.
Closes #46440
Release Notes:
- Removed the `project_name` project setting. It only ever affected the
OS window title, and the expectation that it would show up in the
project switcher and elsewhere is better served by a future UI-driven,
per-workspace setting stored locally.
Tom Houlé created
58e2b7e
acp: Use new Rust SDK (#52997)
Testing out Niko's new SDK design 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
Ben Brandt created
b7a6783
Bump Zed to v0.235 (#54508)
Release Notes: - N/A
Joseph T. Lyons created
b7d35e5
settings: Add auto completion to command aliases setting (#54496)
Update the JSON schema generated for the settings file in order to be able to provide the list of valid actions when editing the values for the `command_aliases` setting. While reviewing https://github.com/zed-industries/zed/pull/52892 , I noticed that, even though we already have support for this in the keymap file, we don't support it for the `command_aliases` setting, so went ahead and refactored this a bit such that the existing functionality for the keymap file JSON schema could also be re-used for the `command_aliases` setting. Here's a quick big-picture breakdown of the relevant changes: * Add `settings_content::ActionName` newtype, representing a simple named action without arguments. The `settings_content::ActionName::build_schema` function can be used to build the schema of all possible action names. * Add `settings_content::ActionWithArguments` newtype, representing an action with arguments. This was mostly done so as to keep both action without arguments and action with arguments newtypes together, even though we don't have `settings_content::ActionWithArguments::build_schema`, as it is only used by the keymap schema generation logic and probably doesn't warrant moving it here right now. * Update both `settings_content::WorkspaceSettingsContent::command_aliases` and `workspace::workspace_settings::WorkspaceSettings::command_aliases` to now be of type `HashMap<String, ActionName>` such that, when the json schema for `command_aliases` is generate, it'll now reference the `#/$defs/ActionName` schema. * Update `SettingsStore::json_schema` so as to populate the `#/$defs/ActionName` schema at runtime, replacing it with the actual list of valid action names. 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 support for auto-completing action names on `command_aliases` setting
Dino created
2eafa6e
language_models: Remove unused language model token counting (#54177)
Drop the `count_tokens` API and related implementations across providers, and remove the unused `tiktoken-rs` dependency. I was going to update the dependency becuase they finally released a fix we needed. But then I realized we only used this api in one place, the Rules library. And for most models it would have been wildly incorrect becuase we use tiktoken, i.e. OpenAI tokenizers, for almost every model, which is going to give incorrect results. Given that, I just removed these because the difference in how we get these has caused plenty of confusion in the past. 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
Ben Brandt created
254c27d
Revert "markdown: Apply theme syntax color to inline code in rendered markdown" (#54504)
Reverts zed-industries/zed#54475 This causes inline code blocks to look strange in some themes
Bennet Bo Fenner created
8d1fc1a
vim: Ensure vgl does not select newline in helix mode (#54238)
Release Notes: - Fixed Helix vgl now correctly selects to end of line without including the newline character in the selection. --------- Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Cavebat Software and Jakub Konka created
565f4d0
Fix missing V0331SeedModelPy references (#54500)
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 ...
Ben Kunkle created
5e3c762
docs: Improve vim mode's command mnemonics section (#52892)
The "Command menonics" section in Zed's vim mode documentation made it seem that the mentioned aliases were available, by default, which isn't the case. These changes update the documentation to make it clearer that this is meant to be set on the `command_aliases` setting and provides and example configuration that users can easily copy and paste into their settings file. 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 #52894 Release Notes: - N/A --------- Co-authored-by: dino <dinojoaocosta@gmail.com>
sinder and dino created
c90b42c
ep: Add v0331 prompt format alias (#54328)
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 ...
Ben Kunkle created
5c5727c
Replace terminal `SendText` ctrl keybinds with `SendKeystroke` (#51728)
`SendKeystroke` seems to work for all ctrl keybinds. Prefer it over `SendText` for readability. showkey reports the same key sequences if I apply these keybinds to my user keymap. Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing - [ ] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Justin Su and Jakub Konka created
71f5dbd
Fix ctrl-delete keybind in the terminal (#51726)
showkey in Ghostty, iTerm2, and Terminal.app reports ctrl-delete as `<ESC>[3;5~`. I tested this keybind on macOS, where fish_key_reader correctly interprets it as ctrl-delete. Closes #51725 Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing - [ ] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Fixed ctrl-delete keybind in the terminal --------- Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Justin Su and Jakub Konka created
7b082cb
Add interleaved_reasoning option to openai compatible models (#54016)
Release Notes: - Added interleaved_reasoning option to openai compatible models --- This PR adds the interleaved_reasoning option for OpenAI-compatible models, addressing the issue described in https://github.com/ggml-org/llama.cpp/issues/20837. In my testing, enabling interleaved_reasoning not only resolved the tool-calling issues encountered by Qwen3.5 models in llama.cpp, but also appeared to improve the model's coding capabilities. I have also verified the outgoing requests using a proxy to ensure the parameter is being sent correctly.It is also likely that this change will benefit other models and providers as well. Note: While I used AI to assist with the implementation, I have reviewed and tested the changes. As I am relatively new to Rust and the Zed codebase, I would appreciate any feedback or suggestions for improvement. I am happy to make further adjustments if needed. Thank you all for building such an amazing editor! Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Guilherme do Amaral Alves and Oleksiy Syvokon created
8f0efe9
editor: Don't render editor behind sticky scroll header (#54465)
Previously, sticky scroll headers were painted on top of the main editor. This works, but only if the editor background is a solid color Bad: <img width="603" height="319" alt="image" src="https://github.com/user-attachments/assets/bf438003-a416-46a6-85bc-dfa767be067e" /> Good: <img width="603" height="319" alt="image" src="https://github.com/user-attachments/assets/e644e54a-6667-41e1-86d0-16e659bea844" /> Release Notes: - Fixed: Editor no longer renders behind sticky scroll headers while using a transparent theme
Cameron Mcloughlin created
25036ba
Handle new profile form in migrate_settings and migrate_language_setting (#53681)
I noticed that there are helper migration functions that apply settings transformations to multiple layers (root, platform, release-channel, and profile): `migrate_settings` `migrate_language_setting` Both of these handle the old settings profile forms, so I've updated them to handle either form, for usage in historical and future migrations. Migration `m_2026_04_10` actually introduced a wrapper function to provide to `migrate_settings` to handle both forms, which is what clued me into the fact that I missed these migration helpers when I wrote the `m_2026_04_01` originally (I didn't know they existed). Self-Review Checklist: - [X] I've reviewed my own diff for quality, security, and reliability - [N/A] Unsafe blocks (if any) have justifying comments - [N/A] 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 --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Joseph T. Lyons and Smit Barmase created
eee6b4c
project_panel: Allow New File from an empty hidden-root project (#53947)
This fixes #53869. Creating a new file from the project panel background menu failed when a single local project was empty and its root was hidden. In that state there are no visible entries to seed `expanded_dir_ids`, so the action returned early before opening the filename editor. This initializes that state lazily from the root entry when creating a new item, and adds a regression test for the empty hidden-root path. Release Notes: - Fixed creating a new file from the project panel context menu in empty local projects
Hamza Paracha created
6b27522
terminal: Handle `menu::SecondaryConfirm` properly (#48764)
Closes #48642. - [ ] Tests or screenshots needed? - Tests written by AI. Not sure if the test suite is setup correctly. I’ll come back later and see if the tests are utter BS or not. - [ ] Code Reviewed - [x] Manual QA Release Notes: - Handle `menu::SecondaryConfirm` properly in the terminal Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Kunall Banerjee and Bennet Bo Fenner created
2ca94a6
acp: Register ACP sessions before load replay (#54431)
Insert sessions before awaiting `session/load` so replayed `session/update` notifications can find the thread. 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: Fix for some replay events getting dropped when loading a previous session.
Ben Brandt created
14f0a25
markdown: Apply theme syntax color to inline code in rendered markdown (#54475)
## Summary Inline code in rendered markdown previously used only the default foreground color with a subtle background tint, which made it visually indistinguishable from surrounding prose in some themes. This change looks up the `text.literal` syntax style from the active theme and applies its color to inline code, matching the treatment used for inline code elsewhere in the editor (e.g. syntax highlighting in source buffers). When the theme does not define `text.literal`, the color falls back to the previous default. 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 inline code in rendered markdown to use the theme's `text.literal` syntax color
Kento Yamamoto created
3cd0f4c
git: Improve diff performance (#54435)
Previously, passing an empty range to `range_to_buffer_range` would return no ranges, which would trigger a fallback case in the git diff that caused the entire multibuffer to be invalidated every frame. This PR fixes `range_to_buffer_range`, so that it returns a sensible range if the input range is empty, preventing the fallback behaviour and edit expansion. Self-Review Checklist: - [ ] 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 #ISSUE Release Notes: - N/A or Added/Fixed/Improved ... --------- Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Cameron Mcloughlin , Cole Miller , and Anthony Eid created
310e367
sidebar: Add scrollbar and max-height to the thread switcher (#54471)
Just a little refinement as I experienced the thread switcher modal overflowing beyond the viewport if there were enough threads on it. Additionally, took the opportunity to render a scrollbar inside of it, too. Release Notes: - N/A
Danilo Leal created
20afb83
sidebar: Improve scrollbar overlap with thread item icon buttons (#54469)
This PR removes the overlap between the sidebar scrollbar and the thread item icon buttons. Now, they don't render on top of each other anymore :) Release Notes: - Agent: Improved the scrollbar overlap with the thread item icon buttons in the threads sidebar.
Danilo Leal created