3adabb4
clippy --fix
Ben Kunkle created
3adabb4
clippy --fix
Ben Kunkle created
3285615
remove old
Ben Kunkle created
acec1ea
fix naming
Ben Kunkle created
c79ef66
Revert "REMOVE ME: call deploy on push"
This reverts commit 305b27738ef03438540c07301aa8f0f51aa79d92.
Ben Kunkle created
72f900d
fix routing
Ben Kunkle created
6a06e0b
fix routing
Ben Kunkle created
68e124f
deploy to cf main
Ben Kunkle created
2c9c94e
use clang
Ben Kunkle created
f6ce2dc
oops
Ben Kunkle created
97711c5
fix bugs
Ben Kunkle created
305b277
REMOVE ME: call deploy on push
Ben Kunkle created
6199a6d
prerelease bool
Ben Kunkle created
bfa35ac
via workflow dispatch
Ben Kunkle created
5d53f35
in after_release
Ben Kunkle created
5709995
clean
Ben Kunkle created
d143092
Step 2: Split Deployments into Nightly, Preview, and Stable
Ben Kunkle created
e5c91ed
generate deploy docs
Ben Kunkle created
55e4bd9
PLAN
Ben Kunkle 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
d2ddb4b
markdown: Fix heading sizes and spacing in preview (#54374)
## Context Heading sizes in the markdown preview were nearly identical to body text, making `# H1`, `## H2`, and `### H3` visually indistinguishable. The root cause was in `MarkdownStyle::themed()`: it set a `heading_level_styles` override with font sizes of `rems(1.05–1.15)`, which silently replaced the correct sizes applied by `apply_heading_style` (via GPUI's `text_3xl`/`text_2xl`/`text_xl` utilities `rems(1.875/1.5/1.25)`). Removing that override restores the intended hierarchy. A `mt_4()` top margin was also added so consecutive headings have visual breathing room. Closes #54358 Video of manual test below : [Screencast from 2026-04-21 02-22-12.webm](https://github.com/user-attachments/assets/8dd815f9-6f9b-4e88-bebb-28c79f019427) ## How to Review `crates/markdown/src/markdown.rs` Three changes: - (1) removed the `heading_level_styles` block from `MarkdownStyle::themed()` that was overriding heading font sizes with nearly-body-text values; - (2) added `mt_4()` to the heading div in `push_markdown_heading` for better vertical spacing; - (3) added `test_heading_font_sizes_are_distinct` which renders H1–H3 and a paragraph then asserts that line heights strictly decrease from H1 down to body text. ## 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 Release Notes: - Fixed heading sizes in the markdown preview to correctly reflect the H1–H6 size hierarchy, matching standard markdown renderers
saberoueslati created
4814074
markdown: Add "Copy Link" to right-click context menu (#53758)
## Context Closes #53741 Right-clicking on a link in any Markdown view showed no way to copy the URL. The right-click handler already detected links for left-click navigation, but the context menu was never extended to surface a link-specific action. Video of the manual test below : [Screencast from 2026-04-13 00-29-49.webm](https://github.com/user-attachments/assets/fbde09ab-78da-4366-b1e0-e15e0d43442b) ## How to Review - **`crates/markdown/src/markdown.rs`** — Added a `context_menu_link: Option<SharedString>` field to `Markdown`. Added `capture_for_context_menu(link)` (replaces the old `capture_selection_for_context_menu`) which saves both selected text and the hovered link together. Added a `context_menu_link()` accessor. Updated the capture-phase right-click handler to detect the link under the cursor via `rendered_text.link_for_source_index`. Added a `event.button != MouseButton::Right` guard to the bubble-phase `MouseDownEvent` handler to prevent selection logic from running on right-click. - **`crates/agent_ui/src/conversation_view/thread_view.rs`** — In `render_message_context_menu`, after computing `has_selection`, also reads `context_menu_link` from the same markdown chunks. Adds a "Copy Link" entry with a separator at the top of the menu when a link URL is present. - **`crates/markdown_preview/src/markdown_preview_view.rs`** — Wraps the markdown element in a `right_click_menu` with a "Copy Link" entry (when a link is present). Edit: There was a mention of a "Copy" and "Copy as Markdown" buttons. After discussion, it was decided that I would re-add them fully fleshed out in a separate PR ## 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 - [x] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable Release Notes: - Added "Copy Link" to the right-click context menu when clicking on a link in Markdown views (agent panel and Markdown preview)
saberoueslati created
80ab748
agent_ui: Fix inconsistent Rules keybinding in Toggle Agent Menu (#54420)
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 #54419 Release Notes: - Fixed Agent menu shortcut context handling so Alt-Shift-L consistently resolves to Rules (and displays correctly) when the Toggle Agent Menu is open, while preserving existing global/context-specific shortcuts such as Language Servers and onboarding bindings outside Agent menu context. --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
galuis116 , Danilo Leal , and Danilo Leal created
c8cda37
compliance: Account for Zippy commits without PR in report summary (#54461)
The report summary previously assumed that every commit that had a review would also have an associated PR - this was no longer the case with Zippy PRs that are allowed without PR. This pull request fixes this wrong assumption. Release Notes: - N/A
Finn Evers created
6cdf954
language: Fix slow Tree-sitter parsing (#52674)
#### Context When tree-sitter parses a file with broken syntax (e.g. a large partial SQL `VALUES` clause, or any language where a large chunk becomes invalid), it can produce a single `ERROR` node spanning thousands of lines. On every render frame, Zed queries this tree for syntax highlights via `SyntaxMapCaptures`. Previously, only `set_byte_range` was applied to the query cursor - this limits which captures are *returned*, but tree-sitter still had to *traverse* the entire ERROR subtree to find them, causing O(file size) work per frame and making scrolling/editing visibly laggy. The fix applies `set_containing_byte_range` to the highlight query cursor, mirroring what `SyntaxMapMatches` already does for indentation and bracket queries. This tells tree-sitter to skip subtrees that extend far beyond the visible window, reducing traversal to the visible range only. **Note:** This fix eliminates the main freeze/stall caused by full-tree traversal. A small amount of lag may still occur on very large broken files, as tree-sitter still needs to parse the error-recovery structure. Further improvements would require deeper changes to tree-sitter's query execution or incremental parsing. #### Closes #52390 #### How to Review Small change — focus on [syntax_map.rs:1119-1123](crates/language/src/syntax_map.rs#L1119) (the fix) and the `containing_byte_range_for_captures` helper below it. Compare with the existing `SyntaxMapMatches::new` path (line ~1255) which uses the same pattern. #### 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 #### Video [Screencast from 2026-03-26 14-19-19.webm](https://github.com/user-attachments/assets/6628492a-f013-438a-836a-2740f6e2f266) #### Note : Reopens previous work from closed PR #52475 (fork was deleted) Release Notes: - Fixed laggy scrolling and editing in files with large broken syntax regions (e.g. incomplete SQL `VALUES` clauses or large invalid blocks in any language) --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Om Chillure and Max Brunsfeld created
bcaa1b5
dev_container: Resolve compose service build args in Dockerfile expansion (#54270)
For docker-compose-based dev containers, build args live on the primary
compose service's `build.args`, not on `dev_container.build` (which is
`None` in the compose case). `expanded_dockerfile_content` only
consulted the latter, so `${…}` references in the service's Dockerfile —
e.g. `FROM ${BASE_IMAGE}` — were never substituted. Downstream callers
then invoked `docker inspect "${BASE_IMAGE}"` and `docker pull
"${BASE_IMAGE}"`, both of which fail and the dev container fails to
start.
A new unit test `test_expands_compose_service_args_in_dockerfile` mounts
a Dockerfile with `FROM ${BASE_IMAGE}` backed by a compose service whose
`build.args` define `BASE_IMAGE=test_image:latest`, and asserts both
`expanded_dockerfile_content` and `image_from_dockerfile` produce the
resolved reference.
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 dev container startup failing for docker-compose configs whose
service Dockerfile uses build-arg substitution in the FROM line (for
example, `FROM ${BASE_IMAGE}`).
Sandro Meier created
9e18c6a
Bump jupyter-websocket-client to 1.1.0 (#54442)
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
MostlyK created
5df4e1e
recent_projects: Fix remote projects dialog not showing vertical scrollbar for overflow content (#54425)
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 #54424 Release Notes: - N/A Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
galuis116 and Danilo Leal created
4d63117
compliance: Allow Zippy version bumps (#54342)
This adds checks for the Zed Zippy version bumps. These are rather strict, but since we should also be strict with the bumps themselves, I consider this the better approach. Note this intentionally only includes the version bumps here for now. Release Notes: - N/A
Finn Evers created
f8295ff
Fix blank git diff view on Windows when working in a subfolder (#52234)
## Context Fixes a Windows path handling bug in `crates/util/src/paths.rs` when computing a relative path via `strip_prefix`. (Closes #51758 ) Previously, Windows prefix matching only handled drive-letter case-insensitivity. It could still fail when the parent and child paths referred to the same location but used different separator styles (`\` vs `/`) or different casing in later path segments. That caused valid Windows paths to return `None` instead of a relative path, which caused the diff to break. This change normalizes Windows paths for prefix comparison by lowercasing any ASCII characters and converting backslashes to forward slashes before checking the prefix. Tests were added for mixed-case and mixed-separator Windows paths to cover the bug and prevent further regressions. ## How to Review 1. Check the `strip_prefix` Windows branch to confirm the new normalization logic only affects prefix comparison and still rejects partial-segment matches. 2. Check the added tests for mixed separator and mixed casing cases on Windows 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: - Fix blank git diff view on Windows when working in a subfolder --------- Co-authored-by: John Tur <john-tur@outlook.com>
Hitesh Rohira and John Tur created
2542b71
extension_host: Fix Windows manifest paths when uploading extensions to WSL remote (#50653)
Closes #42731 Before you mark this PR as ready for review, make sure that you have: - [X] Added a solid test coverage and/or screenshots from doing manual testing - [X] Done a self-review taking into account security and performance aspects - [X] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) <img width="1440" height="900" alt="Screenshot 2026-03-09 at 5 10 46 PM" src="https://github.com/user-attachments/assets/bf124481-dc10-44e9-aaab-3e562d71e41e" /> Release Notes: - Fixed Windows path handling in extension manifests to ensure extensions upload correctly to remote environments like WSL. --------- Co-authored-by: John Tur <john-tur@outlook.com>
Thomas Jensen and John Tur created
6d73ada
Fix telemetry source for git and sidebar-triggered agent threads (#54005)
The `ReviewBranchDiff`, `ResolveConflictsWithAgent`, and `ResolveConflictedFilesWithAgent` actions are dispatched from the git UI (`git_ui/src/project_diff.rs` and `git_ui/src/conflict_view.rs`), not the agent panel. Their `source` field in the "Agent Thread Started" telemetry event was set to `"agent_panel"` — this changes it to `"git_panel"`. Also threads the `source` parameter through `activate_draft` and `ensure_draft` so that drafts created from the sidebar correctly report `source = "sidebar"` instead of `"agent_panel"`. Release Notes: - N/A
María Craig created
1e6e448
editor: Fix autoscroll sometimes obscuring the current row behind a sticky header (#53165)
Fixes an autoscroll bug that sometimes obscures the current row behind a sticky header. The bug was caused by `Editor::autoscroll_vertically` using the `sticky_header_line_count` value that was cached during the previous render, which isn't necessarily the number of sticky headers that the scroll target needs, e.g. - when jumping to a definition - when pressing the up arrow key when the selection is in the topmost visible row with `"vertical_scroll_margin": 0` This fixes that by not caching `sticky_header_line_count` and instead querying Tree-sitter on the fly to get the number of sticky headers that the scroll target needs. Performance-wise this seem okay, I measured it to take less than 200µs on my machine using a very large Rust file (and there are still some possible ways to optimize this if necessary). In particular, the pathological huge single-line file case as discussed in #48450 shouldn't be an issue here because unlike the main sticky header Tree-sitter query, here we query the outline items that contain a particular point rather than those that intersect an entire row. The `ScrollCursorTop` handler is also simplified to use the same shared function for counting the number of sticky headers, since that action doesn't rely on autoscroll. Before: https://github.com/user-attachments/assets/efb12776-82d9-4b94-baa5-347ec769fb98 After: https://github.com/user-attachments/assets/236deb9f-fe06-43bd-b167-7bd3ab719e4c 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 #50803 Release Notes: - Fixed sticky headers sometimes obscuring the current row. --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Tim Vermeulen and Conrad Irwin created
179af67
vim: Preserve system clipboard when pasting over visual selection (#52948)
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 - [x] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable Closes #52352 Release Notes: - Fixed system clipboard being overwritten when pasting over a visual selection with Cmd-V/Ctrl-V in vim mode
João Soares created