Fixes broken `docs/accounts.html` links in all five migration guides.
## Changes
Replace `https://zed.dev/docs/accounts.html` with
`https://zed.dev/docs/authentication` in:
- `docs/src/migrate/vs-code.md`
- `docs/src/migrate/intellij.md`
- `docs/src/migrate/pycharm.md`
- `docs/src/migrate/webstorm.md`
- `docs/src/migrate/rustrover.md`
These links were flagged as 4xx in an SEO audit. The `accounts.html`
page does not exist; `authentication` is the correct destination.
Release Notes:
- N/A
After looking around a bit, I felt like subagent wasn't the right way to
introduce this tool to the model. And with some back and forth
verification + market research, we both agreed spawn_agent was a better
name for what this tool is doing.
It still calls the right tool if you ask for a subagent, but especially
if we move these to be running in the background, spawn will be a better
name anyway.
Release Notes:
- N/A
This PR adds the diff stat numbers to the `git: branch diff` view
toolbar.
<img width="550" height="1964" alt="Screenshot 2026-02-20 at 10 58@2x"
src="https://github.com/user-attachments/assets/0fc63b64-ce6e-417a-92b5-8008f2561a8f"
/>
---
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:
- Git: Added diff stat numbers to the Branch Diff (`git: branch diff`)
view.
Helps #38927
- In the common case, each fragment has at most one deletion, so we can
skip the heap allocation
- SmallVec is smaller than an empty HashSet
- Makes cloning cheaper
- From my analysis of the code it's not possible to have duplicate ticks
(I may be wrong tho)
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
When using the split view, if the project diff inserts excerpts for the
same buffer using two different `PathKey`s, we panic inside
`LhsEditor::update_path_excerpts_from_rhs` because of an implicit
assumption that `excerpts_for_path()` and `excerpts_for_buffer()` return
the same number of values. This PR addresses that by ignoring any
excerpts for the given buffer that have a different path key from the
provided one.
Release Notes:
- Fixed a crash when using the split diff view.
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Co-authored-by: Eric <eric@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:
- N/A *or* Added/Fixed/Improved ...
Previously we only had the ability to return anyhow errors, which
limited the amount of structured data we could send the model.
Now tools can also return structured data in the error cases, which is
super helpful for subagents in particular
Release Notes:
- N/A
When there is no selection, make `cmd->` (`agent::addSelectionToThread`)
use the current line containing the cursor instead of doing nothing.
Supports both Zed Agent and Zed Assistant.
Works with multiple-cursors and a mix of selections and cursors.
Authored by Claude Opus 4.5, tested by me.
Release Notes:
- agent: Make `agent::addSelectionToThread` (`cmd->`) use the current
line of the cursor when there is no selection.
---------
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
This PR makes the "Review Diff" button show up only if the multibuffer
_isn't_ empty and if AI is enabled. It was previously just checking for
the AI setting.
Release Notes:
- N/A
Looking at this more, the map of tools is just for what is available and
all of the filtering happens at runtime. So we can just rely on the
current behavior for the list of tools (it was already a matching set)
and we can simplify all of the code paths again where we were adding
this filtered list.
Release Notes:
- N/A
There are some UI concerns, especially for permission requests, that get
extremely complicated for recurisve subagents.
We'll move this to 1 for now to reduce complexity, and revisit once we
have a better way for representing all current permission requests.
Release Notes:
- N/A
This shrinks the size of `text::Anchor` from 32 bytes to 24 and
`multi_buffer::Anchor` from 72 bytes to 56
Release Notes:
- Improved the memory usage of Zed a bit
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
When a buffer is folded in the split diff view and then removed from the
multibuffer (via `remove_excerpts_for_path`), the block map's
`folded_buffers` set retains a stale entry for that buffer ID. Later,
when the split view syncs folded state from the RHS display map to the
LHS, it tries to look up the companion mapping for this stale buffer and
fails because the companion no longer tracks a buffer that's been
removed from the multibuffer.
This originally caused a panic via `.expect()`. This PR:
1. Converts the panic into graceful handling by skipping unmapped
buffers.
2. Actively removes stale entries from `folded_buffers` so they don't
persist as ghost state — ensuring that if the same buffer is later
re-added, it won't incorrectly appear as folded.
3. Adds a regression test covering the full lifecycle: fold → remove →
split → re-add → assert both LHS and RHS report the buffer as not
folded.
Release Notes:
- Fixed a crash in split diff view when a folded buffer was removed and
re-added.
The issue I ran into was that responses from anthropic compatible
providers, like Kimi for Coding, have no space after `data:`. This
change just adds a quick check to also allow for those providers to
work.
Before it just resolved but did not show any output:
<img width="50%" alt="CleanShot 2026-01-28 at 12 50 31@2x"
src="https://github.com/user-attachments/assets/c3c8fe27-348e-4b21-a5f1-25bcc82f3774"
width=50%/>
Now it returns the proper result:
<img width="50%" alt="CleanShot 2026-01-28 at 12 56 30@2x"
src="https://github.com/user-attachments/assets/4e524c1e-78ab-4956-bd65-a919d46adc59"
width=50%/>
Normal Anthropic models still work as expected:
<img width="50%" alt="CleanShot 2026-01-28 at 12 58 37@2x"
src="https://github.com/user-attachments/assets/5a2906aa-1183-45b6-939b-01a6830f3385"
/>
Config to test
```json
"language_models": {
"anthropic": {
"api_url": "https://api.kimi.com/coding",
"available_models": [
{
"name": "kimi-for-coding",
"display_name": "Kimi 2.5 Coding",
"max_tokens": 262144,
"max_output_tokens": 32768,
},
],
},
}
```
TLDR:
- Accepts SSE data:{...} lines (no space) emitted by some alternative
Anthropic providers, in addition to the standard data: {...} format.
Release Notes:
- Fixed Anthropic streaming for alternative providers by accepting SSE data:{...} (no space) lines.
---------
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
The `unreachable()` assumption at `queue_prediction_refresh` could be
violated by an async race condition:
1. `request_prediction_internal` spawns an async task
2. The task awaits a prediction request
3. If the prediction returns `None`, it calls `queue_prediction_refresh`
4. Between the time the prediction was initiated (when the provider was
an EP-store provider) and when the async callback runs, the user can
change their edit prediction provider setting to a non-EP-store provider
5. `queue_prediction_refresh` re-reads the settings and hits the
`unreachable!()
Release Notes:
- N/A
Closes#15196, #46918
- fix: notebook_ui, use buffer so that notebooks open in remote/WSL
settings.
- fix: add musl in nix for cross-compilation, without this remote server
doesn't build inside NixOS
Release Notes:
- Implement WSL and SSH remote kernels (crates/repl/src/kernels/*) and
wire up spawn/kill kernel proto messages and client requests.
Closes#15947
This adds `repl:ClearCurrentOutput` and `repl:ClearOutputs` commands. No
keybindings are set for this. Just an action people can bind.
Release Notes:
- Added ability to clear outputs by action
Release Notes:
- N/A
The WASI-SDK is several hundred megabytes in size; using streaming
downloads is network-friendly and can reduce memory usage.
Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
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 ...
This PR makes it so the user gets signed out upon receiving an
Unauthorized response when acquiring an LLM token.
This is a re-landing of #49661.
Closes CLO-324.
Release Notes:
- N/A
Fix regressions from https://github.com/zed-industries/zed/pull/49277:
- The fusion manifest was not being embedded for Zed.exe, making it
non-functional.
- The relative path used to load shaders in debug mode was incorrect.
Release Notes:
- N/A
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
The failure in #49661 was caused by a broken pipe, which then led to
tests not being ran.
Co-authored-by: Marshall Bowers <marshall@zed.dev>
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: Marshall Bowers <marshall@zed.dev>
When a subagent title is long, the header buttons (expand/collapse,
maximize, stop) were pushed out of view because the title area grew
unconstrained.
## Fix
- Add `min_w_0()` and `overflow_hidden()` to the title container so it
can shrink below its content width
- Add `truncate()` to the title label so it shows an ellipsis when
clipped
- Add `flex_shrink_0()` to the buttons container so it never gets
squeezed out
- Add a tooltip on the title area showing the full text on hover
Release Notes:
- N/A
After #49277 was merged, all visual tests failed to run with the error
"FAILED - render_to_image not implemented for this platform".
Release Notes:
- N/A
This tackles another issue where we would incorrectly show two absolute
line numbers with relative line numbering enabled when it really should
only have been the current active line number.
Sadly, no tests rn for this as we would need a better test infra for
that to properly catch/test this bug. But with the refactored logic, I
think this is easier to understand at glance, so at least theres that
Release Notes:
- Fixed an issue with relative line numbers where some rows would be
missing their relative line number with deleted hunks showing.
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