d877e56
Add a script to label untriaged GH issues (#43711)
Click to expand commit body
Release Notes: - N/A
Lena created
d877e56
Add a script to label untriaged GH issues (#43711)
Release Notes: - N/A
Lena created
b89bcbe
editor: Speed up `colorize_brackets` slightly in large multibuffers (#43713)
There is still room for improvement here as `anchor(s)_in_excerpt` is generally a bad API here due to it reseeking the entire excerpt tree from the start on every call which we don't really need. But this at least cuts the seeks down by a factor of 4 for now. Release Notes: - Improved performance of bracket colorization in large multibuffers
Lukas Wirth created
8f8a92c
editor: Reduce amount of sumtree traversals in `header_and_footer_blocks` (#43709)
Introduces new "mapping point cursors" for the different display map layers allowing one to map multiple points in increasing order more efficiently than using the one shot operations. This is used in the `BlockMap::sync` for `header_and_footer_blocks` which spends a significant time in sumtree traversal due to repeatedly transforming points between the different layers. This effectively turns the complexity of those operations from quadratic in the number of excerpts to linear, as we only go through the respective sumtrees once instead of restarting from the start over and over again. Release Notes: - Improved performance for editors of large multibuffers with many different files
Lukas Wirth created
fc213f1
git_ui: Introduce explicit yield points for project diff (#43706)
These are long running foreground tasks that tend to not have pending await points, meaning once we start executing them they will never reschedule themselves, starving the foreground thread. Release Notes: - Improved git project diff responsiveness
Lukas Wirth created
f856a3c
askpass: Use double quotes for script name in helper command (#43689)
Replace single quotes with double quotes when referencing the askpass script name in the helper command. The Windows command processor (cmd.exe) requires double quotes for proper string handling, as single quotes are treated as literal characters. Error I get when trying to open remote project: <img width="396" height="390" alt="image" src="https://github.com/user-attachments/assets/1538ee10-8efc-4f80-a867-b367908091b6" /> ``` Zed Nightly 0.216.0 c2281779af56bd52c829ccd31aae4eb82b682ebc 0.216.0+nightly.1965.c2281779af56bd52c829ccd31aae4eb82b682ebc ``` Release Notes: - N/A
Maokaman1 created
65e224c
agent panel: Improve keybindings on Windows (#43692)
Closes https://github.com/zed-industries/zed/issues/43439 Release Notes: - agent: Fixed keybinding for allowing a command to run in the agent panel on Windows.
Danilo Leal created
b17b903
Enhance color logic for phantom elements to improve visual distinction based on collision status (#42710)
This change modifies the color assignment for phantom elements in the editor. If a phantom element collides with existing elements, it now uses a custom color based on the theme's debugger accent with reduced opacity. Otherwise, it defaults to the hint color. BEFORE:  AFTER:  Release Notes: - Enhanced color logic for phantom elements to improve visual distinction based on collision status. --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Libon and Danilo Leal created
77656a4
sweep: Set `use_bytes` flag (#43687)
Without this new flag, the Sweep API will actually produce a combination of UTF-16 and char indices, leading to incorrect edit positions. Release Notes: - N/A
Agus Zubiaga created
05b999b
git: Move git-blame outside of git job queue (#43565)
We restructured `struct Repository` a bit so that it now stores a shared task of `enum RepositoryState`. This way, we can now re-use it outside of the git job queue when spawning a git job a standalone bg task. An example here would be `git-blame` that does not require any file locks and is not susceptible to git job ordering. As a result of this change, loading (and modifying) a file that contains a huge git history will no longer block other git operations on the repo such as staging/unstaging/committing. Release Notes: - Improved overall git experience when loading buffers with massive git history where they would block other git jobs from running (such as staging/unstaging/commiting). Now, git-blame will run separately from the git job queue on the side and the buffer with blame hints when finished thus unblocking other git operations. Co-authored-by: Cole Miller <cole@zed.dev>
Jakub Konka and Cole Miller created
d099ea0
docs: Improve content about text threads vs. threads (#43688)
Release Notes: - N/A
Danilo Leal created
518ea71
agent_ui: Truncate file path in context completions (#42682)
Closes https://github.com/zed-industries/zed/issues/38753 Followed some prior art here: [a similar calculation ](https://github.com/zed-industries/zed/blob/e80b490ac00bfb5c206d3eb3f5c2dec10e742678/crates/file_finder/src/file_finder.rs#L1105) in `file_finder.rs` Release Notes: - improved visibility of long path names in context completions by truncating on the left when space is insufficient to render the full path Before: <img width="544" height="251" alt="Screenshot of overflowing file paths" src="https://github.com/user-attachments/assets/8440710d-3f59-4273-92bb-3db85022b57c" /> After: <img width="544" height="251" alt="Screenshot of truncated file paths" src="https://github.com/user-attachments/assets/e268ba87-7979-4bc3-8d08-9198b4baea02" />
Scott Churchley created
20b5843
checkbox: Fix showing cursor pointer for edge of the checkbox when it's disabled (#43577)
This PR fixes that you saw the cursor pointer for disabled checkbox. This is only for the edge of the checkbox component, because we didn't check for the disabled case. **Before** https://github.com/user-attachments/assets/cfebad01-533b-4515-b8d9-4bcb839eaec4 **After** https://github.com/user-attachments/assets/969600de-081b-42df-a288-ca3db5758d12 Release Notes: - N/A
Remco Smits created
28dde14
ui: Fix custom size preview example of vector component (#43633)
In the vector component custom size preview example, the image will overflow the content box. | Before | After | | - | - | | <img width="1235" height="1042" alt="Before" src="https://github.com/user-attachments/assets/1c4ff772-2578-41b2-94e8-9e2d625484f8" /> | <img width="1234" height="1044" alt="After" src="https://github.com/user-attachments/assets/19d6ab1a-d169-417e-b550-1e422358288e" /> | Release Notes: - N/A --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Floyd Wang and Danilo Leal created
f10afd1
component_preview: Pin the filter input at the top (#43636)
When I scroll the page after selecting a component, the filter input disappears. It would be more helpful if it stayed fixed at the top. ## Before https://github.com/user-attachments/assets/e26031f1-d6e7-4ae2-a148-88f4c548a5cf ## After https://github.com/user-attachments/assets/f120355c-74d3-4724-9ffc-71fb7e3a4586 Release Notes: - N/A
Floyd Wang created
45285ee
settings ui: Fix debugger step granularity setting (#43686)
Closes https://github.com/zed-industries/zed/issues/43549 Release Notes: - N/A
Danilo Leal created
fa070c5
editor: Show "Toggle Excerpt Unfold" tooltip when buffer is fold (#43626)
Release Notes: - N/A --------- Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com> Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Xiaobo Liu and Danilo Leal created
d97d4f3
ui: Remove early return after painting existing menu (#43631)
Release Notes: - Fixed right-click context menu UX issues Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Xiaobo Liu created
64633ba
gpui(windows): Prioritize system messages when exceeding main thread task budget (#43682)
Release Notes: - Improved responsiveness on windows when there is a lot of tasks running in the foreground
Lukas Wirth created
d82be97
acp: Support using @mentions after typing slash command (#43681)
Release Notes: - acp: Allow using @mentions after typing slash command
Bennet Bo Fenner created
aa899f6
gpui: Give windows message loop processing chances when we overload the main thread with tasks (#43678)
This reduces hangs on windows when we have many tasks queued up on the main thread that yield a lot. Release Notes: - Reduced hangs on windows in some situations
Lukas Wirth created
5f0212d
Better promote edit prediction when signed out (#43665)
Introducing this little popover here that's aimed at better communicating what Zed's built-in edit prediction feature is and how much people can get of it for free by purely just signing in. <img width="600" height="1914" alt="Screenshot 2025-11-27 at 9 50@2x" src="https://github.com/user-attachments/assets/a7013292-f662-4cae-9a6f-0e69a4a4fa1d" /> Release Notes: - N/A
Danilo Leal created
c228177
auto_update: Tentatively prevent auto-update loop on Nightly again (#43670)
Release Notes: - N/A
Piotr Osiewicz created
02fbafc
release_version: Do not use prerelease field (#43669)
- **release_channel: Do not use prerelease channel for build id** Prerelease channel specifiers always compare as less than to non-prerelease, which led to 2 auto-update bugs fixed in https://github.com/zed-industries/zed/pull/43595 and https://github.com/zed-industries/zed/pull/43611. We'll use a dot-delimited build specifiers in form: release-channel.build_number.sha1 instead - **auto_update: Do not display full build metadata in update notification** Release Notes: - N/A
Piotr Osiewicz created
007d648
acp: Add a timeout when initializing an ACP agent so the user isn't waiting forever (#43663)
Sometimes we are unable to receive messages at all from an agent. This puts on upper bound on the `initialize` call so we can at least give a message to the user that something is wrong here. 30s might feel like too long, but I wanted to avoid some false positives in case there was something an agent needed to do at startup. This will still communicate to the user at some point that something is wrong, rather than leave them waiting forever with no signal that something is going wrong. Release Notes: - agent: Show an error message to the user if we are unable to initialize an ACP agent in a reasonable amount of time.
Ben Brandt created
bbdbfe3
Auto-label new bugs/crashes with 'needs triage' (#43658)
Release Notes: - N/A
Lena created
ab96155
buffer_search: Fix replace buttons not working if search bar is not focused (#43569)
Update the way that both
`search::buffer_search::BufferSearchBar.replace_next` and
`search::buffer_search::BufferSearchBar.replace_all` are registered as
listeners, so that we don't require the replacement editor to be focused
in order for these listeners to be active, only requiring the
replacement mode to be active in the buffer search bar.
This means that, even if the user is focused on the buffer editor, if
the "Replace Next Match" or "Replace All Matches" buttons are clicked,
the replacement will be performed.
Closes #42471
Release Notes:
- Fixed issue with buffer search bar where the replacement buttons
("Replace Next Match" & "Replace All Matches") wouldn't work if search
bar was not focused
Dino created
8e04706
editor: Fix panic in wrap_map (#43650)
Fixes ZED-3P9 We only clamped the end which for a completely wrong input could cause us to construct a reversed range which will end up underflowing later on. Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
99d7b2f
zeta2: Compute diff-aware chrF metric (#43485)
Zeta evals now include a character n-gram metric adapted for multi-edit diffs (“delta chrF”). It works as follows: 1. Reconstruct the original, golden (expected), and actual texts from unified diffs. - "original": the text before any edits - "golden": the text after applying the expected edits - "actual": the text after applying the actual edits 2. Compute n-gram count deltas between original→golden and original→actual. - n-grams are computed as in chrF (max n=6, whitespace ignored). 3. Compare these deltas to assess how well the actual edits match the expected edits. - As in standard chrF, classify n-grams as true positives, false positives, and false negatives, and report the F-beta score with beta=2. Release Notes: - N/A
Oleksiy Syvokon created
91400e7
Do not color html tags and other "long" "bracket pairs" (#43644)
Closes https://github.com/zed-industries/zed/issues/43621 Follow-up of https://github.com/zed-industries/zed/pull/43172 Release Notes: - (Preview only) Fixed html tags incorrectly colorized
Kirill Bulatov created
82b7682
remote: Do not include prerelease and build meta in asset queries (#43611)
Closes #43580 Release Notes: - (Preview only) Fixed failures to fetch remoting server (needed to run remoting).
Piotr Osiewicz created
8c355b5
Improve `extension_bump` workflow (#43612)
This extends the extension CI workflow to create a tag once the version is bumped on main. Release Notes: - N/A
Finn Evers created
54309f4
Account for greedy tree-sitter bracket matches (#43607)
Current approach is to colorize brackets based on their depth, which was broken for markdown: <img width="388" height="50" alt="image" src="https://github.com/user-attachments/assets/bd8b6c2f-5a26-4d6b-a301-88675bf05920" /> Markdown grammar, for bracket queries https://github.com/zed-industries/zed/blob/00e93bfa113a3daed6e4a97a7244ad04d58453ee/crates/languages/src/markdown/brackets.scm#L1-L8 and markdown document `[LLM-powered features](./ai/overview.md), [bring and configure your own API keys](./ai/llm-providers.md#use-your-own-keys)`, matches first bracket (offset 0) with two different ones: * `[LLM-powered features]` * `[LLM-powered features](./ai/overview.md), [bring and configure your own API keys]` which mix and add different color markers. Now, in case multiple pairs exist for the same first bracket, Zed will only colorize the shortest one: <img width="373" height="33" alt="image" src="https://github.com/user-attachments/assets/04b3f7af-8927-4a8b-8f52-de8b5bb063ac" /> Release Notes: - Fixed bracket colorization mixing colors in markdown files
Kirill Bulatov created
958f109
editor: Consider experimental theme overrides for colorized bracket invalidation (#43602)
Release Notes: - Fixed a small issue where bracket colors would not be immediately updated if `experimental_theme_overrides.accents` was changed.
Finn Evers created
c366627
auto-update: Fix auto-update loop with non-nightly channels (#43595)
There are 3 factors: 1. The Preview channel endpoint does not propagate versions with build identifier (which we oh-so-conveniently store in pre-release field of semver). 2. Preview build, once fetched, sees it's version *with* build identifier (as that's baked into the binary). 3. Auto update logic treats versions with pre-release version as less than versions without pre-release version. This in turn makes any Preview client see itself as versioned like 0.214.4-123-asdf1234455311, whereas the latest version on the endpoint is 0.214.4. Thus, the endpoint version is always more recent than the client version, causing an update loop. The fix is to ignore build identifier when comparing versions of non-nightly channels. This should still let us introduce changes to auto-update behavior in minor releases in the future. Closes #43584 Release Notes: - (Preview only): Fixed an update loop with latest Preview update.
Piotr Osiewicz created
ae649c6
Make key repeat rate on Wayland more precise (2) (#43589)
CLOSES #39042 This is a reopening of #34985+. _Original descrioption_: In Wayland, the client implement key repeat themself. In Zed this is ultimately handled by the gpui crate by inserting a timer source into the event loop which repeat itself if the key is still held down [1]. But it seems the processing of the repeated key event happen synchronously inside the timer source handler, meaning the effective rate become slightly lower (since the repeated timer is scheduled using the 1/rate as delay). I measured the event processing time on my laptop and it's typically around 3ms, but sometimes spiking at 10ms. At low key repeat rates this is probably not _very_ noticeable. I see the default in Zed is set to a (measly) 16/s, but I assume most systems will use something closer to 25, which is a 40ms delay. So ~3ms is around 7.5% of the delay. At higher rate the discrepancy become worse of course. I can visible notice the spikes, and doing some crude stopwatch measurements using gedit as a reference I can reproduce around 5-10% slower rates in Zed. IMO this is significant enough to warrant improving, especially since some people can get quite used the repeat rate and might feel something being "off" in Zed. ~~The suggested fix simply subtract the processing time from the next delay timer.~~ [1] https://github.com/olejorgenb/zed/blob/32df726f3b7fa83e7399f6629c59e0a3f3fff125/crates/gpui/src/platform/linux/wayland/client.rs#L1355 Release Notes: - Improved Wayland (Linux) key repeat rate precision
Ole Jørgen Brønner created
36a3b41
edit prediction: Request trigger (#43588)
Adds a `trigger` field to the zeta1/zeta2 prediction requests so that we can distinguish between editor, diagnostic, and zeta-cli requests. Release Notes: - N/A
Agus Zubiaga created
f89e530
edit prediction: Report early-rejected predictions and fix cancel bug (#43585)
Many prediction requests end up being rejected early without ever being set as the current prediction. Before this change, those cases weren’t reported as rejections because the `request_prediction_with_*` functions simply returned `Ok(None)`. With this update, whenever we get a successful response from the provider, we will return at least the `id`, allowing it to be properly reported. The request now also includes a “reject reason,” since the different variants carry distinct implications for prediction quality. All of these scenarios are now covered by tests. While adding them, I also found and fixed a bug where some cancelled predictions were incorrectly being set as the current one. Release Notes: - N/A --------- Co-authored-by: MrSubidubi <dev@bahn.sh>
Agus Zubiaga and MrSubidubi created
61a414d
Fix language server renaming when parent directory does not exist (#43499)
Update the `fs::RenameOptions` used by `project::lsp_store::LocalLspStore.deserialize_workspace_edit` in order to always set `create_parents` to `true`. Doing this ensures that we'll always create the folders for the new file path provided by the language server instead of failing to handle the request in case the parent - Introduce `create_parents` field to `fs::RenameOptions` - Update `fs::RealFs.rename` to ensure that the `create_parents` option is respected Closes #41820 Release Notes: - Fixed a bug where using language server's file renaming actions could fail if the parent directory of the new file did not exist
Dino created
233b976
Add WSL Linux choice and settings.json prompt for GitHub issue template (#43479)
Release Notes: - N/A --------- Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
Miguel Raz Guzmán Macedo and Kunall Banerjee created
6b92c1a
workspace: Fix broken main build after #43518 (#43570)
*cough* merge queue *cough* Release Notes: - N/A
Piotr Osiewicz created
1a23115
gpui: Unify `track_scroll` method to receive a reference type (#43518)
Release Notes: - N/A This PR to change the `track_scroll` method to receive a reference type like the [Div#track_scroll](https://docs.rs/gpui/latest/gpui/trait.StatefulInteractiveElement.html#method.track_scroll), [Div#track_focus](https://docs.rs/gpui/latest/gpui/trait.InteractiveElement.html#method.track_focus). ```diff - .track_scroll(self.scroll_handle.clone()) + .track_scroll(&self.scroll_handle) - .vertical_scrollbar_for(self.scroll_handle.clone(), window, cx) + .vertical_scrollbar_for(&self.scroll_handle, window, cx) ``` https://github.com/zed-industries/zed/blob/56a2f9cfcf0c6a3c38f596b58002953763cd890f/crates/gpui/src/elements/div.rs#L1088-L1093 https://github.com/zed-industries/zed/blob/56a2f9cfcf0c6a3c38f596b58002953763cd890f/crates/gpui/src/elements/div.rs#L613-L620
Jason Lee created
757c043
Fix git features not working when a Windows host collaborates with a unix guest (#43515)
We were using `std::path::Path::strip_prefix` to determine which repository an absolute path belongs to, which doesn't work when the paths are Windows-style but the code is running on unix. Replace it with a platform-agnostic implementation of `strip_prefix`. Release Notes: - Fixed git features not working when a Windows host collaborates with a unix guest
Cole Miller created
57e1bb8
collab: Add `zed-zippy[bot]` to the `GET /contributor` endpoint (#43568)
This PR adds the `zed-zippy[bot]` user to the `GET /contributor` endpoint so that it passes the CLA check. Release Notes: - N/A
Marshall Bowers created
5403e74
Add callable workflow to bump the version of an extension (#43566)
This adds an intial workflow file that can be pulled in to create a bump commit for an extension version in an extension repository. Release Notes: - N/A
Finn Evers created
0713ddc
editor: Fix vertical scroll margin not accounting for file header height (#43521)
Closes #43178
Release Notes:
- Fixed vertical scroll margin not accounting for file header height
Here's the before/after:
With `{ "vertical_scroll_margin": 0 }` in `~/.config/zed/settings.json`
https://github.com/user-attachments/assets/418c6d7f-de0f-4da6-a038-69927b1b8b88
Mayank Verma created
6fbbc89
Bump Zed to v0.216 (#43564)
Release Notes: - N/A
Joseph T. Lyons created
8aa5361
agent_ui: Add support for deleting thread history (#43370)
This PR adds support for deleting your entire thread history. This is inspired by a Zed user from the meetup in Amsterdam, he was missing this feature. **Demo** https://github.com/user-attachments/assets/5a195007-1094-4ec6-902a-1b83db5ec508 Release Notes: - AI: Add support for deleting your entire thread history --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Remco Smits and Danilo Leal created
6a311ca
Detail how to add symbols to samply's output (#43472)
Release Notes: - N/A
David Kleingeld created
51e97d3
languages: Recognize .clangd as YAML (#43557)
Follow-up to: https://github.com/zed-industries/zed/pull/43469 Thanks @WeetHet for [the idea]([WeetHet](https://github.com/WeetHet)). Release Notes: - Added support for identifying. .clangd files as YAML by default
Peter Tripp created
c36b12f
settings_ui: Pick a more reasonable minimum window size (#43556)
Closes https://github.com/zed-industries/zed/issues/41903 Release Notes: - Fixed settings ui being forced larger than small screens
Lukas Wirth created