Commit graph

34330 commits

Author SHA1 Message Date
Ike
a4ebfa0e7a
ui: Adjust BoxShadow offset for elevation styles (#47010)
Changed the offset of shadow to improve shadow appearance. There was a
1px horizontal offset on all elevated surfaces — barely perceptible, but
once you see it, it's all you see

|Before|After|
|-|-|
|<img width="586" height="884" alt="before"
src="https://github.com/user-attachments/assets/63fa36a7-7845-4c6f-9e73-36ad5056194b"
/>|<img width="586" height="884" alt="after"
src="https://github.com/user-attachments/assets/41a032d3-e7d6-4188-9394-656d5caf822e"
/>|

Release Notes:

- N/A
2026-01-19 11:17:44 -03:00
Qichen Liu 刘启辰
5e2e917a8a
workspace: Improve the welcome and launchpad pages UI (#47072)
Closes #47069

Release Notes:

- N/A

We can add something like `pb_40()` if the launchpad is supposed to be
up a bit rather centered
2026-01-19 11:13:23 -03:00
Ben Brandt
36873662cf
agent: Make sure ACP still gets classic tool permission UI (#47142)
This makes sure all of the new granular permission logic and ui only
applies to the zed agent and doesn't affect the UI of external agents.

Release Notes:

- N/A
2026-01-19 14:47:04 +01:00
Emamul Andalib
6c712d88e4
terminal: Fix fast scrolling during mouse mode (#45600)
Closes #18930

### Summary
- Fix fast Macbook trackpad/mouse scrolling in terminal applications
with mouse mode enabled

### The Problem
Scrolling with a trackpad in tmux, neovim, or any terminal app that
enables mouse mode was too fast. A gentle swipe would send me through
hundreds of lines, making these apps practically unusable in Zed's
terminal.

### Root Cause
When the terminal is in mouse mode, we send escape sequences to report
scroll events to the application. The bug was in `scroll_report()`:

ca47822667/crates/terminal/src/terminal.rs (L1983-L1988)

That `max(scroll_lines, 1)` meant we'd send **at least 1 scroll event
even when `scroll_lines` was 0**.

ca47822667/crates/terminal/src/mappings/mouse.rs (L96)

On macOS, trackpad gestures fire many small pixel deltas due to scroll
acceleration. Each tiny movement triggered a scroll event, even though
we hadn't accumulated enough pixels for a full line yet. This is a known
issue alacritty/alacritty#2869 - macOS sends fractional line deltas
(like 0.1) instead of whole lines.

### The Fix
Don't send mouse reports when no full line has accumulated

This aligns with Alacritty's approach - accumulate partial scroll
amounts and only report when complete lines are ready.

6ee6e53ee3/alacritty/src/input/mod.rs (L700-L730)

### Testing
Tested trackpad scrolling in:
- tmux (pane navigation, scrollback)
- neovim (buffer scrolling)
- opencode (TUI navigation)
All scroll smoothly now.

### Demo
The demo shows the behavior of the scrolling. I can go fast or I can go
slow


https://github.com/user-attachments/assets/14bfc2f4-f286-4341-bf55-4ced894d63f9

Release Notes:

- Fixed trackpad scrolling being too fast in terminal applications with
mouse mode enabled (tmux, neovim, opencode, etc.)
2026-01-19 14:18:53 +01:00
Josh P.
54929011b1
Add action listener to workspace for pane::CloseActiveItem (#46421)
When focus is on a dock panel that doesn't contain a pane (e.g., project
panel), `pane::CloseActiveItem` will now close the active item in the center
pane instead of doing nothing.

This allows users to bind, for example, `cmd-w` to `pane::CloseActiveItem` 
and have it work consistently regardless of whether focus is on a dock 
panel or the editor.

Closes #45261

Release Notes:

- Improved `pane::CloseActiveItem` to close center pane items even when
focus is on a dock panel like the project panel or outline panel

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-01-19 12:34:22 +00:00
Piotr Osiewicz
1e2392ed94
ci: Move clippy off of run_platform_tests and into a separate job (#47139)
This should slash our CI times a bit (1 minute or so)

Closes #ISSUE

Release Notes:

- N/A
2026-01-19 13:34:06 +01:00
Bennet Bo Fenner
56b8be876f
docs: Explain how git commit message prompt can be customized (#47136)
Release Notes:

- N/A
2026-01-19 11:55:34 +01:00
Finn Evers
2321178f28
languages: Apply JSX fixes to JavaScript highlights (#47130)
Closes #46701

This ports the fixes from #46442 over to the JavaScript highlights,
which we forgot to do in that PR since the highlights are not shareable
and the fix was only applied to TSX... Hence, porting the fixes here
manually to solve the issue for good.

Release Notes:

- Fixed an issue where JSX components were highlighted too broadly,
causing normal HTML tags to be highlighted as such
2026-01-19 09:50:48 +00:00
Finn Evers
e12dadd7da
chore: Remove contexts.scm (#47127)
The file is unused, empty and hasn't been touched in two years, hence
removing this.

Release Notes:

- N/A
2026-01-19 09:29:19 +00:00
Jordi Villar
376e958569
Fix inverted char boundary check causing invalid offsets (#47112)
The logic in `anchor_at_offset` and `to_offset` seems inverted when
checking character boundaries. `assert_char_boundary` returns `true`
when the offset IS valid, but the code was adjusting offsets when the
function returned `true` (valid) instead of `false` (invalid).

Release Notes:

- N/A
2026-01-19 09:08:45 +01:00
Max Brunsfeld
50a90d35b2
Add a 'rejected patch' field to example specs, for DPO examples (#47043)
The `capture example` action now populates the markdown file with a noop
"Rejected Patch", so that you can easily specify the good and bad
output.

Release Notes:

- N/A
2026-01-18 20:25:23 -08:00
Joseph T. Lyons
e476af6417
Show language server path in language server menu (#47037)
<img width="779" height="210" alt="SCR-20260116-qrif"
src="https://github.com/user-attachments/assets/13c84f20-8fe1-4e3a-9de6-8df1024c2c6c"
/>

In most languages, Zed will check 2-3 locations for language servers.
For instance, when opening a python file, zed looks for ruff in:

- project venv
- user's PATH
- location that zed installs language servers

The language server menu surfaces information that makes it easier to
gather data about your language server, I think offering a path for the
one being ran makes things more clear to the user.

That being said, Idk the best way to surface this. (@danilo-leal?)

Release Notes:

- Add language server path to a tooltip that is produced when hovering
on its status in the language server menu
2026-01-18 23:13:25 +00:00
Jakub Konka
7ce845210d
ztracing: Enable memory profiling and callstack sampling (#47052)
While at it, annotate more functions that are potentially related to
language parsing in buffers.

Also, on macOS, in order to actually have callstack frames properly
recorded by Tracy, you need to manually run `dsymutil` on the binary.

Release Notes:

- N/A
2026-01-17 19:29:19 +00:00
Mikayla Maki
4064af3458
Preserve and restore focus across window activation cycles (#47044)
Closes https://github.com/zed-industries/zed/issues/46953

This turned out to be a pretty deep rabbit hole, ultimately landing in
how GPUI didn't restore focus nicely when swapping window activation
states.

Release Notes:

- N/A

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 02:57:06 +00:00
Kunall Banerjee
b8dfc31fcd
docs: Add documentation for text_rendering_mode (#46358)
We added support for it in
https://github.com/zed-industries/zed/pull/45423. It’s already in
preview, but not yet in stable. So I’m going to keep this in my drafts
till then.

Release Notes:

- N/A
2026-01-16 20:16:47 -05:00
Max Brunsfeld
1468ee2ae5
Fix more errors found when retrieving context for a huge example batch (#47039)
Release Notes:

- N/A
2026-01-16 16:43:11 -08:00
Conrad Irwin
39e2f26671
Bump async-task (#47036)
This reduces total code-size of the project crate by ~25%, and reduces
release build time by ~35s thanks to
@osiewicz's proposed fix https://github.com/smol-rs/async-task/issues/66

Release Notes:

- N/A

Co-authored-by: Piotr <piotr@zed.dev>
2026-01-16 17:39:35 -07:00
Finn Evers
10a536b328
editor: Fix relative line numbers breaking with nested folds (#47035)
Closes #46516

The previous fix only worked for non-nested folds, whereas this one also
considers nested folds properly. Also makes this more straightforward to
read.

Release Notes:

- Fixed an issue where relative line numbering would break with nested
folds.
2026-01-16 23:56:51 +00:00
Max Brunsfeld
afaccf9c67
Fix edit history clearing bug in ep (#47017)
We were including changes due to Buffer.reload in the edit history.

Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-01-16 15:44:38 -08:00
KyleBarton
6acca17c44
Devcontainer setup modal (#47021)
Adds the ability to create a dev container definition from scratch.
Additionally, separates devcontainer logic out into its own crate, since
it was getting sufficiently complex to separate from the
`recent_projects` crate.

A screen recording of the modal experience:


https://github.com/user-attachments/assets/f6cf95e1-eb7b-4ca3-86c7-c1cbc26ca557


Release Notes:

- Added modal to initialize a dev container definition in the project
with `projects: initialize dev container`
- Added podman support for dev container actions with the `use_podman`
setting
- Improved devcontainer error handling

---------

Co-authored-by: Sam Coward <idoru42@gmail.com>
2026-01-16 15:20:48 -08:00
Richard Feldman
258d9223e4
Make always_allow_tool_actions override always_confirm and default_mode (#47012)
Previously, `always_confirm` patterns would force confirmation even when
`always_allow_tool_actions` was set to true. This was counterintuitive
since the global setting should provide a way to skip all confirmations.

The new precedence order is:
1. **`always_deny`** - still blocks for security
2. **`always_allow_tool_actions`** - when true, allows all non-denied
actions
3. **`always_confirm`** - prompts if `always_allow_tool_actions` is
false
4. **`always_allow`** - allows without prompting
5. **`default_mode`** - fallback behavior

This means setting `always_allow_tool_actions=true` will now skip
confirmation prompts from `always_confirm` patterns and override
`default_mode: Deny` settings, while still respecting `always_deny`
patterns for security.

(No release notes because granular tool permissions are still
feature-flagged.)

Release Notes:

- N/A
2026-01-16 18:18:39 -05:00
Joseph T. Lyons
c0bfba85c5
ty: Add support for using venv-installed binary (#47029)
This aligns ty's behavior with ruff by checking for binaries in the
following order:

1. venv (from the Python toolchain's bin directory)
2. PATH
3. Zed-installed

Release Notes:

- ty: Added support for using venv-installed binary
2026-01-16 22:22:38 +00:00
Marshall Bowers
e05a577fd3
danger: Remove check for modifying prompts (#47028)
This PR removes the Danger check for modifying prompts, as we no longer
need to account for these in Cloud.

Release Notes:

- N/A
2026-01-16 22:21:58 +00:00
Richard Feldman
e5706f2349
Add BYOK GPT-5.2-codex support (#47025)
<img width="449" height="559" alt="Screenshot 2026-01-16 at 4 52 12 PM"
src="https://github.com/user-attachments/assets/1b5583d7-9b90-46b1-a32f-9821543ea542"
/>

Release Notes:

- Add support for GPT-5.2-Codex via OpenAI API Key
2026-01-16 17:09:08 -05:00
Kirill Bulatov
3389d84e03
Improve bracket colorization in Markdown files (#47026)
Closes https://github.com/zed-industries/zed/issues/46420

Release Notes:

- Improved bracket colorization in Markdown files
2026-01-16 22:04:51 +00:00
Joseph T. Lyons
eedff99645
Format update_top_ranking_issues with latest ruff (#47023)
Release Notes:

- N/A
2026-01-16 21:43:22 +00:00
Kirill Bulatov
37715d5a50
Send trust messages only to the clients related to the current WorktreeStore (#47005)
Release Notes:

- N/A
2026-01-16 20:18:53 +02:00
Lukas Wirth
1f97c0e10c
sum_tree: Implement find functions iteratively (#47013)
Recursion here is unnecessary as we do not make use of the stack frames,
so iterating is even cheaper as we do not need to do any stack
bookkeeping either way.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-16 18:05:56 +01:00
Ben Kunkle
d1e4ef09ee
Fix not sending file_chunks parameter to Sweep in evals (#46999)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-16 11:56:33 -05:00
Ben Kunkle
19be78c8d3
Fix opening schemas via path args (#47008)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-16 16:39:16 +00:00
Ben Brandt
43d5326075
acp: Support loading a session for external agents (#46992)
Release Notes:

- N/A
2026-01-16 16:05:43 +00:00
Finn Evers
47a276328b
Remove scheduler test failure status plan (#47000)
Leftover from https://github.com/zed-industries/zed/pull/46671, CC
@ConradIrwin

Release Notes:

- N/A
2026-01-16 16:03:25 +00:00
Finn Evers
2aa8d5c747
project_panel: Split up render_entry into smaller methods (#46850)
Rustfmt surrendered here because that method grew a bit too large. This
splits this up into smaller methods in an effort to combat this and make
the code more maintainable.

Release Notes:

- N/A
2026-01-16 17:01:09 +01:00
Ben Kunkle
73458a074c
Fix context enabled race condition in edit prediction cli (#46997)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-16 15:55:39 +00:00
Lukas Wirth
d092f3a41b
text: Speed up offset_for_anchor and fragment_id_for_anchor conversions (#46989)
And most importantly, speed `Anchor::cmp` by doing so.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-16 15:23:57 +00:00
Kirill Bulatov
deb1b6e46a
Fix json-language-server not considering file_types from project settings (#46991)
Release Notes:

- Fixed json-language-server not considering `file_types` from project
settings
2026-01-16 14:33:28 +00:00
Lukas Wirth
116c44426d
livekit_client: Revert #46986 for macos (#46990)
This broke mac builds

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-16 14:20:23 +00:00
Ben Brandt
59707157af
agent: Move thread loading to the AgentConnection (#46985)
Preps for external agents being able to load a thread

Release Notes:

- N/A
2026-01-16 14:52:00 +01:00
Lukas Wirth
14628482a3
livekit_client: Do not encode video frames on the main thread (#46986)
This can block the mainthread for several milliseconds given large
enough screensizes

Release Notes:

- Fixed screensharing performance on windows and linux
2026-01-16 13:25:55 +00:00
Lukas Wirth
c2f49c9e0a
remote_server: Fix panic handler not logging useful info (#46975)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-16 12:26:33 +00:00
Lena
c6f70411ce
Add slack notifications for bad bugs (#46982)
Release Notes:

- N/A
2026-01-16 10:37:50 +00:00
Mikayla Maki
f1a8b05391
agent: End turn at message boundary when queue has pending messages (#46980)
This feature cost $12

Release Notes:

- Changed the behavior of queued messages to gracefully wait for the
current activity to complete.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 02:17:08 -08:00
Mikayla Maki
77bf7b7942
Fix zoomed dock closing on window reactivation (#46972)
Fixes https://github.com/zed-industries/zed/issues/46953

This bug fix cost $10

Release Notes:

- N/A

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 08:40:16 +00:00
Danilo Leal
2618f2922f
Don't show diff review button on folded buffers (#46968)
We were incorrectly leaking the display of this button when the file was
folded in the multibuffer:

| Before | After |
|--------|--------|
| <img width="788" height="400" alt="Screenshot 2026-01-15 at 11  42@2x"
src="https://github.com/user-attachments/assets/2ef9d154-35b5-4788-91c2-0e7a8d45594c"
/> | <img width="788" height="400" alt="Screenshot 2026-01-15 at 11 
41@2x"
src="https://github.com/user-attachments/assets/f4d9416b-9826-4616-8e36-8876ef5e25ec"
/> |

Release Notes:

- N/A
2026-01-16 03:00:27 +00:00
Max Brunsfeld
780a87dd98
Introduce new predict_edits/v3 endpoint (#46960)
Release Notes:

- N/A
2026-01-16 02:16:34 +00:00
Danilo Leal
267cf56943
agent_ui: Fix preview for images and creases in queue entries (#46964)
This PR fixes the fact that we weren't showing any @-mentions (files,
images, etc.) in the queue preview.

Release Notes:

- Agent: FIxed a bug with the message queue in the agent panel where
@-mentions weren't being displayed in the message preview within the
queue entries list.
2026-01-15 23:14:47 -03:00
Danilo Leal
d183902dc7
agent_ui: Make it easier to interrupt with message in queue (#46954)
Follow up to https://github.com/zed-industries/zed/pull/46797

When you send a message, as per the PR linked above, Zed will now queue
it by default. But if you want to fast-track it/interrupt the agent
immediately, effectively sending the first message in the queue, you can
just hit enter again and it will get sent right away.


https://github.com/user-attachments/assets/5e6230f6-c56e-4496-9bcb-8d6ffb9e19cb

Release Notes:

- Agent: Made it easier to interrupt the agent while having messages in
the queue.
2026-01-15 20:07:16 -03:00
Richard Feldman
24b7e3edb5
Enable review comments in branch diff view (#46951)
<img width="611" height="102" alt="Screenshot 2026-01-15 at 4 18 30 PM"
src="https://github.com/user-attachments/assets/ba422cbb-4607-47c7-94c7-77752d7b4479"
/>

When viewing a branch diff (e.g., 'Changes since origin/main'), the
toolbar was hidden because `ProjectDiffToolbar` filters for
`DiffBase::Head` only. This meant users couldn't send review comments to
the Agent panel from the branch diff view.

Now there's a new `BranchDiffToolbar` which:
- Only activates for branch diff views (`DiffBase::Merge`)
- Shows only the 'Send Review to Agent' button (not stage/unstage
controls)
- Only appears when there are review comments (same behavior as the
existing toolbar)

(No release notes because this is still feature-flagged.)

Release Notes:

- N/A
2026-01-15 17:11:56 -05:00
Conrad Irwin
4250871a1c
Fewer race-conditions in Vercel redeploy (#46826)
Should avoid releases rolling back to older vercel versions

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-15 14:48:05 -07:00
Danilo Leal
70b0a95a22
agent_ui: Fix review buttons getting cut-off (#46948)
Closes https://github.com/zed-industries/zed/issues/46922

Release Notes:

- N/A
2026-01-15 18:39:59 -03:00