Commit Graph
35273 Commits
Author SHA1 Message Date
morgankrey c41aeb17f7 Add documentation suggestion automation (#49194)
Adds scripts and a GitHub Action workflow for automatically suggesting
documentation updates when PRs modify user-facing code.

## Scripts

- **`script/docs-suggest`**: Analyze PRs/commits for documentation needs
using AI
- **`script/docs-suggest-publish`**: Create a PR from batched
suggestions
- **`script/docs-strip-preview-callouts`**: Remove Preview callouts when
shipping to stable
- **`script/test-docs-suggest-batch`**: Testing utility for batch
analysis

## Workflow

The GitHub Action (`.github/workflows/docs_suggestions.yml`) handles two
scenarios:

1. **PRs merged to main**: Suggestions are batched to
`docs/suggestions-pending` branch for the next Preview release
2. **Cherry-picks to release branches**: Suggestions are posted as PR
comments for immediate review

## Callout Types

The system distinguishes between:

- **Additive features** (new commands, settings, UI):
  ```markdown
> **Preview:** This feature is available in Zed Preview. It will be
included in the next Stable release.
  ```

- **Behavior modifications** (changed defaults, altered existing
behavior):
  ```markdown
> **Changed in Preview (v0.XXX).** See [release notes](/releases#0.XXX).
  ```

Both callout types are stripped by `docs-strip-preview-callouts` when
features ship to stable.

## Example Output

See PR #49190 for example documentation suggestions generated by running
this on PRs from the v0.224 preview window.

## Usage

```bash
# Analyze a PR (auto-detects batch vs immediate mode)
script/docs-suggest --pr 49100

# Dry run to see assembled context
script/docs-suggest --pr 49100 --dry-run

# Create PR from batched suggestions
script/docs-suggest-publish

# Strip callouts for stable release
script/docs-strip-preview-callouts
```

Release Notes:

- N/A
2026-02-18 06:39:09 -06:00
Ben BrandtandBennet Bo Fenner 5fe8002213 acp: Update terminal tool call updates if we recieve a new one (#49456)
This showed up mostly in agents that stream terminal output to Zed that
the title wasn't updated in time to see the command when needing to
provide permissions.

Release Notes:

- acp: Fix for ACP terminal titles not always being updated to their
latest value.

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-02-18 11:08:09 +00:00
Lukas Wirth 2fb5628281 Reduce amount of monomorphizations from FnMut closures (#49453)
Replaces a bunch of `impl FnMut` parameters with `&mut dyn FnMut` for
functions where this is the sole generic parameter.
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-18 12:00:02 +01:00
Oleksiy Syvokon a3d5f56be8 ep: Encode cursor position in the predicted patch (#49450)
Release Notes:

- N/A
2026-02-18 09:55:26 +00:00
Ben BrandtandBennet Bo Fenner 9bc1a0e1e8 acp: Enable history for external agents for all users (#49449)
Removes the feature flag around listing and loading existing sessions
for external agents.

Release Notes

- acp: Expose session history for all external agents that support it.

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-02-18 09:54:21 +00:00
Lukas Wirth e7e632095a sum_tree: Implement Iterator::last and lower bound of Iterator::size_hint (#49448)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-18 09:52:52 +00:00
Lukas Wirth 65457acf6c multi_buffer: Remove unnecessary reference in as_singleton return type (#49447)
Allows cleaning up `open_tool_call_location` slightly

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-18 09:32:36 +00:00
Lukas Wirth 75a0e170a1 editor: Improve apply_fetched_hints for many excerpt multibuffers (#49444)
Reuses the new multi buffer api from
https://github.com/zed-industries/zed/pull/49349 for inlay hints

Release Notes:

- Reduced occasional stuttering coming from inlay hints in large
multibuffers
2026-02-18 10:19:08 +01:00
Marco Mihai Condrache 8044f484ca editor: Optimize TabMap chunks generation (#48378)
Currently, the next chunk is generated by traversing all characters of
the current folded chunk until a tab is found. Since we already have
bitmasks for characters and tabs, we can also propagate the newlines
bitmap from the rope and use it to make this computation O(1) in all
cases.

I haven’t run benchmarks yet.

Release Notes:

- N/A
2026-02-18 08:53:26 +01:00
morgankrey 9168df6260 docs: Apply documentation standards across all docs (#49177)
## Summary

Comprehensive remediation of 146 documentation files to align with Zed's
documentation conventions and brand voice guidelines.

## Changes

### YAML Frontmatter
- Added `title` and `description` frontmatter to all docs missing it

### Settings UI Pattern
- Updated 48+ files to show Settings Editor before JSON examples
- Pattern: `Configure X in Settings ({#kb zed::OpenSettings}), or add to
your settings file:`
- Added `([how to edit](./configuring-zed.md#settings-files))` links for
JSON-only settings

### Brand Voice Fixes
- Removed exclamation points (command-palette, key-bindings, repl,
privacy-and-security, etc.)
- Simplified em dash chains to parentheticals (environment,
troubleshooting, agent-panel, etc.)
- Fixed marketing language (yarn.md intro, development/linux.md)

### Terminology Alignment
- `settings UI` -> `Settings Editor`
- `sidebar` -> specific panel names (Project Panel, Collab Panel)
- `directory` -> `folder` in non-technical contexts
- `workspace` -> `project` in non-LSP contexts
- `Command Palette` -> `command palette` (lowercase)

### Callout Standardization
- Converted various callout formats to standard `> **Note:**` pattern

## Related

Depends on conventions established in #49176.

Release Notes:

- N/A
2026-02-17 20:58:17 -06:00
Max Brunsfeld 301a892885 Put back logic for passing data collection choice to cloud (#49426)
Release Notes:

- N/A
2026-02-17 17:43:40 -08:00
Eric Holk 3554944a72 Make terminal permission pattern suggestions subcommand-specific (#49148)
Previously, clicking "Always allow for `cargo` commands" after running
`cargo build --release` would also silently permit `cargo run`
(arbitrary code execution), `cargo publish`, and any other cargo
subcommand. This was overly broad and did not match user intent.

Now the extracted pattern includes the subcommand when present, so the
button reads "Always allow for `cargo build` commands" and the pattern
`^cargo\s+build\b` only matches `cargo build` invocations — not `cargo
test`, `cargo run`, etc.

### How it works

- The second token is included in the pattern when it looks like a
subcommand (alphanumeric, hyphens, underscores, no leading `-`).
- When the second token is a flag (e.g. `ls -la`), only the command name
is used — the user sees "Always allow for `ls` commands".
- Single-word commands and path-like commands behave the same as before.

### Examples

| Command | Pattern | Button label |
|---|---|---|
| `cargo build --release` | `^cargo\s+build\b` | Always for `cargo
build` commands |
| `cargo test -p search` | `^cargo\s+test\b` | Always for `cargo test`
commands |
| `npm install` | `^npm\s+install\b` | Always for `npm install` commands
|
| `ls -la` | `^ls\b` | Always for `ls` commands |
| `ls` | `^ls\b` | Always for `ls` commands |
| `./script.sh` | *(rejected)* | *(no pattern button)* |

Release Notes:

- Agent: "Always allow" suggestions for terminal commands are now
subcommand-specific (e.g. "Always allow for `cargo build` commands"
instead of "Always allow for `cargo` commands").
2026-02-17 16:42:16 -08:00
Max Brunsfeld 4315ed2ca1 Filter collection of snowflake requests to those with latest schemas (#49424)
This allows us to just pull requests that have the latest EP request
schema with the `predicted` boolean on events in the edit history.

Release Notes:

- N/A
2026-02-17 16:37:28 -08:00
Zed Botandswannysec e45e77ca56 Update CODEOWNERS (includes suggested entries) (#47273)
This PR updates the CODEOWNERS file based on the current
team-membership-rules.yml in the codeowner-coordinator repo.

**Coverage:** 100% - all paths have an owner.

## ⚠️ Suggested Entries - Review Required

The following paths were assigned based on git blame analysis of team
members.
**Please verify these assignments are correct before merging.**

| Path | Suggested Team | Based On | Commits |
|------|---------------|----------|---------|
| `crates/git_graph` | developer-tools-team | Anthony Eid | 4 |
| `crates/open_path_prompt` | zed-dev-team | Joseph T. Lyons | 1 |
| `crates/platform_title_bar` | platform-team | Finn Evers | 1 |
| `crates/remote_connection` | ecosystem-team | Piotr Osiewicz | 1 |
| `crates/shell_command_parser` | ai-team | Richard Feldman | 1 |
| `crates/sidebar` | ui-team | Danilo Leal | 1 |

These entries are marked with `# SUGGESTED` comments in the CODEOWNERS
file.
If incorrect, update `team-membership-rules.yml` in the
codeowner-coordinator repo.

Release Notes:

- N/A

---
_This PR was auto-generated by the
[codeowner-coordinator](https://github.com/zed-industries/codeowner-coordinator)
workflow._

Co-authored-by: swannysec <11968319+swannysec@users.noreply.github.com>
2026-02-17 18:44:19 -05:00
ed5605bd2c Show agent icon instead of folder icon in sidebar thread list (#49421)
Replace the generic folder icon next to thread entries in the workspace
sidebar with the actual agent icon (Claude, Zed Agent, Gemini, etc.) for
the active thread.

Release Notes:
- N/A

Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
2026-02-17 15:36:22 -08:00
Cameron McloughlinandZed Zippy b88ecd61b2 workspace: Group recent projects by date (#49414)
Release Notes:

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

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-17 23:30:28 +00:00
8088b42349 workspace: Add Toggle actions to all the side panels (#49395)
Release Notes:

- Add `toggle` actions to all panels to toggle visibility

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-17 23:06:27 +00:00
Danilo Leal c72a88a7eb ui: Remove unused components (#49410)
Some house-keeping on the UI crate; all of these were pretty much
unused, so we can take them out for the time being.

Release Notes:

- N/A
2026-02-17 19:28:30 -03:00
Finn Evers b6ac9d1c03 extension_ci: Make parsing of current version more robust (#49411)
This removes trailing whitespace when getting the current version of the
extension, as we ran into some cases where a `\r` was added to that for
some reason.

Release Notes:

- N/A
2026-02-17 22:21:16 +00:00
Max Brunsfeld 7fd3dd4bf7 Remove project cache in edit prediction CLI (#49409)
The cache isn't needed, now that we have a better way of reducing
resource consumption (disabling worktree scanning), and it adds race
conditions.

Release Notes:

- N/A
2026-02-17 14:20:46 -08:00
76efc691e6 git: More performance improvements when toggling between diff views (#49400)
- Defer syncing block maps from `set_companion`, eliminating some
redundant recomputations
- Emit one large multibuffer edit from `set_show_deleted_hunks` instead
of many small edits, to avoid bad case for block map

This cuts hangs roughly in half when toggling between views in a large
diff (1000 commits from the chromium repository).

<!-- 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:

- Improved performance with large diffs when toggling between diff
views.

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Co-authored-by: Lukas Wirth <lukas@zed.dev>
2026-02-17 22:09:27 +00:00
Cole Miller 2605757347 Preallocate vector for MultiBuffer::excerpt_ids (#49381)
This saves some time spent reallocating inside `Editor::on_buffer_event`
for large multibuffers.

Release Notes:

- N/A
2026-02-17 17:04:55 -05:00
Finn Evers 46dd9da60b extension_ci: Improve job orchestration (#49407)
This fixes an issue where some changes that should trigger more checks
would go unnoticed.

Release Notes:

- N/A
2026-02-17 21:54:17 +00:00
Danilo Leal d21248c9de ui: Put back left-border in tab bar end actions (#49402)
Fixing a minor UI issue that regressed in
https://github.com/zed-industries/zed/pull/49038.

Release Notes:

- N/A
2026-02-17 21:36:47 +00:00
Finn Evers a93f4bbcdc extension_rollout: Prevent dispatch from non-main branches (#49396)
Release Notes:

- N/A
2026-02-17 19:58:42 +00:00
Mayank Verma 0a6b74df4d git_ui: Fix tree view next selection out of bounds (#49283)
Closes #49259

Release Notes:

- This change ensures that when the last visible collapsed directory is
selected, the selection remains on that directory.
2026-02-17 20:08:28 +01:00
Finn Evers 6c7172f975 extension_ci: Increase fetch depth for tests job (#49389)
We need more fetch depth here for the check, hence bumping this.

Also does a drive-by cleanup of the checkout step within xtask to make
this (hopefully) more intuitive to use.

Release Notes:

- N/A
2026-02-17 18:49:18 +00:00
Richard Feldman 3baac2b00b Add support for Claude Sonnet 4.6 (#49386)
<img width="435" height="211" alt="Screenshot 2026-02-17 at 1 32 48 PM"
src="https://github.com/user-attachments/assets/136c188d-5001-4526-961e-9f7faccc5f7a"
/>


Add support for the new Claude Sonnet 4.6 model across the anthropic,
bedrock, and language_models crates. Includes base, thinking, and 1M
context variants.

Closes AI-39

Release Notes:

- Added BYOK support for Claude Sonnet 4.6
2026-02-17 18:45:12 +00:00
Marshall BowersandTom f09b9c0cdd edit_prediction: Route edit prediction rating through Cloud (#49385)
This PR updates the `Edit Prediction Rated` event to be routed through
Cloud instead of the normal telemetry pipeline.

Closes CLO-224.

Release Notes:

- N/A

---------

Co-authored-by: Tom <tom@zed.dev>
2026-02-17 18:12:14 +00:00
morgankrey e0b6898ae0 ci: Harden background-agent MVP git authentication loop (#49373)
## Summary
- refresh git auth headers before each per-crash iteration in
`background_agent_mvp`
- add guarded `git fetch`/`git checkout` handling so one candidate auth
failure doesn’t fail the entire run

## Context
- fixes the auth failure seen in workflow run 22106378719 (`fatal: could
not read Username for 'https://github.com'`)
- related Linear issue: BIZOPS-853

## Testing
- ruby -e "require 'yaml';
YAML.load_file('.github/workflows/background_agent_mvp.yml')"

Release Notes:

- N/A
2026-02-17 11:59:47 -06:00
Oleksiy Syvokon e66987ad24 ep: Fix Unicode chars boundary (#49384)
Release Notes:

- N/A
2026-02-17 17:48:17 +00:00
Anthony Eid a65307d817 sidebar: Serialize after adding/removing workspaces (#49372)
Before this PR we wouldn't always serialize workspaces when a
mutliworkspace adds/removes a workspace. This PR fixes this by adding a
test and calling serialization in remove

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
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-02-17 12:38:03 -05:00
Richard Feldman f59baa942a Add git worktree remove/rename API (#49135)
Add `remove_worktree()` and `rename_worktree()` to the `GitRepository`
trait with `RealGitRepository` implementations that shell out to `git
worktree remove/move`.

Implement all 4 worktree methods (`worktrees`, `create_worktree`,
`remove_worktree`, `rename_worktree`) on `FakeGitRepository` backed by
`FakeGitRepositoryState`, with `simulated_create_worktree_error` for
test-time fault injection.

Add `set_create_worktree_error()` helper on `FakeFs`.

Add `parse_worktrees_from_str` helper and 7 new tests covering real git
operations and fake worktree lifecycle.

Closes AI-31

Release Notes:

- N/A
2026-02-17 12:09:44 -05:00
Richard Feldman 827c56f43a Fix error message wrapping in Callout component (#49370)
## Before

<img width="1596" height="230" alt="repro"
src="https://github.com/user-attachments/assets/d96d9bc4-cc46-4c11-8ac8-0051a1a51316"
/>

## After

<img width="1000" height="800" alt="error_message_wrapping"
src="https://github.com/user-attachments/assets/7553607a-2cbf-414d-9794-dbd6f3b0f9eb"
/>


Previously, error message text was overflowing and getting clipped
instead of wrapping when displaying long error messages (e.g. rate limit
errors in the agent panel).

Closes AI-38

Release Notes:

- Fixed long error messages (e.g. rate limit errors) being clipped
instead of wrapping in the agent panel.
2026-02-17 11:55:59 -05:00
Marshall Bowers 94b7a681aa agent_ui: Route agent thread feedback through Cloud (#49324)
This PR updates the `Agent Thread Rated` event to be routed through
Cloud instead of the normal telemetry pipeline.

Closes CLO-223.

Release Notes:

- N/A
2026-02-17 11:41:30 -05:00
Ben Kunkle 4b160fc862 Strip comment and list prefixes in vim: join lines (#49295)
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:

- Improved the behavior of the `vim: join lines` and `editor: join lines`. Comment and other language specific line prefixes are now stripped from the join line
2026-02-17 11:24:45 -05:00
Austin Cummings b0ffa2f642 editor: Fix newline below when selection is at the end of an multibuffer excerpt (#49132)
Switches `newline_below` from adding a newline to the start of the next
line in a multibuffer, to appending a newline at the end of the
selections current lines. This keeps the insertion within the excerpt of
the selection rather than adding a newline to the excerpt below.

Closes #47965

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 `editor::NewlineBelow` adding a newline to the next multibuffer
excerpt when selection is at the end of an excerpt
2026-02-17 14:45:36 +01:00
S.H. 7660a08031 ruby: Add Kanayago as an available language server (#49262)
Add Kanayago as an available Ruby language server in default settings.
Disabled by default (prefixed with `!`), users can opt-in via their
settings.

This corresponds to the extension-side support added in
zed-extensions/ruby#224.

Release Notes:

- ruby: Added Kanayago as an available language server.
2026-02-17 14:33:59 +01:00
Ben Brandt 5639b1f298 acp: Update npm package for claude agent (#49353)
Release Notes:

- N/A
2026-02-17 12:29:57 +00:00
Lukas Wirth 9887b7a6b6 editor: Improve buffer_into_editor_highlights performance (#49349)
This brings the runtime down to logarithmic scaling of excerpts / linear
scaling of tokens.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-17 13:02:45 +01:00
4eb6eebf3a vim: Apply strict paragraph motion only in vim mode (#48024)
Reverts the editor's paragraph navigation behavior that was changed in
#47734. Whitespace-only lines are now treated as paragraph boundaries
again for non-vim mode users.

Vim mode retains its own implementation where only truly empty lines
are paragraph boundaries.

Release Notes:

- Fixed editor paragraph navigation to treat whitespace-only lines as
paragraph boundaries again

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-02-17 11:40:50 +00:00
Oleksiy Syvokon 060715704d ep: Fix Unicode chars boundary (#49351)
Release Notes:

- N/A
2026-02-17 11:39:51 +00:00
Oleksiy Syvokon c37f0d3af0 ep: Make extract_last_codeblock more robust (#49347)
Release Notes:

- N/A
2026-02-17 12:48:36 +02:00
Oleksiy Syvokon 6b86c1984f ep: Repair predictions with too many edits (#49342)
Also fixes batches upload

Release Notes:

- N/A
2026-02-17 12:48:23 +02:00
Ben Brandt 7cea14362c acp: Claude Code -> Claude Agent (#49345)
Update based on
https://platform.claude.com/docs/en/agent-sdk/overview#branding-guidelines

ACP package will be updated shortly.

Release Notes:

- acp: Claude Code is now referred to as Claude Agent, per Anthropic
branding guidelines.
2026-02-17 10:41:10 +00:00
Bennet Bo Fenner 6adf998e87 acp_thread: Log token usage when receiving StopReason::MaxTokens (#49343)
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:

- N/A
2026-02-17 11:25:26 +01:00
Shardul VaidyaandOna 559dac1180 bedrock: Model streamlining and cleanup (#49287)
Release Notes:

- Improved Bedrock error messages: region-locked models ask the user to
try a different region, rate limits and access errors are reported
cleanly instead of as raw API responses
- Streamlined Bedrock model list to 39 curated models
- Fixed API errors when using non-tool models in agent threads

---------

Co-authored-by: Ona <no-reply@ona.com>
2026-02-17 09:22:25 +00:00
Oleksiy Syvokon 19d2ac7603 ep: Rework ep repair to use original teacher prompt (#49335)
It now creates multi-turn conversation, where first two messages are the
original teacher prompt and output.

This way, we'll have changes in teacher prompt automatically applied to
repair without having to explicitly sync them.


Release Notes:

- N/A
2026-02-17 08:41:15 +00:00
Oleksiy Syvokon 807f0c7955 ep: Rely on editable_region tags when parsing teacher output (#49334)
Release Notes:

- N/A
2026-02-17 08:37:05 +00:00
Oleksiy Syvokon e988694755 ep: Fix edit predictions not showing in new buffer (#49102)
Closes #49081

Release Notes:

- N/A
2026-02-17 09:40:36 +02:00