Commit log

c2e9185 Bump to 0.225.6 for @cole-miller

Zed Zippy created

15107f5 git: Fix panic when unstaged diff is recalculated before its primary diff (#49753) (cherry-pick to preview) (#49767)

Click to expand commit body
Cherry-pick of #49753 to preview

----
For inverted diff APIs like `hunks_intersecting_base_text_range`, we
need a snapshot of the main buffer to use as context to compare hunk
anchors, convert anchors to points, etc. Previously, we were always
using a snapshot of the main buffer at the time when the diff was
calculated. This worked well for the hunks of the primary `BufferDiff`,
but it's not valid when the diff also has a secondary set of hunks,
because those hunks are recalculated on their own schedule--so it's
possible for the hunks of the secondary diff to contain anchors that are
newer than the original buffer snapshot that was taken at the time the
primary diff hunks were last calculated. This caused a panic when using
these anchors with the original buffer snapshot.

This PR fixes the issue by using the same approach for inverted diffs as
for non-inverted diffs at the multibuffer level: we take a snapshot of
the main buffer at the time when we snapshot the diff state (including
the diff itself), guaranteeing that that snapshot will be new enough to
resolve all the anchors included in both the primary diff and the
secondary diff.

Closes ZED-54J

Release Notes:

- Fixed a panic that could occur when using the branch diff in split
view mode.

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>

---------

Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Antonio Scandurra <me@as-cii.com>

zed-zippy[bot] , Cole Miller , and Antonio Scandurra created

9d0b209 Bump to 0.225.5 for @cole-miller

Zed Zippy created

a81f96d git: Prevent panic when updating excerpts in split diff (#49725) (cherry-pick to preview) (#49729)

Click to expand commit body
Cherry-pick of #49725 to preview

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

Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Co-authored-by: Eric <eric@zed.dev>

zed-zippy[bot] , Cole Miller , Jakub Konka , and Eric created

ab62ee8 zed 0.225.4

Bennet Bo Fenner created

e2097a4 Fix stale folded buffers in split diff view (#49699)

Click to expand commit body
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.

Antonio Scandurra created

6b1d6f3 agent_ui: Fix panic in load/copy thread to/from clipboard (#49694) (cherry-pick to preview) (#49695)

Click to expand commit body
Cherry-pick of #49694 to preview

----
Fixes ZED-4VW

Release Notes:

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

Co-authored-by: Lukas Wirth <lukas@zed.dev>

zed-zippy[bot] and Lukas Wirth created

cf1c503 Bump to 0.225.3 for @cole-miller

Zed Zippy created

f7e4668 git: Mitigate panic in split diff spacer calculation (#49674) (cherry-pick to preview) (#49677)

Click to expand commit body
Cherry-pick of #49674 to preview

----
Release Notes:

- N/A

Co-authored-by: Cole Miller <cole@zed.dev>

zed-zippy[bot] and Cole Miller created

e4c951c editor: Fix relative line numbering with deleted blocks present (#49656) (cherry-pick to preview) (#49657)

Click to expand commit body
Cherry-pick of #49656 to preview

----
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.

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

zed-zippy[bot] and Finn Evers created

20eaa5a Add telemetry for stack trace view (#49642) (cherry-pick to preview) (#49644)

Click to expand commit body
Cherry-pick of #49642 to preview

----
Release Notes:

- N/A

Co-authored-by: Cole Miller <cole@zed.dev>

zed-zippy[bot] and Cole Miller created

13dd220 Bump to 0.225.2 for @rtfeldman

Zed Zippy created

e25c7e5 Add gemini-3.1-pro-preview model (#49622) (cherry-pick to preview) (#49635)

Click to expand commit body
Cherry-pick of #49622 to preview

----
Closes AI-48

Release Notes:

- Added support for Gemini 3.1 Pro

Co-authored-by: Richard Feldman <richard@zed.dev>

zed-zippy[bot] and Richard Feldman created

3d830af editor: Fix bracket colorization discoloring pure deletion diff hunks (#49618) (cherry-pick to preview) (#49626)

Click to expand commit body
Cherry-pick of #49618 to preview

----
Release Notes:

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

Co-authored by: Cole Miller <cole@zed.dev>

Co-authored-by: Lukas Wirth <lukas@zed.dev>

zed-zippy[bot] and Lukas Wirth created

8f2be20 Fix the panic when trying to interact with editor-like not-editors (#49608) (cherry-pick to preview) (#49612)

Click to expand commit body
Cherry-pick of #49608 to preview

----
For example, LSP log view is not a real editor but can pretend to be
one.

Release Notes:

- Fixed dev highlights view panicking when interacting with editor-like
not-editors

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

zed-zippy[bot] and Kirill Bulatov created

3017afd multi_buffer: Bring `update_path_excerpts` ordering workaround back (#49563) (cherry-pick to preview) (#49567)

Click to expand commit body
Cherry-pick of #49563 to preview

----
cc https://github.com/zed-industries/zed/pull/49290

Release Notes:

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

Co-authored-by: Lukas Wirth <lukas@zed.dev>

zed-zippy[bot] and Lukas Wirth created

8ffa189 Bump to 0.225.1 for @cole-miller

Zed Zippy created

2c2cca0 git: Mitigate panic in split diff (#49546) (cherry-pick to preview) (#49548)

Click to expand commit body
Cherry-pick of #49546 to preview

----
Release Notes:

- N/A

Co-authored-by: Cole Miller <cole@zed.dev>

zed-zippy[bot] and Cole Miller created

fe23d45 Revert "Added support for dismissing the toolchain path selector via … (#49504) (cherry-pick to preview) (#49528)

Click to expand commit body
Cherry-pick of #49504 to preview

----
…`esc` (#48201)"

This reverts commit 174fc5115243fda191da6a526fa1f12b627c1fcd.

Select toolchain path dialog immediately dismisses upon selecting a
path, preventing the addition of new toolchains

- OpenPathDelegate emits DismissEvents in the `confirm` function too
- when the selection is confirmed, DismissEvent is emitted
- ToolchainSelector calls cancel because it receives the DismissEvent,
and it goes to the Search State
- This prevents the selected toolchain from being resolved and the
ScopePicker being presented

cc: @JosephTLyons 

Release Notes:

- Fixed a regression where the toolchain path selector would immediately
dismiss upon selecting a path, preventing the addition of new
toolchains.

Co-authored-by: Kurian Jojo <67583328+polyesterswing@users.noreply.github.com>

zed-zippy[bot] and Kurian Jojo created

6f71984 Revert "editor: Add `FlexClipped` block style and use it for spacer blocks" (#49508) (cherry-pick to v0.225.x) (#49511)

Click to expand commit body
Reverts zed-industries/zed#49478

Release Notes:

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

Cole Miller created

a10e43e v0.225.x preview

Joseph T. Lyons created

71ffaeb Update AI docs for retired hosted models (#49486)

Click to expand commit body
## Summary
- Update hosted model and context-window tables in docs/src/ai/models.md
to remove retired models and list current replacements.
- Add a dated Recent Model Retirements section mapping each retired
model to its replacement.
- Update AI docs examples and references in agent-settings.md,
inline-assistant.md, agent-panel.md, and llm-providers.md to use current
model names.
- Remove stale OpenAI model references in llm-providers.md that no
longer align with currently offered hosted models.

## Validation
- ./script/prettier
- ./script/check-todos

## Suggested .rules additions
- N/A

Release Notes:

- N/A

morgankrey created

66f7aea agent: Disables multi workspace refresh queue for non-staff (#49496)

Click to expand commit body
Refreshing the queue was causing hangs on debug builds, so this is a
short term fix until we rework how the sidebar gets its data.

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

Anthony Eid created

e72e9d6 editor: Some more semantic highlighting perf work (#49491)

Click to expand commit body
- Reduce some re-allocations in `text_anchors_to_visible_anchors` and
`refresh_semantic_tokens`
- Process `raw_to_buffer_semantic_tokens` work on the background thread

Release Notes:

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

Lukas Wirth created

a1af11c editor: Add `FlexClipped` block style and use it for spacer blocks (#49478)

Click to expand commit body
`FlexClipped` acts like `Flex`, but only allows the block to render in
the main hitbox, not the gutter. This is a visual improvement for the
spacers compared to `Sticky`.


https://github.com/user-attachments/assets/2b0aed0c-91ff-4e74-85b1-aea81f4e8a35


Release Notes:

- git: Improved the visual display for spacers in the split diff view.

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

Cole Miller and Smit Barmase created

d4af860 ep: Update teacher prompt (#49489)

Click to expand commit body
* More conservative predictions for prose
* Explain "user accepted prediction" in the teacher prompt
* Sonnet 4.6 support
* Don't strip comments in teacher prompt's edit history

Release Notes:

- N/A

Oleksiy Syvokon created

4eb1ffa Remove older onboarding modals (#49484)

Click to expand commit body
This PR removes onboarding modals for features that were announced, at
this point, a long time ago: Git v1, Debugger, and Agent Panel v1. This
cleans up the actions list a bit when you search for "onboarding". I
left the ACP and Claude Code ones, though; they were the two more recent
ones, but we should be able to remove them soon enough, too.

Release Notes:

- N/A

Danilo Leal created

b34e1bd Improve agent pull request hygiene (#49469)

Click to expand commit body
## Summary
- Add pull request title and release notes hygiene guidance to `.rules`
- Update docs automation prompt/workflows to use compliant PR titles
- Ensure automated PR bodies include `Release Notes` when missing

Release Notes:

- N/A

morgankrey created

6f578d8 feature_flags: Add note about `acp-beta` feature flag (#49479)

Click to expand commit body
This PR adds a note to the `acp-beta` feature flag about how it is used,
and that it should not be deleted if unreferenced.

Release Notes:

- N/A

Marshall Bowers created

41019b0 gpui: Use `ArenaBox` for `Effect::Emit` payload (#49467)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

6ccf40c acp: Remove unnecessary logs for config options (#49476)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

1957a43 editor: More perf work (#49465)

Click to expand commit body
Seems that `SmallVec::clone` is pretty expensive in a generic case, and
specialising it improves the performance quite a bit!

Release Notes:

- Improved performance of different building blocks within the
MultiBuffer.

---------

Co-authored-by: Lukas Wirth <lukas@zed.dev>

Jakub Konka and Lukas Wirth created

dc41f71 Add documentation suggestion automation (#49194)

Click to expand commit body
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

morgankrey created

d5d49c1 acp: Update terminal tool call updates if we recieve a new one (#49456)

Click to expand commit body
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>

Ben Brandt and Bennet Bo Fenner created

7d80412 Reduce amount of monomorphizations from FnMut closures (#49453)

Click to expand commit body
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 ...

Lukas Wirth created

5305c22 ep: Encode cursor position in the predicted patch (#49450)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

b4baea8 acp: Enable history for external agents for all users (#49449)

Click to expand commit body
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>

Ben Brandt and Bennet Bo Fenner created

0b3a23c sum_tree: Implement `Iterator::last` and lower bound of `Iterator::size_hint` (#49448)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

8244a5c multi_buffer: Remove unnecessary reference in `as_singleton` return type (#49447)

Click to expand commit body
Allows cleaning up `open_tool_call_location` slightly

Release Notes:

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

Lukas Wirth created

073de5c editor: Improve `apply_fetched_hints` for many excerpt multibuffers (#49444)

Click to expand commit body
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

Lukas Wirth created

418b51d editor: Optimize TabMap chunks generation (#48378)

Click to expand commit body
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

Marco Mihai Condrache created

6daa541 docs: Apply documentation standards across all docs (#49177)

Click to expand commit body
## 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

morgankrey created

9743fe7 Put back logic for passing data collection choice to cloud (#49426)

Click to expand commit body
Release Notes:

- N/A

Max Brunsfeld created

d60b291 Make terminal permission pattern suggestions subcommand-specific (#49148)

Click to expand commit body
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").

Eric Holk created

717ea9e Filter collection of snowflake requests to those with latest schemas (#49424)

Click to expand commit body
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

Max Brunsfeld created

2868c50 Update CODEOWNERS (includes suggested entries) (#47273)

Click to expand commit body
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>

Zed Bot and swannysec created

74179fa Show agent icon instead of folder icon in sidebar thread list (#49421)

Click to expand commit body
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>

Eric Holk , cameron , and Anthony Eid created

7eca6a9 workspace: Group recent projects by date (#49414)

Click to expand commit body
Release Notes:

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

---------

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

Cameron Mcloughlin and Zed Zippy created

ee9191e workspace: Add `Toggle` actions to all the side panels (#49395)

Click to expand commit body
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>

Cameron Mcloughlin , Anthony Eid , and Zed Zippy created

d2aa2e0 ui: Remove unused components (#49410)

Click to expand commit body
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

Danilo Leal created