Commit log

ed772e6 agent: Allow to collapse provider sections in the settings view (#30437)

Click to expand commit body
This is my first time contributing, so happy to make changes as needed.

## Problem

I found the LLM Provider settings to be pretty difficult to scan as I
was looking to enter my API credentials for a provider. Because all of
the provider configuration is exposed by default, providers that come at
the end of the list are pushed fairly far down and require scrolling. As
this list increases the problem only get worse.

## Solution

This is strictly a UI change.

* I put each provider configuration in a Disclosure that is closed by
default. This made scanning for my provider easy, and exposing the
configuration takes a single click. No scrolling is required to see all
providers on my 956px high laptop screen.
* I also added the success checkmark to authenticated providers to make
it even easier to find them to update a key or sign out.
* The `Start New Thread` had a class applied that was overriding the
default hover behavior of other buttons, so I removed it.

## Before
![CleanShot 2025-05-09 at 14 06
04@2x](https://github.com/user-attachments/assets/48d1e7ea-0dc8-4adc-845c-5227ec965130)

## After
![CleanShot 2025-05-09 at 14 33
23](https://github.com/user-attachments/assets/67e842a7-3251-46e5-ab18-7c4e600b84d8)

Release Notes:

- Improved Agent Panel settings view scannability by making each
provider block collapsible by default.

---------

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

Chris Kelly and Danilo Leal created

559725d bedrock: Support Writer Palmyra models (#29719)

Click to expand commit body
Release Notes:

- Added support for Writer Palmyra X4, and X5


https://writer.com/engineering/long-context-palmyra-x5/

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Shardul Vaidya and Marshall Bowers created

f0da3b7 agent: Handle thread title generation errors (#30273)

Click to expand commit body
The title of a (text) thread would get stuck in "Loading Summary..."
when the request to generate it failed. We now handle this case by
falling back to the default title, and letting the user manually edit
the title or retry generating it.



https://github.com/user-attachments/assets/898d26ad-d31f-4b62-9b05-519d923b1b22



Release Notes:

- agent: Handle thread title generation errors

---------

Co-authored-by: Richard Feldman <oss@rtfeldman.com>

Agus Zubiaga and Richard Feldman created

cee9f4b Fix deprecation warning text being covered by right dock (#30456)

Click to expand commit body
Closes [#30378](https://github.com/zed-industries/zed/issues/30378)

Release Notes:

- Fixed deprecation warning text being covered by right dock

---------

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

Sergei Kartsev and Smit Barmase created

ae31aa2 Fix apply buffer font features to completion tooltip (#30362) (#30519)

Click to expand commit body
Closes #30362

Release Notes:

- Fixed completion tooltip to respect custom font features set in
`buffer_font_features`

Sergei Kartsev created

82a7aca ui: Account for padding of parent container during scrollbar layout (#27402)

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

This PR updates the scrollbar-component to account for padding present
in the parent container.

Since the linked issue was opened,
https://github.com/zed-industries/zed/pull/25288 improved the behaviour
so that the scrollbar does allow scrolling the entire container, however
the scrollbar thumb still does not go the entire way to the bottom. This
can be seen here:


https://github.com/user-attachments/assets/89204355-e6b8-428b-9fa9-bb614051b6fa

This happens because during layouting of the scrollbar, padding of the
parent container is not taken into account. The scrollbar thumb size is
calculated as if no padding was present.

With this change, padding is now included in the calculation, which
resolves the issue:


https://github.com/user-attachments/assets/1d4c62e0-4555-4332-a9ab-4e114684b4b3

The change here is to store the calculated content size during prepaint
_including_ padding and use this for layouting the scrollbar. This
ensures that the actual scroll max and the content size are always in
sync. Furthermore, the existing `TODO`-comment is also resolved, as we
now no longer look at the size of the last child but the actual parent
size instead.

This also removes an existing panic of the scrollbar-component in cases
where the content size was 0, which was previously not accounted for
(this never happened in practice so far, for example because of the
padding added here:

https://github.com/zed-industries/zed/blob/43712285bfa8aa75bac1ca8a7eb5146dd36239be/crates/editor/src/hover_popover.rs#L802-L809
which prevented the container size from ever being 0).

---

Lastly, as I was wiring through the changes of the `content_size` I
noticed that some code was duplicated during the initial layouting as
well as in the click handlers. I refactored this in the second commit to
use `along` where possible as well as computing the new click offset in
one closure which can be passed to both event listeners. As always,
should any of these changes not be wanted, feel free to let me know and
I will revert these.

Looking forward to your feedback 😄 

Release Notes:

- Fixed scrollbars sometimes not scrolling all the way to the bottom.

Finn Evers created

b34f19a agent: Reduce allocations (#30220)

Click to expand commit body
Just a tiny patch to reduce allocations during context loading

Calling `.cloned()` on an iterator clones each element one by one, while
`into_iter().collect()` pre-allocates the resulting `Vec`

Release Notes:

- N/A

tidely created

09ace08 editor: Prevent vertical scrollbar from overlapping with buffer headers (#30477)

Click to expand commit body
Closes #16993

This PR fixes an issue where the vertical editor scrollbar was
overlaying with buffer headers. I fixed this by reserving space for the
scrollbar as needed which is provided by the recently introduced
`right_margin`.

Most of the diff consists of moving the `EditorMargins` creation out of
`render_block`, as the right margin is stored in this struct and moving
this out reduces the length of the parameter list of `render_blocks` by
one. I thought of this to be a small but nice side effect.

When it comes to the dividers, I decided against these considering the
margin as well, since it felt a bit off. However, I can see arguments
for these also considering the margins. I did include an image for
comparison in the list below. Happy to change this should it be
preferred the other way around.

| `main` |
![main](https://github.com/user-attachments/assets/1148a553-cf66-4ef7-b81a-9595e9b42308)
|
| --- | --- |
| PR |
![PR](https://github.com/user-attachments/assets/811c8385-0596-427f-8d09-f800cc8d7285)
|
| Fix with shortened divider |
![pr_line_shortened](https://github.com/user-attachments/assets/9938e27f-17a5-460f-99cf-47d1fab234ed)
|

Release Notes:

- Ensured that the vertical editor scrollbar no longer overlaps with
buffer headers.

Finn Evers created

49ba4ed Only include diagnostic instruction once (#29975)

Click to expand commit body
Instead of once per diagnostic error.

Release Notes:

- N/A

Max Nordlund created

06af031 markdown: Fix out of range panic in parser (#30510)

Click to expand commit body
For some reason `pulldown_cmark` treats \````` as a codeblock, meaning
that we could end up with an invalid range generated from
`extract_code_block_content_range` (`3..2`)

Closes #30495

Release Notes:

- agent: Fix an edge case where the editor would crash when model
generated malformed markdown

Bennet Bo Fenner created

1fa19c6 Agent panel: Zoom support (workspace::ToggleZoom) (#30504)

Click to expand commit body
Release Notes:

- Added support for zooming the agent panel via `workspace::ToggleZoom`.

Michael Sloan created

5ba1d3e chore: Move component_preview into zed (#30480)

Click to expand commit body
This improves our build times by ~0.2s

Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

e4525b8 docs: Suggest checking `zed_extension_api` compatibility (#30474)

Click to expand commit body
Or your extension might not work as expected. Or you have to downgrade
`zed_extension_api` later. Happened
[here](https://github.com/sectore/zed-just-ls/issues/2) or
[here](https://github.com/zed-extensions/ruby/commit/842b0cdb6995e692552645c0584ecc9991c589b1)
recently.

Release Notes:

- N/A

Jens Krause created

18a2a50 title_bar: Hide plans without a subscription period (#30478)

Click to expand commit body
This PR updates the plan display in the user menu in the title bar to
hide plans that do not have a subscription period.

Release Notes:

- Improved the displaying of the plan in the user menu.

Marshall Bowers created

172a475 editor: Fix multicursor indent edge case where few lines would indent incorrectly (#30461)

Click to expand commit body
This should have been part of [editor: Fix inconsistent relative indent
when using tab with multi
cursors](https://github.com/zed-industries/zed/pull/29519)

Before / After:


https://github.com/user-attachments/assets/b7ab0eef-2764-44dc-b51f-b96dccd5ecb3

Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>

Smit Barmase and Ben Kunkle created

471e02d Separate timeout and connection dropped errors out (#30457)

Kirill Bulatov created

39da721 agent: Make terminal command render with Markdown in the tool card (#30430)

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

Rendering as markdown gives us text selection and copying for free. In
the future, we may want to explore having these commands be actual
editors, allowing you to step in, change the command, and re-run it
right from there.

Release Notes:

- agent: Made the terminal command in the tool card selectable and
copyable.

Danilo Leal created

daa7774 collab: Push down plan changes to the client (#30447)

Click to expand commit body
This PR makes it so we push down plan updates from the server when the
user's subscription changes.

Release Notes:

- N/A

Marshall Bowers created

79ba226 debugger: Fix removal of running sessions when spawning a debug session (#30384)

Click to expand commit body
Fixed regression introduced in
https://github.com/zed-industries/zed/pull/29646/files#diff-85cbb0a26f1949431ec63870fc2d52b583227a5a00b6e10b64dcdb7fe7ef13afL314

Release Notes:

- N/A

Piotr Osiewicz created

074e783 docs: Update docs for viewing subscription invoices (#30443)

Click to expand commit body
This PR updates the docs for how to access the invoice history for your
account.

Release Notes:

- N/A

Marshall Bowers created

fbeee1f zeta: Update onboarding modal with subscription info (#30439)

Click to expand commit body
This PR updates the edit prediction onboarding modal with steps about
subscribing to a plan.

When the user is not subscribed to a plan, we display a link to the
account page to sign up for one:

<img width="612" alt="Screenshot 2025-05-09 at 6 04 05 PM"
src="https://github.com/user-attachments/assets/0300194a-c419-43d9-8214-080674d31e12"
/>

If the user is already subscribed to a plan we indicate which plan they
are on and how many edit predictions they get with it:

<img width="616" alt="Screenshot 2025-05-09 at 6 03 16 PM"
src="https://github.com/user-attachments/assets/e2506096-e499-41f2-ba1f-fca768cb48b9"
/>

<img width="595" alt="Screenshot 2025-05-09 at 5 46 18 PM"
src="https://github.com/user-attachments/assets/de82f8c2-cad8-45fb-8988-26606a8dc3e1"
/>

Release Notes:

- N/A

Marshall Bowers created

bff2597 docs: Redirect `docs/ai` to `docs/ai/overview` (#30442)

Click to expand commit body
This PR adds a redirect from `zed.dev/docs/ai` to
`zed.dev/docs/ai/overview`.

Not 100% sure this will work, but want to give it a try.

Release Notes:

- N/A

Marshall Bowers created

6c5b9b4 zeta: Factor out `render_data_collection_explanation` (#30438)

Click to expand commit body
This PR factors out a `render_data_collection_explanation` method in the
`ZedPredictModal`.

This allows `rustfmt` to work inside of `render` once again.

Release Notes:

- N/A

Marshall Bowers created

f29c6e5 Update `zed_llm_client` to v0.8.1 (#30433)

Click to expand commit body
This PR updates the `zed_llm_client` crate to v0.8.1.

The name of `Plan::Free` changed to `Plan::ZedFree` in this version.

Release Notes:

- N/A

Marshall Bowers created

000077f agent: Fix reinsertion of creases when editing past messages (#30417)

Click to expand commit body
Just noticed this got lost when main was merged in #29828.

Release Notes:

- agent: Fixed the rendering of added context when editing past messages
in a thread.

Cole Miller created

2b249f9 Add support for setting font features on Linux (#27808)

Click to expand commit body
Fixes #15752.
- Updated `cosmic_text` to 0.14.0
- Made a basic implementation for setting font features.

#12176 is not fixed by this PR.

Release Notes:

- Added initial support for `font_features` on Linux

peppidesu created

e13ecc0 assistant_context_editor: Register `ContextEditor` actions that were lost (#30428)

Click to expand commit body
This PR restores the `ContextEditor` actions that were lost in
https://github.com/zed-industries/zed/pull/30168.

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

Release Notes:

- agent: Added back some missing actions, including `assistant: quote
selection`.

Marshall Bowers created

bef25c7 git_ui: Fix co-author tooltip message (#30426)

Click to expand commit body
It should show "Remove co-authored-by" when hovering on co-author is
already added state. And should say
"Add co-authored-by" when it is at disabled state.

Release Notes:

- N/A

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

Smit Barmase and Ben Kunkle created

65b1396 Wait to locate system-installed Node until the shell environment is loaded (#30416)

Click to expand commit body
Release Notes:

- Fixed a race condition that sometimes prevented a system-installed
`node` binary from being detected.
- Fixed a bug where the `node.path` setting was not respected when
invoking npm.

Max Brunsfeld created

9afc6f6 agent: Fix layout shift due to the "Generating" label (#30422)

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

Release Notes:

- agent: Fixed layout shift happening in the toolbar (both in the
singleton and multibuffers) due to the "Generating" label that appeared
while the agent is still generating a response.

Danilo Leal created

82d271c agent: Thread history update improvements (#30415)

Click to expand commit body
- Try to preserve previously selected item on update
- Do not clear list items while updating to avoid a frame with no items
rendered

Release Notes:

- agent: Preserve previously selected item in Thread History on update

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>

Agus Zubiaga , Danilo Leal , and Richard Feldman created

77ad6d7 zeta: Restore `ZED_PREDICT_EDITS_URL` environment variable (#30418)

Click to expand commit body
This PR restores the `ZED_PREDICT_EDITS_URL` that was removed in
https://github.com/zed-industries/zed/pull/30290.

While we don't need to use it anymore for local development against the
LLM Worker, some folks reported using it to run versions of Zeta hosted
elsewhere.

Since we don't yet have an officially-supported mechanism today for
bringing your own Zeta for edit predictions, I'm putting the environment
variable back to not break that use case.

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

Release Notes:

- N/A

Marshall Bowers created

d6ab416 Revert "Load Profile state from Thread and tie visibility to the thread's model" (#30413)

Click to expand commit body
This reverts commit 3615d6d96c5d1c8fd0ccb1ee0bc176e9c94ac730.

Ultimately, we want to restore the ability to store a profile
per-thread, but for now reverting this fixes a fairly disruptive bug.

Release Notes:

- Fixed a bug causing the agent to use the wrong profile in some cases.

Cole Miller created

8f07135 collab: Don't require payment method to subscribe to Zed Free (#30398)

Click to expand commit body
This PR makes it so we don't require a payment method to subscribe to
the Zed Free plan.

Release Notes:

- N/A

Marshall Bowers created

1dfddf0 agent: write latest profile change to default setting (#30408)

Click to expand commit body
Reverts back to previous behavior where we update your settings so we
can load a new thread from your last configuration.

Release Notes:

- agent: Persist profile changes for new threads

Ben Brandt created

cf8f003 collab: Improve error message when requesting an LLM token without a subscription (#30405)

Click to expand commit body
This PR improves the error message when trying to obtain an LLM token
without a subscription:

<img width="411" alt="Screenshot 2025-05-09 at 12 30 41 PM"
src="https://github.com/user-attachments/assets/c53326ba-4a99-4d9c-88ba-674e520f941f"
/>

Release Notes:

- N/A

Marshall Bowers created

0029245 agent: Show delete thread icon buttons on hover/focus (#30370)

Click to expand commit body
This PR's main goal is to show the delete thread button when the list
item is either focused or hovered. In order to do that, we ended up
refactoring (i.e., merging) the `PastThread` and `PastContext` elements
into a single `HistoryElementEntry` that already matches to the entry
type (i.e., context or thread).

Release Notes:

- agent: Simplify the UI by showing the delete thread icon button only
on hover or focus.

---------

Co-authored-by: Agus Zubiaga <hi@aguz.me>

Danilo Leal and Agus Zubiaga created

49c01c6 askpass: Remove attempt to surface friendly error if zed exe path is not executable before use in askpass script (#30396)

Click to expand commit body
Closes #29819

Release Notes:

- Removed a faulty check in the askpass implementation causing
unintended "Failed to check metadata of Zed executable path for use in
askpass" errors when remoting via SSH or doing git operations that
require authentication.

Ben Kunkle created

863d7cc Fix agent panel scroll while editing a past message (#30394)

Click to expand commit body
This is similar to the `block_mouse_down` method added in #20649 (which
has a very similar motivation), but is more comprehensive in stopping
mouse events. Since I want to cherry-pick this to the releases, keeping
this change just to the agent panel. In a follow-up will replace
existing use of `block_mouse_down` to instead use this.

Release Notes:

- N/A

Michael Sloan created

d270f6b collab: Require `subscription_period` in LLM token claims (#30392)

Click to expand commit body
This PR makes the `subscription_period` field in the LLM token claims
required.

Release Notes:

- N/A

Marshall Bowers created

08f516c Misc improvement of code for agent markdown codeblock (#30388)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

9cff5cf agent: Keyboard navigation improvements (#30274)

Click to expand commit body
- Fix `ctrl-p` not working in the model selector
- Select first entry when opening the context picker

Release Notes:

- Fixed `menu::SelectPrevious` keybindings not working in the agent
panel's model selector.

Cole Miller created

0abee56 Fix text overlap with markdown code block in list in agent response (#30377)

Click to expand commit body
Seems that `h_full` was causing it to use the height of the overall list
item for some reason.

Closes #30002 

Release Notes:

- Agent Panel: Fixed text overlap for code blocks nested in lists in
agent response.

Michael Sloan created

c58b690 Remove unnecessary use of `MarkdownElementBuilder::flush_text` (#30376)

Click to expand commit body
The next statement calls `modify_current_div` which immediately does
`flush_text`.

Release Notes:

- N/A

Michael Sloan created

11b6ce4 Add ability to keybind search filter (#30327)

Click to expand commit body
Useful for large monorepos with many subdirectories, users can keybind a
filter to their commonly used directories.

Release Notes:

- Added a new `included_files` field to the `DeploySearch` action to
automatically pre-fill which files to include in the search. This lets
you use a keybinding to search in a particular folder or for a certain
set of files.

---------

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

Tristan Hume and Antonio Scandurra created

8c83573 Use a single Text segment + indoc! in active thread preview (#30373)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

25ced2e Fix error when Copilot calls tools without arguments (#30371)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/30346

The model can output an empty string to indicate the absence of
arguments, which can't be parsed as a `serde_json::Value`. When that
happens, we now create an empty object instead on behalf of the model.

Release Notes:

- Fixed a bug that prevented Copilot models from calling the
`diagnostic` tool.

Antonio Scandurra created

f248da5 workspace: Add new "close active dock" action for closing any focused dock (#30369)

Click to expand commit body
This is a more generic implementation of
https://github.com/zed-industries/zed/pull/30360

This also removes the need for a separate close action for the git
panel.

The downside is maybe it is harder to find since it is less specific.

Release Notes:

- workspace: Added new `workspace: close active dock` action to close
the currently focused dock

Ben Brandt created

89ce49d windows: Remove `SmartGlobal` (#30366)

Click to expand commit body
Closes #29657

Using `with_clipboard_data()` to ensure that `GlobalLock` and
`GlobalUnlock` are called correctly.

Release Notes:

- N/A

张小白 created

30f3efe Revert unnecessary "fix handling of unicode when counting codeblock lines" + document (#30368)

Click to expand commit body
After merging #30364 I realized why it was unnecessary to fix the code,
and was more efficient before. UTF-8 does not use the standard 0-127
ASCII range for multi-byte chars. So this reverts that change and
documents why the code is valid.

Release Notes:

- N/A

Michael Sloan created