Commit log

aefa9e7 Bump to 0.183.8 for @probably-neb

Zed Bot created

2009abb editor: Expand selection to word under cursor before expanding to next enclosing syntax node (cherry-pick #28864) (#29184)

Click to expand commit body
Cherry-picked editor: Expand selection to word under cursor before
expanding to next enclosing syntax node (#28864)

Closes #27995

For strings in any language and Markdown, `select_larger_syntax_node`
will first select the word and then expand from there if:
- The cursor is on the word.
- The selection is inside the word.

It will not select the word and will directly proceed to expand if:
- The word is already selected.
- Multiple partial words are selected.

Todo:
- [x] Tests

Release Notes:

- Fixed `select_larger_syntax_node` to first expand to the word within a
string, and then to the larger syntax node.

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

gcp-cherry-pick-bot[bot] and Smit Barmase created

f0f56d7 Use buffer size for markdown preview (cherry-pick #29172) (#29183)

Click to expand commit body
Cherry-picked Use buffer size for markdown preview (#29172)

Note:

This is implemented in a very hacky and one-off manner. The primary
change is to pass a rem size through the markdown render tree, and scale
all sizing (rems & pixels) based on the passed in rem size manually.
This required copying in the `CheckBox` component from `ui::CheckBox` to
make it use the manual rem scaling without modifying the `CheckBox`
implementation directly as it is used elsewhere.

A better solution is required, likely involving `window.with_rem_size`
and/or _actual_ `em` units that allow text-size-relative scaling.

Release Notes:

- Made it so Markdown preview uses the _buffer_ font size instead of the
_ui_ font size.

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Nate Butler <nate@zed.dev>

Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Nate Butler <nate@zed.dev>

gcp-cherry-pick-bot[bot] , Mikayla Maki , Ben Kunkle , and Nate Butler created

6c53ee2 Add ability to attach rules as context (#29109)

Click to expand commit body
Release Notes:

- agent: Added support for adding rules as context.

Michael Sloan created

18ac673 Fix ctrl-c in vim normal mode (cherry-pick #29167) (#29169)

Click to expand commit body
Cherry-picked Fix ctrl-c in vim normal mode (#29167)

This was broken when we added helix keybindings because we populate the
menu's shortcut based on the "last" seen binding for an action ignoring
context.

Release Notes:

- Fix `ctrl-c` in vim normal mode

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

gcp-cherry-pick-bot[bot] and Conrad Irwin created

4464589 zed 0.183.7

Joseph T. Lyons created

754c5f2 agent: Migrate tool names in settings (#29168)

Click to expand commit body
Release Notes:

- agent: Add migration to rename `find_replace_file` tool to
`edit_file`, and `regex_search` to `grep`.

Agus Zubiaga created

0860283 agent: Add additional fields to `Agent Tool Finished` telemetry event (#29163)

Click to expand commit body
This PR adds additional fields to the `Agent Tool Finished` telemetry
event:

- `model`
- `model_provider`
- `thread_id`
- `prompt_id`

Release Notes:

- N/A

Marshall Bowers created

b1ac0d9 agent: Update Switch color in the settings view (#29154)

Click to expand commit body
Just using the color method for the Switch component added in
https://github.com/zed-industries/zed/pull/29074.

Release Notes:

- N/A

Danilo Leal created

98f2208 edit tool: Handle over-indentation in `replace_with_flexible_indent` (#29153)

Click to expand commit body
Release Notes:

- agent: Correct over-indentation in search/replace strings from model

Agus Zubiaga created

2084e0b ui: Add `.color` method to the Switch (#29074)

Click to expand commit body
This allows to pass, for example, `.color(SwitchColor::Accent)` to the
Switch component and have it render differently.

<img
src="https://github.com/user-attachments/assets/c60bac8a-c5ae-4693-912a-c754e5081f45"
width="550"/>

Release Notes:

- N/A

Danilo Leal created

7c0db88 inline assistant: Fix model picker (#29136)

Click to expand commit body
Release Notes:

- inline assistant: Fixed a bug where the default model would be used
even when a specific inline assistant model was configured

Agus Zubiaga created

9330320 Rename regex search tool to grep and accept an include glob pattern (#29100)

Click to expand commit body
This PR renames the `regex_search` tool to `grep` because I think it
conveys more meaning to the model, the idea of searching the filesystem
with a regular expression. It's also one word and the model seems to be
using it effectively after some additional prompt tuning.

It also takes an include pattern to filter on the specific files we try
to search. I'd like to encourage the model to scope its searches more
aggressively, as in my testing, I'm only seeing it filter on file
extension.

Release Notes:

- N/A

Nathan Sobo created

5ac0baa editor: Improve selection highlights speed (#29097)

Click to expand commit body
Before, we used to debounce selection highlight because it needed to
search the whole file to show gutter line highlights, etc. This
experience felt extremely laggy.

This PR introduces a new approach where:
1. We query only visible rows without debounce. The search function
itself is async and runs in a background thread, so it's not blocking
anything. With no debounce and such a small search space, highlights
feel realtime.
2. In parallel, we also query the whole file (still debounced, like
before). Once this query resolves, it updates highlights across the
file, making scrollbar markers visible.

This hybrid way gives the feeling of realtime, while keeping the same
functionality.


https://github.com/user-attachments/assets/432b65f1-89d2-4658-ad5e-048921b06a23

P.S. I have removed the user setting for custom debounce delay, because
(one) now it doesn't really make sense to configure that, and (two) the
whole logic is based on the assumption that the fast query will resolve
before the debounced query. A static debounce time makes sure of that.
Configuring it might lead to cases where the fast query resolves after
the debounced query, and we end up only seeing visible viewport
highlights.

Release Notes:

- Improved selection highlight speed.

Smit Barmase created

05b8a6d agent: Reorder some linux keybindings to match mac keybindings (#29107)

Click to expand commit body
Release Notes:

- Made keybindings for agent panel closer to the precedence order used
on Mac. This fixes use of `enter` to add context from the menu triggered
by `@` referencing.

Michael Sloan created

e0e46da Default to fast model for thread summaries and titles + don't include system prompt / context / thinking segments (#29102)

Click to expand commit body
* Adds a fast / cheaper model to providers and defaults thread
summarization to this model. Initial motivation for this was that
https://github.com/zed-industries/zed/pull/29099 would cause these
requests to fail when used with a thinking model. It doesn't seem
correct to use a thinking model for summarization.

* Skips system prompt, context, and thinking segments.

* If tool use is happening, allows 2 tool uses + one more agent response
before summarizing.

Downside of this is that there was potential for some prefix cache reuse
before, especially for title summarization (thread summarization omitted
tool results and so would not share a prefix for those). This seems fine
as these requests should typically be fairly small. Even for full thread
summarization, skipping all tool use / context should greatly reduce the
token use.

Release Notes:

- N/A

Michael Sloan created

220b2cd Don't send dummy user text with tool results (#29099)

Click to expand commit body
Previously, we were including the dummy text "Here are the tool
results." whenever reporting tool call results. I'm worried this is
adding noise and confusing the model, because the user didn't actually
say anything. This inserts an empty message to be populated later. My
preference would be something less stateful, where tool results (or
batches of them requested simultaneously) would be sent to the model as
soon as they were ready, without bothering to do this message
association dance. But for now, this seems to work.

Release Notes:

- N/A

Nathan Sobo created

9375cb2 agent: Preserve thinking blocks between requests (#29055)

Click to expand commit body
Looks like the required backend component of this was deployed.

https://github.com/zed-industries/monorepo/actions/runs/14541199197

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Co-authored-by: Nathan Sobo <nathan@zed.dev>

Bennet Bo Fenner , Antonio Scandurra , Agus Zubiaga , Richard Feldman , and Nathan Sobo created

9e8af50 agent: Add item to add custom MCP server in the panel's menu (#29091)

Click to expand commit body
This is based on user feedback that the Agent Panel menu was only
linking to extensions as a way to add MCP servers while we also support
adding "custom" servers, too, which don't go through the extensions
flow.

Release Notes:

- N/A

Danilo Leal created

b7eb695 Simplify language model registry + only emit change events on change (#29086)

Click to expand commit body
* Now only does default fallback logic in the registry

* Only emits change events when there is actually a change

Release Notes:

- N/A

Michael Sloan created

bf64cd4 Systematically optimize agentic editing performance (#28961)

Click to expand commit body
Now that we've established a proper eval in tree, this PR is reboots of
our agent loop back to a set of minimal tools and simpler prompts. We
should aim to get this branch feeling subjectively competitive with
what's on main and then merge it, and build from there.

Let's invest in our eval and use it to drive better performance of the
agent loop. How you can help: Pick an example, and then make the outcome
faster or better. It's fine to even use your own subjective judgment, as
our evaluation criteria likely need tuning as well at this point. Focus
on making the agent work better in your own subjective experience first.
Let's focus on simple/practical improvements to make this thing work
better, then determine how we can craft our judgment criteria to lock
those improvements in.

Release Notes:

- N/A

---------

Co-authored-by: Max <max@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Agus <agus@zed.dev>
Co-authored-by: Richard <richard@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Nathan Sobo , Max , Antonio , Agus , Richard , Max Brunsfeld , Antonio Scandurra , and Michael Sloan created

0b9ae6e agent: Make copy button show while hovering the codeblock container (#29075)

Danilo Leal created

ba9c033 language_models: Fix passing of `thread_id` and `prompt_id` (#29071)

Click to expand commit body
This PR is a follow-up to
https://github.com/zed-industries/zed/pull/29069 that fixes an issue
where the thread ID and prompt ID were not being sent up correctly.

Release Notes:

- N/A

Marshall Bowers created

07ca5a6 agent: Attach thread ID and prompt ID to telemetry events (#29069)

Click to expand commit body
This PR attaches the thread ID and the new prompt ID to telemetry events
for completions in the Agent panel.

Release Notes:

- N/A

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

Marshall Bowers and Mikayla Maki created

0c13b42 Add hidden `prompt_to_focus` field to `OpenPromptLibrary` action (#29062)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

bb1b132 Init prompt store in agent eval (#29068)

Click to expand commit body
Needed after #28915

Release Notes:

- N/A

Michael Sloan created

eefdcb3 agent: Simplify design of the settings view (#29041)

Click to expand commit body
Containing everything in boxes wasn't super necessary here. Want to
still improve the switch color contrast here, but will probably do that
in a separate PR.

<img
src="https://github.com/user-attachments/assets/f826a7a8-beaf-45d0-9dc2-36dc210c418e"
width="700"/>

Release Notes:

- N/A

Danilo Leal created

2ac8a84 agent: Use default prompts from prompt library in system prompt (#28915)

Click to expand commit body
Related to #28490.

- Default prompts from the prompt library are now included as "user
rules" in the system prompt.
- Presence of these user rules is shown at the beginning of the thread
in the UI.
_ Now uses an `Entity<PromptStore>` instead of an `Arc<PromptStore>`.
Motivation for this is emitting a `PromptsUpdatedEvent`.
- Now disallows concurrent reloading of the system prompt. Before this
change it was possible for reloads to race.

Release Notes:

- agent: Added support for including default prompts from the Prompt
Library as "user rules" in the system prompt.

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Michael Sloan and Danilo Leal created

d35ffc7 debugger: Fix gutter tasks display for users without the debugger feature flag (#29056)

Kirill Bulatov created

093248a zed 0.183.6

Joseph T. Lyons created

21ff2bb agent: Do not insert selection as context when selection is empty (#29031)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

843a621 agent: Remove selections as context once message is sent (#29030)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

bbe956f Make Copy and Trim ignore empty lines, and fix vim line selections (cherry-pick #29019) (#29023)

Click to expand commit body
Cherry-picked Make Copy and Trim ignore empty lines, and fix vim line
selections (#29019)

Close #28519 

Release Notes:

Update `editor: copy and trim` command:

1. Ignore empty lines in the middle:

    ```
      Line 1

      Line 2
    ```

    Will copy text to clipboard:

    ```
    Line 1

    Line 2
    ```

    Before this commit trim not performed

1. Fix select use vim line selections, trim not works

Co-authored-by: redforks <redforks@gmail.com>

gcp-cherry-pick-bot[bot] and redforks created

0179e4c agent: Report usage from thread summarization requests (#29012)

Click to expand commit body
This PR makes it so the thread summarization also reports the model
request usage, to prevent the case where the count would appear to jump
by 2 the next time a message was sent after summarization.

Release Notes:

- N/A

Marshall Bowers created

df49cad agent: Show request usage in the panel (#29006)

Click to expand commit body
This PR adds a banner showing request usage in the Agent panel:

<img width="640" alt="Screenshot 2025-04-17 at 5 51 46 PM"
src="https://github.com/user-attachments/assets/e0eb036c-57c1-441c-bbab-7dab1c6e56d9"
/>

Only visible to users on the new billing.

Note to Joseph: Doesn't need to be cherry-picked to Preview.

Release Notes:

- N/A

---------

Co-authored-by: Nate <nate@zed.dev>

Marshall Bowers and Nate created

13b3beb agent: Extract usage information from response headers (#29002)

Click to expand commit body
This PR updates the Agent to extract the usage information from the
response headers, if they are present.

For now we just log the information, but we'll be using this soon to
populate some UI.

Release Notes:

- N/A

Marshall Bowers created

5f8efc9 zeta: Extract usage information from response headers (#28999)

Click to expand commit body
This PR updates the Zeta provider to extract the usage information from
the response headers, if they are present.

For now we just log the information, but we'll need to figure out where
this needs to get threaded through to in order to display it in the UI.

Release Notes:

- N/A

Marshall Bowers created

a1d6431 Use more types/constants from `zed_llm_client` (#28909)

Click to expand commit body
This PR makes it so we use more types and constants from the
`zed_llm_client` crate to avoid duplicating information.

Also updates the current usage endpoint to use limits derived from the
`Plan`.

Release Notes:

- N/A

Marshall Bowers created

220d853 rpc: Remove `llm` module in favor of `zed_llm_client` (#28900)

Click to expand commit body
This PR removes the `llm` module of the `rpc` crate in favor of using
the types from the `zed_llm_client`.

Release Notes:

- N/A

Marshall Bowers created

911f329 collab: Add `plan` column to `subscription_usages` (#28889)

Click to expand commit body
This PR adds a `plan` column to the `subscription_usages` table.

These tables don't have any records in them yet, so it's fine to make
the column required without a default.

Release Notes:

- N/A

Marshall Bowers created

1bdcf31 proto: Add `ZedProTrial` to `Plan` (#28885)

Click to expand commit body
This PR adds the `ZedProTrial` member to the `Plan` enum.

Release Notes:

- N/A

Marshall Bowers created

d4f44c1 Bump to 0.183.5 for @probably-neb

Zed Bot created

e0dc131 Fix multiline completions when surrounding text doesn't match completion text (cherry-pick #28995) (#28997)

Click to expand commit body
Cherry-picked Fix multiline completions when surroundings don't match
completion text (#28995)

Follow up to the scenarios I overlooked in
https://github.com/zed-industries/zed/pull/28586.

Release Notes:

- N/A

Co-authored-by: João Marcos <marcospb19@hotmail.com>

gcp-cherry-pick-bot[bot] and João Marcos created

5054d07 Revert "git_panel: Pad end of list to avoid obscuring final entry with horizontal scrollbar (#28823)" (cherry-pick #28971) (#28985)

Click to expand commit body
Cherry-picked Revert "git_panel: Pad end of list to avoid obscuring
final entry with horizontal scrollbar (#28823)" (#28971)

This reverts commit 1d98b33ae07a72e9e26dc9b0b54a8baa4fd5f8c1.

Not sure why, but seems like this breaks the binary search used to
correlate items to each other in the lists.

Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

gcp-cherry-pick-bot[bot] and Conrad Irwin created

40add86 Escape all runnables' cargo extra arguments coming from rust-analyzer (cherry-pick #28977) (#28981)

Click to expand commit body
Cherry-picked Escape all runnables' cargo extra arguments coming from
rust-analyzer (#28977)

Closes https://github.com/zed-industries/zed/issues/28947

Release Notes:

- Fixed certain doctests not being run properly

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

gcp-cherry-pick-bot[bot] and Kirill Bulatov created

d168fb5 agent: Add design tweaks (#28963)

Click to expand commit body
One more batch of fine-tuning the agent panel's design.

Release Notes:

- N/A

Danilo Leal created

6bfd259 agent: Support adding selection as context (#28964)

Click to expand commit body
https://github.com/user-attachments/assets/42ebe911-3392-48f7-8583-caab285aca09

Release Notes:

- agent: Support adding selections via @selection or `assistant: Quote
selection` as context

Bennet Bo Fenner created

6db3b9c Add support for OpenAI o3 and o4-mini models (#28881)

Click to expand commit body
Release Notes:

- Add support for OpenAI o3 and o4-mini models via OpenAI API and
Copilot Chat providers.

---------

Co-authored-by: Peter Tripp <peter@zed.dev>

Umesh Yadav and Peter Tripp created

01daf6e Fix snippets from extensions being listed twice (#28940)

Click to expand commit body
lookup_snippets() merges global snippets and extension snippets, but
global_snippets::lookup_snippets() also returns extension snippets, make
them double

Closes #28661 

Release Notes:

- Fixed a bug where extension provided snippets were being displayed in
duplicate.

redforks created

e50872c zed 0.183.4

Joseph T. Lyons created