This adds `debug_panel::Toggle` which is the same as
`terminal_panel::Toggle` but for the debug panel. It also moves
`debug_panel::{Toggle, ToggleFocus}` to its own `pub mod` for
consistency with other keybinds.
[Related
discussion](https://github.com/zed-industries/zed/discussions/47931#discussion-9404091)
Release Notes:
- Added `debug_panel::Toggle` to show/hide debug panel like
`terminal_panel::Toggle`
Samuel Domínguez Lorenzo
created
938b8ab
languages: Add `.mdc` as a recognized Markdown file suffix (#50074)
Click to expand commit body
Highlight files ending in `.mdc` as Markdown.
The `.mdc` extension is used by Cursor for its Markdown-based rule files
(`.cursor/rules/*.mdc`). These files are standard Markdown with optional
YAML frontmatter, which the existing Markdown grammar already handles
well. Adding `.mdc` to the recognized suffixes ensures proper syntax
highlighting out of the box.
This was requested during review of the agnix extension PR
([zed-industries/extensions#4743](https://github.com/zed-industries/extensions/pull/4743))
by @MrSubidubi as the preferred approach over defining a custom MDC
language in an extension.
Release Notes:
- Added `.mdc` as a recognized Markdown file extension.
Avi Fenesh
created
3d5c8a5
thread_view: Add fallback error handling for connect failures (#50063)
Click to expand commit body
Following up from https://github.com/zed-industries/zed/pull/50061: when
connecting to an ACP adapter fails before any thread is active, errors
would not display in the Agent Panel. Falling back to
`handle_load_error` to show the error UI properly as it already handles
this.
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)
Release Notes:
- Added fallback error handling for connect failures in the Agent Panel
Kunall Banerjee
created
ca066cb
Replace some hot `TreeMaps` with `Arc<HashMap>` (#49984)
Click to expand commit body
These tend to be very often mutated while we don't really need the
subtree sharing of TreeMaps, so replacing them here is generally
cheaper.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Co-authored by: John Tur <jtur@zed.dev>
Lukas Wirth
created
7e3e168
Fix window bounds related bugs from multi-workspace serialization (#50065)
Click to expand commit body
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)
Release Notes:
- N/A
Mikayla Maki
created
21bd74a
text: Narrow insertion-relative offsets from `usize` to `u32` (#49801)
Click to expand commit body
Reduces memory usage of `InsertionSlice` from 32 to 24 bytes, `Fragment`
from 120 to 96 bytes by narrowing offsets that are relative to
individual insertion operations from `usize` to `u32`. These offsets are
bounded by the size of a single insertion, not the total buffer size, so
`u32` is sufficient.
To prevent any single insertion from exceeding `u32::MAX` bytes, both
`Buffer::new_normalized` and `apply_local_edit`/`apply_remote_edit` now
split large text insertions into multiple fragments via
`push_fragments_for_insertion`.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
a0d7698
agent: Delay edit tool buffer clearing until the first chunk is sent (#49633)
Click to expand commit body
Release Notes:
- The agent edit tool no longer clears files until the first edit comes
in, preventing a buffer being empty for prolonged time if the agent is
slow in reporting the first text chunk
Fixes ZED-596
Release Notes:
- Fixed a panic in editor::GoToDefinitionSplit if you managed to close
the current pane before the definitions were resolved
Conrad Irwin
created
0103f15
agent_server_store: Broaden Windows asset detection to all architectures (#50061)
Click to expand commit body
Previously only `x86_64` Windows used ZIP archives, but ARM64 Windows
builds also use ZIP format.
Closes #50039.
> [!NOTE]
> The P1 is two-fold: the user cannot download the ZIP file on Windows
ARM. BUT -- the Agent Panel is stalled because of that. This ONLY makes
it so that the ZIP download doesn’t fail, but if for some reason the
download fails, the panel is genuinely stuck with no recovery path.
Every restart attempts the same download, hits the same GZIP error, and
silently drops it again.
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
- [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)
Release Notes:
- Broaden Windows asset detection to all architectures
Kunall Banerjee
created
cb793a4
Fix a panic when git askpass triggers during commit (#50057)
Click to expand commit body
Fixes ZED-597
Release Notes:
- Fixed a panic when the askpass dialogue opened while committing.
Fixes ZED-599
register_buffer() only sometimes registers the buffer
Release Notes:
- Fixed a panic in Copilot completions
Conrad Irwin
created
3275481
Fix race condition in channel notes rejoin (#50034)
Click to expand commit body
Closes #49998
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 a (very rare) crash that could happen due to lost edits in
channel buffers
Conrad Irwin
created
bc81ada
Fix panic in can_resolve when passed an invalid excerpt ID (#50052)
Click to expand commit body
Fixes ZED-59F
This is follow-up work from #49994; which assumed that can_resolve would
return
false for an invalid excerpt id.
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
Conrad Irwin
created
0caaecc
Fix panic in message editor paste (#50051)
Click to expand commit body
Fixes ZED-4KY
Release Notes:
- Fixed a panic when pasting into the agent UI
Conrad Irwin
created
c94a9b7
Edit prediction: prioritize related excerpts that are referenced near the cursor (#50050)
Click to expand commit body
We store the byte distance between the cursor and references to each
definition. When including excerpts in the prompt, we prioritize them in
the order of proximity. I've updated the Edit Prediction Context view to
display the excerpt's `order`, and sorting the files in order of their
excerpt with the lowest order.
Release Notes:
- N/A
Max Brunsfeld
created
23f7bde
git: Simplify excerpt syncing code for `SplittableEditor` (#49943)
Click to expand commit body
Closes #ISSUE
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
Cole Miller
created
6111af7
Use a separate feature flag for EP jumps than for zeta2 (#50041)
Click to expand commit body
This allows us to enable zeta2 for certain end users without opting them
into the still-in-development jumps feature.
Release Notes:
- N/A
Max Brunsfeld
created
c3efb13
agent_ui: Add some UI adjustments to subagents (#50032)
Click to expand commit body
Follow-up to https://github.com/zed-industries/zed/pull/49938:
- Adding the gradient overlay in all states within the preview slot
- Remove label from the "Full Screen" button to make it simpler and more
minimal
<img width="400" height="1182" alt="Screenshot 2026-02-24 at 7 59@2x"
src="https://github.com/user-attachments/assets/3c30e2b2-a572-4438-8cd3-4879bf54fea0"
/>
Release Notes:
- N/A
Danilo Leal
created
04db6c3
zeta2: Use editable range returned by cloud for prediction diffs (#50029)
Click to expand commit body
Closes #ISSUE
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 *or* Added/Fixed/Improved ...
Co-authored-by: Max <max@zed.dev>
Ben Kunkle
and
Max
created
67b52f3
auto_update: Persist custom icons across app updates on macOS (#49727)
Click to expand commit body
After setting a custom icon on macOS, an `Icon\r` file is generated in
the application's root directory to store the custom icon metadata.
Currently, the update process uses `rsync -av --delete`, which removes
this `Icon\r` file and causes the custom icon to revert to the default
blue folder.
This PR adds the `--exclude 'Icon?'` parameter to ensure the file is
preserved during updates.
Closes #26639 , Closes #29900.
Since I cannot trigger the auto-update mechanism manually, I mounted the
latest Zed disk image and simulated the update by executing the rsync
command in the terminal to verify the fix.
<img width="2254" height="1596" alt="图片"
src="https://github.com/user-attachments/assets/26660fa4-447f-427a-b2dd-e6280ce3d42d"
/>
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)
Release Notes:
- Fixed an issue where custom macOS app icons would revert to default
blue folders after an update.
Port of #10314 to the wgpu renderer
Closes #ISSUE
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 a panic when rendering an image larger than the GPU could
support.
Closes #ISSUE
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)
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Bilal Elmoussaoui
created
0912dc9
Add humanizer skill for AI writing pattern detection (#50021)
Click to expand commit body
## Summary
Add a standalone **humanizer** skill based on Wikipedia's "Signs of AI
writing" guide that detects and fixes 24 common AI-writing patterns.
Also update brand-writer to recommend running humanizer as a
pre-validation step for high-stakes content.
## Details
**New skill: `/humanizer`**
- Detects 24 AI-writing anti-patterns from Wikipedia's guide (maintained
by WikiProject AI Cleanup)
- Covers content patterns (significance inflation, vague attributions),
language patterns (copula avoidance, synonym cycling), style patterns
(em dash overuse, boldface), and communication patterns (chatbot
artifacts, sycophantic tone)
- Includes a two-pass audit workflow: draft rewrite → "What makes this
obviously AI generated?" → final revision
- Adds guidance on injecting "soul" and personality, not just removing
bad patterns
**Updated: brand-writer**
- Added Phase 4 "Humanizer Pass" recommending `/humanizer` for
high-stakes content (homepage, announcements, product pages)
- Phases renumbered (Validation is now Phase 5)
## Attribution
Based on [blader/humanizer](https://github.com/blader/humanizer) and
[Wikipedia:Signs of AI
writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing).
Release Notes:
- N/A
morgankrey
created
ca0fffb
git: Fix panic on duplicate status entries in git status parsing (#49191)
Click to expand commit body
## Summary
Fixes **ZED-2XA** — "Unexpected duplicated status entries: Untracked and
Untracked" crash.
**Impact:** 22 occurrences, 3 users affected (Sentry). The panic was
introduced in #23483 (2025-01-22) which added the `dedup_by` logic for
handling deleted-in-index + untracked file combinations.
No related GitHub issues were found filed against this crash.
## Root Cause
`GitStatus::from_str` sorts entries by path and then calls `dedup_by` to
merge duplicate entries. The only handled case was `(INDEX_DELETED,
Untracked)` — all other duplicates hit a catch-all `panic!`. In
practice, git can produce duplicate `??` (untracked) entries for the
same path, which triggered this crash.
## Fix
- Identical duplicate statuses (e.g., `Untracked, Untracked`) are now
silently deduplicated (keep one)
- Other unexpected duplicate combinations log a warning instead of
crashing
- Added a regression test that parses `"?? file.txt\0?? file.txt"` and
verifies it produces a single entry
## Verification
- Reproduction test passes: `cargo test -p git --
test_duplicate_untracked_entries`
- Full crate tests pass: `cargo test -p git` (20/20)
- Clippy clean: `./script/clippy`
Release Notes:
- Fixed a crash when git produces duplicate status entries for the same
file path
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
We were resolving inlay hints against an old snapshot, which
occasionally led to panics
Co-Authored-By: Cole <cole@zed.dev>
Closes #ISSUE
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 a (rare) panic in inlay hints
Co-authored-by: Cole <cole@zed.dev>
Conrad Irwin
and
Cole
created
273a6cb
extension_ci: Remove merge-base `fork-point` flag in version check (#50014)
Click to expand commit body
Also removes the debugging step again.
Release Notes:
- N/A
GitHub 4 me 0 - after testing for x times in a local and even the remote
setup provided by Namespace during an action, this now adds a dedicated
step to debug the failure we are seeing in extension tests to finally
resolve said issue.
Release Notes:
- N/A
Finn Evers
created
34d6a7c
extension_ci: Explicitly state second merge base parameter (#50011)
Closes #ISSUE
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
Disable the cron schedule for the background agent MVP workflow. Manual
runs via workflow_dispatch are still available.
The workflow was running daily on weekdays but the project is being
paused. This change:
- Comments out the schedule trigger
- Adds a note pointing to the Notion doc for context
- Preserves the ability to run manually
See [Background Agent for
Zed](https://www.notion.so/Background-Agent-for-Zed-3038aa087eb980449b9ee02f70ae8413)
Notion doc for current status and contacts to resume this work.
Release Notes:
- N/A
morgankrey
created
c5aea77
editor: Fix clipboard selection range for multi-line copy-and-trim (#48977)
Click to expand commit body
When copying multiple selections with copy-and-trim, create a single
clipboard selection spanning the original buffer range rather than one
selection per trimmed line. This preserves correct paste behavior in Vim
mode when pasting trimmed content.
Closes #48869.
Release Notes:
- Fixed clipboard selection range for multi-line copy-and-trim
---------
Co-authored-by: dino <dinojoaocosta@gmail.com>
Updates the check to explicitly compare against `origin/main` as opposed
to just `main`.
Release Notes:
- N/A
Finn Evers
created
79e44ca
Align docs_suggestions.yml with repo CI conventions (#49999)
Click to expand commit body
Cleans up a new GitHub Actions workflow.
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~~
- [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)~~
Release Notes:
- N/A
John D. Swanson
created
3ae4f4e
Add `streaming-edit-file-tool` feature flag (#49997)
Click to expand commit body
Release Notes:
- N/A
Bennet Bo Fenner
created
d25a850
extension_ci: Set `fetch-depth` to `0` in tests (#49996)
Click to expand commit body
This makes the full history available in tests.
Release Notes:
- N/A
## Summary
Add `workspace::ActivateLastPane` so users can bind a shortcut (for
example `cmd-9`) to focus the last pane.
## Why
Today, the closest option is `workspace::ActivatePane` with an index
(for example `8`), but that has side effects: when the index does not
exist, it creates/splits panes (`activate_pane_at_index` fallback).
`ActivateLastPane` gives a stable, no-surprises target: focus the
rightmost/last pane in current pane order, never create a new pane.
## Context
This capability has been requested by users before:
- https://github.com/zed-industries/zed/issues/17503#event-22959656321
## Prior art
VS Code exposes explicit editor-group focus commands and index-based
focus patterns (e.g. `workbench.action.focusSecondEditorGroup` ...
`focusEighthEditorGroup`) in its workbench commands:
-
https://github.com/microsoft/vscode/blob/main/src/vs/workbench/browser/parts/editor/editorCommands.ts#L675-L724
Zed already follows numbered pane focus in default keymaps
(`ActivatePane` 1..9 on macOS/Linux/Windows), so adding a dedicated
"last pane" action is a small, natural extension:
- `assets/keymaps/default-macos.json`
- `assets/keymaps/default-linux.json`
- `assets/keymaps/default-windows.json`
## Change
- Added `workspace::ActivateLastPane`
- Implemented `Workspace::activate_last_pane(...)`
- Wired action handler in workspace listeners
- Added `test_activate_last_pane`
## Validation
- `cargo test -p workspace test_activate_last_pane -- --nocapture`
- `cargo test -p workspace test_pane_navigation -- --nocapture`
- `cargo fmt --all -- --check`
## Risk
Low: focus-only behavior, no layout/data changes, no default keymap
changes.
Release Notes:
- Added `workspace::ActivateLastPane` action for keybindings that focus
the last pane.
---------
Co-authored-by: xj <gh-xj@users.noreply.github.com>
xj
and
xj
created
3495746
git: Capture all working tree changes for the Review Diff action (#49993)
Click to expand commit body
The AI-assisted "Review Diff" action was only working for committed
changes because we were passing HEAD in the git command. Without it, it
captures all of the working tree changes, the same way the Branch Diff
view itself does. I think this is now better and more intuitive, because
it shouldn't be required that you commit the changes to have them
quickly reviewed by an agent.
Release Notes:
- N/A
Danilo Leal
created
c58d388
git_ui: Hide the `ReviewDiff` action if branch diff view isn't open (#49988)
Click to expand commit body
This PR hides the `git: review diff` action when not in the branch diff
view, because otherwise, that wouldn't do anything.
Release Notes:
- N/A
Danilo Leal
created
3cf7cb5
multi_buffer: Improve lookup performance for `MultiBufferSnapshot::excerpt` (#49986)
Click to expand commit body
Co-authored by: John Tur <jtur@zed.dev>
Release Notes:
- N/A *or* Added/Fixed/Improved ...
b9463f5
multibuffer: Make "Open File" button also visible on hover (#49980)
Click to expand commit body
This makes the "Open File" button in the file header within multibuffers
also visible as you hover over the headers. Previously, this button
would only show up for the selected/focused file, but it now also shows
up on hover for making mouse-based interaction easier.
Release Notes:
- N/A
Danilo Leal
created
0f21e2a
extension_ci: Use fork point for version comparison (#49972)
Click to expand commit body
Lost another battle to the GitHub docs. Instead, now let's just do it
ourselves here in bash and not guess whatever GitHub is referring to in
their documentation..
Release Notes:
- N/A
Finn Evers
created
f96ac58
extension_ci: Use `head_ref` for version comparison (#49970)
Click to expand commit body
Release Notes:
- N/A
Finn Evers
created
f375a1a
image_viewer: Use checkerboard from GPUI (#49575)
Click to expand commit body
As we have checkerboard, used same pattern as git diff inside Image
Viewer.
Now that CPU instructions aren't an issue, perhaps size can be lowered
to 16/24 for base boxes.
Release Notes:
- N/A
MostlyK
created
c6a82b3
debugger: Open correct pane for breakpoints (#49390)
Click to expand commit body
Closes #40602
### Summary
This PR ensures that active debug lines only open in a single pane and
new active debug lines are added to the most recent pane that contained
an active debug line. This fixes a bug where Zed could go to the active
debug line file and location in every pane a user had open, even if that
pane was focused on a different file.
I fixed this by storing the `entity_id` of the pane containing the most
recently active debug line on `BreakpointStore`, this is consistent with
where the selected stack frame is stored. I used an `entity_id` instead
of a strong type to avoid circular dependencies. Whenever an active
debug line is being set in the editor or by the debugger it now checks
if there's a specific pane it should be set in, and after setting the
line it updates `BreakpointStore` state.
I also added a new method on the `workspace::Item` trait called `fn
pane_changed(&mut self, new_pane_id: EntityId, cx: &mut Context<Self>)`
To enable `Editor` to update `BreakpointStore`'s active debug line pane
id whenever an `Editor` is moved to a new pane.
### PR review TODO list
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)
Release Notes:
- debugger: Fix bug where active debug lines could be set in the wrong
pane
Anthony Eid
created
060d071
workspace: Invert dependency on call crate by extracting into a trait (#49968)
Click to expand commit body
Release Notes:
- N/A
Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
Jakub Konka
and
Piotr Osiewicz
created
ca7d48a
Update linux.md to add Ubuntu community packages (#49654)
Click to expand commit body
Today I added ubuntu LTS distributions to my debian repo.
You can find the index of noble and jammy here
https://debian.griffo.io/apt/dists/noble/main/binary-amd64/Packages
https://debian.griffo.io/apt/dists/jammy/main/binary-amd64/Packages
So far zed is the second most download package in my repo!
<img width="769" height="648" alt="image"
src="https://github.com/user-attachments/assets/e07a2312-e56a-4e2c-86d9-70cbf6c6aa73"
/>
Release Notes:
- N/A
Dario Griffo
created
7b51947
Fix backward compatibility for v0.0.4 GitHub extension bindings (#49858)
Click to expand commit body
## Summary
- Route `zed:extension/github` in `since_v0_0_4` to the `since_v0_6_0`
bindings
- Call `latest_github_release` through `since_v0_6_0` for compatibility
with the v0.0.4 extension API
Release Notes:
- Fixed backward compatibility for v0.0.4 extension API GitHub bindings.
Follow-up to #45600.
## Summary
Fix mouse scroll reports sending only one event when scrolling down in
terminal apps with mouse mode (tmux, neovim, etc.), regardless of how
many lines were scrolled.
## The Problem
After #45600, trackpad scrolling speed was fixed. But when scrolling
**down** (negative `scroll_lines`), the terminal was still sending only
**one** scroll report per gesture, no matter how many lines the user
scrolled. Scrolling up worked correctly.
## Root Cause
In `scroll_report()` we had:
https://github.com/zed-industries/zed/blob/a8043dcff8f28a0443d7ec238e7f020689ebe1ff/crates/terminal/src/mappings/mouse.rs#L96
`scroll_lines` can be negative (scroll down) or positive (scroll up).
For negative values:
| scroll_lines | max(scroll_lines, 1) | Reports sent | Verdict |
|--------------|---------------------|--------------|------|
| 3 (up) | 3 | 3 |Right
| -3 (down) | 1 | 1 |WRONG|
So we always sent exactly 1 report when scrolling down, losing the
scroll magnitude.
Use `scroll_lines.unsigned_abs()` instead of `max(scroll_lines, 1)`.
This matches how `alt_scroll()` in the same file already handles
`scroll_lines`. Now both directions send the correct number of reports.
https://github.com/zed-industries/zed/blob/a8043dcff8f28a0443d7ec238e7f020689ebe1ff/crates/terminal/src/mappings/mouse.rs#L102
## Testing
- Added unit tests: `scroll_report_repeats_for_negative_scroll_lines`
and `scroll_report_repeats_for_positive_scroll_lines`
- Manually tested scrolling in tmux and neovim with mouse mode
---
Release Notes:
- Fixed mouse scroll in terminal apps (tmux, neovim, etc.) only sending
one scroll event when scrolling down, regardless of scroll amount
Emamul Andalib
created
b5eeeb9
agent_ui: Avoid querying `OnboardingUpsell` in prepaint (#49963)
Click to expand commit body
This hits the sqlite database unnecessarily
Release Notes:
- N/A *or* Added/Fixed/Improved ...