Commit log

e0212b8 acp: Add beta label to ACP registry (#47369)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

03a5f7b acp_thread: Rename resume to retry (#47370)

Click to expand commit body
Changing the name to better capture what this message does and also
avoid confusion with the actual session/resume method in ACP

Release Notes:

- N/A

Ben Brandt created

29b9174 Add `ep import-batch` to download finsihed Anthropic batches (#47364)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

b082481 project_panel: Show Reveal in File Manager on wsl (#47288)

Click to expand commit body
Assimilates https://github.com/zed-industries/zed/pull/46856 and adds
support for reveal file manager in the project panel on wsl. Closes
https://github.com/zed-industries/zed/pull/46856

Release Notes:

- Fixed "Reveal in File Manager" not working for WSL remote connections
on Windows.
- Show "Reveal in File Manager" in the project panel context menu on WSL

---------

Co-authored-by: Max Malkin <maxim_malkin@outlook.com>

Lukas Wirth and Max Malkin created

071b3d9 acp: Optimize registry refresh (#47367)

Click to expand commit body
Before we were checking it even if you weren't using registry agents.
Now happens less frfrequently, and only when you are actually using
registry agents.

Release Notes:

- N/A

Ben Brandt created

21fbceb workspace: Add close project menu item (#47365)

Click to expand commit body
cc https://github.com/zed-industries/zed/discussions/42163

Release Notes:

- Added a menu item to close the current project, going back to a clean
window state

Lukas Wirth created

c35d1da acp: Support the session_info_update notification (#47363)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

8db954a agent_ui: Defer spawning agents until the agent panel has been opened (#47355)

Click to expand commit body
Release Notes:

- N/A *or* Added/Fixed/Improved ...

Lukas Wirth created

2be94ce fs: Use public-api-only tests (#47149)

Click to expand commit body
This reduces time needed to build tests for fs from 1.2s to 0.6s.
Release Notes:

- N/A

Piotr Osiewicz created

1f4741c worktree: Use public-api-only tests (#47152)

Click to expand commit body
- **settings: Do not leak type serialization into downstream crates**
- **worktree: Separate integration tests into separate target**

Release Notes:

- N/A

Piotr Osiewicz created

67e0cec agent_ui: Fix message editor stealing focus from other panels (#47321)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/41278,
https://github.com/zed-industries/zed/issues/45576,
https://github.com/zed-industries/zed/issues/46513

Release Notes:

- Fixed message editor stealing focus (so the "Open Recent Project"
modal stays open)

This issue has been driving me insane haha.


_Note: This is my first code contribution to this project. Please be
kind and let me know if I have missed something. I tested this fix on my
machine and it works. Tests are passing on my device. I have agreed to
the Zed Contributor License and Feedback Agreement with my Zed Account
that's linked to the same email as this GitHub account._

Fabian Szabo created

618f848 git: Side-by-side diff UI (#47349)

Click to expand commit body
This PR implements a UI for the side-by-side diff, using blocks to align
the two sides and adding a coherent `SplitEditorElement`.

Release Notes:

- N/A

---------

Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Cole Miller , cameron , Anthony Eid , and Zed Zippy created

7adb97a User-defined slash commands (#46815)

Click to expand commit body
## Summary

Implements user-defined slash commands for the agent panel. Users can
create markdown files in `~/.config/zed/commands/` (user-wide) or
`.zed/commands/` (project-specific) that expand into templated text when
invoked via `/command_name` in the chat interface.

## Features

- **File-based commands**: Create `.md` files that become slash commands
- **Template expansion**: Use `$1`, `$2`, etc. for positional arguments,
or `$ARGUMENTS` for all args
- **Namespacing**: Subdirectories create namespaced commands (e.g.,
`frontend/component.md` → `/frontend:component`)
- **Project & user scopes**: Project commands in `.zed/commands/`, user
commands in config dir
- **Claude compatibility**: Can symlink `~/.claude/commands/` for
compatibility
- **Caching**: Commands are cached and watched for file changes
- **Error handling**: Graceful degradation with error display in UI

## Feature Flag

Behind `user-slash-commands` feature flag.

## Testing

52 unit/integration tests covering parsing, validation, expansion, file
loading, symlinks, and error handling.

---

Release Notes:

- N/A (behind feature flag)

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Richard Feldman and Zed Zippy created

9ac94ce extension_rollout: Add support for renaming and deleting files (#47329)

Click to expand commit body
This is in preparation for removing one of the files in favor of having
just one larger one (and perhaps renaming that in the future).

Release Notes:

- N/A

Finn Evers created

d42fe0b Fix Visual mode flip on project search (#44284)

Click to expand commit body
Previously, when project search results first appeared, vim would
incorrectly switch to Visual mode. This happened because vim settings
(including `collapse_matches`) weren't synced to an editor until it
received focus. Since the results editor wasn't focused when the first
match was selected, the selection wasn't collapsed, causing vim to
interpret it as a visual selection.

Now vim settings are synced immediately when vim activates on an editor,
ensuring `collapse_matches` is set before any selections are made.

Closes #43878

Release Notes:

- Fixed vim mode incorrectly switching to Visual mode on first project
search

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>

MostlyK and dino created

59738a7 Support zooming and panning in the image viewer (#43944)

Click to expand commit body
Implemented Pan and Zoom on the Image Viewer.

Demo:



https://github.com/user-attachments/assets/855bafe8-fdc2-4945-9bfb-e48382264806





Closes #9584



Release Notes:

- Add zoom in/out, reset, fit-to-view and zoom-to-actual actions 
- Support scroll-wheel zoom with modifier, click-and-drag panning 
- Renders a zoom percentage overlay. 
- ImageView Toolbar Added to control zoom in/out and fit view.

---------

Co-authored-by: MrSubidubi <finn@zed.dev>

MostlyK and MrSubidubi created

01160a7 extension_ci: Remove rollout exclusion list (#47315)

Click to expand commit body
The last extension has now been migrated to the new workflows and with
that, the entire zed-extensions org now uses the centralized workflows 🎉

Given this, we can now remove the exclusion list and - as a little bonus
- also rollout changes automatically to the repository hosting the
shared workflows.

Release Notes:

- N/A

Finn Evers created

e24c819 prompt_store: Fix deleted rules from the rules library being restored after restart (#47323)

Click to expand commit body
Closes #40648

When deleting a prompt from the rules library, we now also delete it
from the legacy V1 database tables (if they exist). Previously, the V1
data would persist and get re-migrated on the next startup.

Release Notes:

- Fixed an issue where deleted rules from the rules library were getting
restored after a restart.

Smit Barmase created

54114d2 ep_cli: Chunk teacher prediction requests to Anthropic batch API (#47318)

Click to expand commit body
Closes #ISSUE

We're hitting request size limits on the new larger dataset, so we need
to do pre-batching. A 16k chunk size was chosen arbitrarily but seems to
be a good tradeoff between number of chunks / within request size limit

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

6354334 language_models: Remove `open-ai-reponses-api` feature flag (#47317)

Click to expand commit body
This PR removes the `open-ai-responses-api` feature flag and makes it so
all OpenAI requests to the Zed provider use the Responses API.

We've been running this in Nightly/Preview for a week now without any
issues.

Closes CLO-104.

Release Notes:

- N/A

Marshall Bowers created

901fe23 Pop end row if the end is equal to the starting sticky row (#47314)

Click to expand commit body
Closes #47307

In markdown, the outline item for a heading actually ends on the same
row as the next outline item (see #47307 for the visual glitch). This
change makes it so that the end row calculation accounts for that, and
you don't have two different display points where content is potentially
scrolling out of view. Fixed visually:



https://github.com/user-attachments/assets/e0a7e57a-fd41-4484-87e9-ac3e51d0b927


Release Notes:

- Fixed a visual glitch with sticky scroll headers in markdown

KyleBarton created

851ab29 ep: Update teacher prompt to avoid undoing user edits (#47313)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

049da46 Bump Zed to v0.222 (#47305)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

6b5c06e Add a streaming edit file tool (#47244)

Click to expand commit body
Release Notes:

- N/A

Michael Benfield created

e1e7676 ui: Improve performance in the `CopyButton` component (#47292)

Click to expand commit body
This PR improves the performance of the `CopyButton` component by
tracking the copied state locally through a `CopyButtonState` struct
instead of making an OS call every time the component re-renders. Also
pushing a slight improvement here by resetting the state after two
seconds so as to make the check mark go away after you clicked to copy.

Release Notes:

- N/A

Danilo Leal created

099650f ep: Check whether predictions worsen brace balance (#47301)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

40fe799 Use arithmetic expansion instead of `expr` in `./script/clear-target-dir-if-larger-than` (#47298)

Click to expand commit body
Fixes CI failures when the target dir is 0GB in size, which causes
`expr` to output a non-zero exit code per the posix spec.

See exit status section of
https://www.man7.org/linux/man-pages/man1/expr.1p.html

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

8fb5587 agent_ui: Alphabetically sort edited files in the panel & review view (#47300)

Click to expand commit body
This makes the ordering of files consistent with the Git diff view.

Release Notes:

- N/A

Danilo Leal created

1b0771e agent_ui: Improve UI for subagent calls (#47299)

Click to expand commit body
- Improves spacing between consecutive calls
- Only show disclosure button (i.e., ability to expand the card) when
there's actual content
- Fix font size being bigger than the actual thread
- Add gradient overlay to communicate that you can't scroll within the
card (expanding the subagent call will allow that in the near future)

Here's the result of it all, roughly:

<img width="600" height="890" alt="Screenshot 2026-01-21 at 12  26@2x"
src="https://github.com/user-attachments/assets/e5e4a544-611d-48f5-b00d-f69e869726c5"
/>

Release Notes:

- N/A

Danilo Leal created

1103f3b acp: Allow running NPM agents from registry (#47291)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

69ea59d agent_servers: Don't fill in unneeded fields in settings when auto-adding new agent servers (#47293)

Click to expand commit body
Adding some serde magic to avoid adding a bunch of empty fields to the
settings file.

Release Notes:

- N/A

Ben Brandt created

db37fb0 themes: Fix One Light terminal cyan color (#45691)

Click to expand commit body
Closes #45075

The cyan terminal colors in One Light were incorrectly set to the same
values as green, making them indistinguishable. This was introduced in
https://github.com/zed-industries/zed/pull/44912

Release Notes:

- Fixed terminal cyan color displaying as green in One Light theme

Mateo Kruk created

5e1b7ae agent_ui: Fix keybinding conflict with editing queued messages (#47290)

Click to expand commit body
This PR fixes `shift-e` being used for triggering edits in queued
messages, which breaks writing simple capital E in the editor.

Release Notes:

- N/A

Danilo Leal created

5751aeb languages: Fix `poetry` environment discovery on Linux (#47100)

Click to expand commit body
Closes #47098 

The root cause of this issue is related to how `Poetry` (and the
upstream `pet-poetry` library) handles path hashing. While perhaps it's
an upstream behavior, we can easily fix it on the Zed side.

The related code are

https://github.com/zed-industries/zed/blob/7ce845210d3af82a57a7518e0abe8c167d60cc6a/crates/languages/src/python.rs#L1181-L1211

In my debugging, I found that `worktree_root` takes the form
`/home/user/project`, but `config.workspace_directories` often ends up
as `/home/user/project/`(with a trailing slash). Normally this wouldn't
be an issue, but `Poetry` generates environment names based on the hash
of the absolute path. Since the hashes for `/home/user/project` and
`/home/user/project/` are different, `pet-poetry` fails to find the
environment.

The fix is straightforward: we just need to ensure the trailing `/` is
removed so the hashes match.

Release Notes:

- Fixed poetry environment not discovered on linux

Xin Zhao created

ed29b46 project_panel: Fix "Add Folder to Project" menu hidden on remote projects (#47283)

Click to expand commit body
Fixes an unintended behavioral change from #40838.

Release Notes:

- Fixed "Add Folder to Project" and "Remove from Project" menu items
being incorrectly hidden on remote projects.

Smit Barmase created

a53017c ep: Don't compute n-grams for regions that match exactly (#47281)

Click to expand commit body
This makes delta-chrF computation ~50 faster.

Release Notes:

- N/A

Oleksiy Syvokon created

a608ee6 remote_server: Fix remote project search include/exclude filters for multiple worktrees (#47280)

Click to expand commit body
Closes #45772

Release Notes:

- Fixed project search include/exclude filters not working correctly in
remote project with multiple folders.

Smit Barmase created

b22d129 acp: Filter out built-in agents from the registry (#47279)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

6ab03c6 onboarding: Fix theme picker always updating theme based on system appearance (#47245)

Click to expand commit body
The settings store separate themes for Light and Dark modes. When the
user clicks a theme, the code uses the system appearance to decide which
to update, rather than the mode the user selected in the UI. This causes
the wrong theme to be saved when the system appearance differs from the
selected mode.

<img width="746" height="324" alt="image"
src="https://github.com/user-attachments/assets/b8f8d937-172d-4da8-b572-4f3db7f1de9a"
/>

Release Notes:

- Fixed onboarding page sometimes rendering the wrong theme

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: MrSubidubi <finn@zed.dev>

Michael Hackner , Claude Opus 4.5 , and MrSubidubi created

7bd3075 open_ai: Support reasoning content (#43662)

Click to expand commit body
Support for Kimi K2 Thinking

Release Notes:

- Added support for thinking traces when using OpenAI-API-compatible AI providers

---------

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>

Aero and Bennet Bo Fenner created

5731066 ep: Fix in-place processing (#47274)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

67d3804 agent: Allow env overrides for extension and registry agents (#47275)

Click to expand commit body
Align the behavior with built-in and custom agents

Release Notes:

- N/A

Ben Brandt created

8c8639f git: Fix buffer diff crash that could occur during the stage all operation (#47265)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/46519

This crash happened because we were incorrectly merging pending and
unstaged hunks together by always using the pending hunk end offset as
the merged hunk bound instead of the max of both hunks.

The fix is to use `max()` when updating `buffer_offset_range.end` during
pending hunk merging, matching the behavior used for unstaged hunk
merging.

Release Notes:

- N/A

Anthony Eid created

a191444 gpui: Preserve rem_size context for deferred draws (#47263)

Click to expand commit body
Closes #46328

Release Notes:

- Fixed agent model selector cutting off models at the end of the list.

Smit Barmase created

21050e2 Fix nested request rate limiting deadlock for subagent edit_file (#47232)

Click to expand commit body
## Problem

When subagents use the `edit_file` tool, it creates an `EditAgent` that
makes its own model request to get the edit instructions. These "nested"
requests compete with the parent subagent conversation requests for rate
limiter permits.

The rate limiter uses a semaphore with a limit of 4 concurrent requests
per model instance. When multiple subagents run in parallel:

1. 3 subagents each hold 1 permit for their ongoing conversation streams
(3 permits used)
2. When all 3 try to use `edit_file` simultaneously, their edit agents
need permits too
3. Only 1 edit agent can get the 4th permit; the other 2 block waiting
4. The blocked edit agents can't complete, so their parent subagent
conversations can't complete
5. The parent conversations hold their permits, so the blocked edit
agents stay blocked
6. **Deadlock**

## Solution

Added a `bypass_rate_limit` field to `LanguageModelRequest`. When set to
`true`, the request skips the rate limiter semaphore entirely. The
`EditAgent` sets this flag because its requests are already "part of" a
rate-limited parent request.

(No release notes because subagents are still feature-flagged.)

Release Notes:
- N/A

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Richard Feldman and Zed Zippy created

ff35da2 agent_ui: Fix keybinding conflict with action to clean up the queue (#47254)

Click to expand commit body
This PR frees up `shift-backspace` to work as it did before. Now, the
action to remove the first queued message is now assigned to the
`cmd-shfit-backspace` keybinding, whereas the action to clear the entire
message queue is assigned to `cmd-alt-backspace`.

Release Notes:

- N/A

Danilo Leal created

aa4e94f docs: Replace ellipsis with proper character (#47250)

Click to expand commit body
Ultra nit PR to test some end-to-end PR creation workflow with AI.

Release Notes:

- N/A

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>

Danilo Leal and Claude Haiku 4.5 created

ece66be docs: Big reorganize (#45276)

Click to expand commit body
Release Notes:

- N/A 

Overview

Restructures the documentation navigation to be organized by user goals
rather than feature lists. Introduces a new "Working with Code" section
and reorganizes existing content into clearer groupings.

### Navigation Changes

**New top-level sections:**
- **Working with Code** — Groups editing, navigation, and execution
features by workflow
- **Reference** — Dedicated section for lookup-only content (settings,
actions, CLI)
- **Coming From...** — Migration guides grouped together

**Reorganized sections:**
- **Customization** — Renamed from "Configuration," focused on
appearance and keybindings
- **Account & Privacy** — Consolidated auth, privacy, and telemetry
pages

New Files

| File | Purpose |
|------|---------|
| `editing-code.md` | Overview page for editing features |
| `finding-navigating.md` | Overview page for navigation tools with
quick reference |
| `running-testing.md` | Overview page for tasks, debugger, and REPL |
| `reference/all-settings.md` | Settings reference (moved/renamed) |
| `reference/cli.md` | CLI reference (moved) |

### Content Moves

| Page | From | To |
|------|------|-----|
| Snippets | Customization | Working with Code → Editing Code |
| Code Completions | (flat) | Working with Code → Editing Code |
| Diagnostics | (flat) | Working with Code → Editing Code |
| Multibuffers | (flat) | Working with Code → Editing Code |
| Command Palette | (flat) | Working with Code → Finding & Navigating |
| Outline Panel | (flat) | Working with Code → Finding & Navigating |
| Tab Switcher | (flat) | Working with Code → Finding & Navigating |
| Tasks | (flat) | Working with Code → Running & Testing |
| Debugger | (flat) | Working with Code → Running & Testing |
| REPL | (flat) | Working with Code → Running & Testing |
| All Settings | Configuration | Reference |
| CLI | (various) | Reference

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Katie Geer , Marshall Bowers , and Zed Zippy created

9c3dc21 Use `anyOf` instead of `oneOf` in keymap schema (#47248)

Click to expand commit body
Closes #ISSUE

Resolves some spurious warnings we were seeing in the keymap file due to
keybind declarations matching multiple possible shapes which is not
allowed with `oneOf` per the json-schema spec

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

cd0b373 ep_cli: Add filter languages subcommand (#47242)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created