Commit log

251f26d copilot: Add support for tool_calls for gpt-4.1, gpt-4o, o4-mini (#29369)

Click to expand commit body
Github Copilot currently supports following models for agent mode with
tool calls. Currently we are only supporting anthropic models and not
openai and gemini. This PR add support for the openai models. I have
tested it and it works for all of them. For gemini models it seems there
is a issues from copilot side so not adding that in this PR as enabling
gemini model breaks it in the ask mode as well.

<img width="392" alt="image"
src="https://github.com/user-attachments/assets/fb7a4148-e48c-45c5-9ff9-c02f71217dfb"
/>


- [x] GPT-4.1

- [x] GPT-4.0

- [x] o4-mini

Release Notes:

- agent: Add tool calling support for gpt-4.1, gpt-4o, o4-mini when
using Copilot Chat as a provider

Signed-off-by: Umesh Yadav <umesh4257@gmail.com>

Umesh Yadav created

7133699 Suggest nim extension for *.nim files (#29912)

Click to expand commit body
Release Notes:

- N/A

Kirill Bulatov created

1adb4ec Polish diff for the `edit_file` tool (#29911)

Click to expand commit body
I added some padding to the editor, and removed the border around each
hunk as it would overlap in weird ways with the card container.

## Before

<img width="1148" alt="image"
src="https://github.com/user-attachments/assets/2018feaa-c847-4609-bc82-522660714b9a"
/>

## After

One Light:

<img width="1148" alt="image"
src="https://github.com/user-attachments/assets/4da1a4b6-0af2-4479-afcc-02da50178fd6"
/>

One Dark:

<img width="1148" alt="image"
src="https://github.com/user-attachments/assets/0168631d-7b76-4582-8174-c6e9c1297dc8"
/>


Release Notes:

- Improved displaying of diffs when the agent edits files.

Antonio Scandurra created

0048e67 Properly restore window position for SSH projects (#29904)

Click to expand commit body
Release Notes:

- Fixed SSH projects not restoring their window position on reopen

Kirill Bulatov created

0119b66 project_search: Ensure filter row aligns with other search rows (#29886)

Click to expand commit body
Closes #29858 

This PR fixes the alignment-issue for the project saerch for cases where
the horizontally available space is large.

The issue arose because the two smaller editors within one line were
allowed to grow as much as the other editors on separate lines, up to
1200 pixels. However, these two editors should together only take up
1200 pixels at maximum, including the gap between them. To fix this, the
editors now live within one container element that grows at the same
rate as the other editors whilst allowing both editors to flex grow as
needed in the available space.

Current main:


https://github.com/user-attachments/assets/622016dc-70e5-455f-a7ba-5b69405d7e1e

This PR: 


https://github.com/user-attachments/assets/5244abf7-f0c0-4781-acb7-b774638d8a17

Release Notes:

- Improved project search input field alignment.

Finn Evers created

45fe158 collab: Improve `GET /billing/usage` endpoint (#29898)

Click to expand commit body
This PR improves the `GET /billing/usage` endpoint.

We now return the usage with the default plan limits when there is no
usage record.

Release Notes:

- N/A

Marshall Bowers created

55eb071 agent: Update callout URLs (#29897)

Click to expand commit body
This PR updates the Agent callout URLs to go to the account page.

Release Notes:

- N/A

Marshall Bowers created

3e2abbf ui: Make `Callout` constructors more flexible (#29895)

Click to expand commit body
This PR updates the `Callout` constructors to be more flexible by
accepting `impl Into<SharedString>`s.

Release Notes:

- N/A

Marshall Bowers created

a2fa10f agent: Remove `UsageBanner` (#29896)

Click to expand commit body
This PR removes the `UsageBanner` component, as it was no longer used.

Release Notes:

- N/A

Marshall Bowers created

3db4744 agent: Remove unneeded tracking of request usage (#29894)

Click to expand commit body
This PR removes some unneeded tracking of the model request usage in the
`ActiveThread` and `ThreadEvent::UsageUpdated` events.

Release Notes:

- N/A

Marshall Bowers created

fe177f5 agent: Add UI for upsell scenarios (#29805)

Click to expand commit body
Release Notes:

- N/A

---------

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

Nate Butler and Marshall Bowers created

a19687a agent: Sort profiles based on relevance (#29893)

Click to expand commit body
Kinda feel like the way that makes the most sense to sort profiles in
the dropdown is by relevance/impact. "Write" is the default profile and
contains all built-in tools turned on by default, thus it should be the
first. "Ask" contains read-only tools, one step down from Write. And
"Manual" is totally empty, the least "powerful" profile, thus the last.

Release Notes:

- N/A

Danilo Leal created

eb15ed7 In the edit tool card, use the UI font size for the editor that we use to render the diff (#29882)

Click to expand commit body
I am currently setting the font size corrrectly by using a custom
EditorStyle and building an element. However I need to use the same
properties as a normal editor for everything but font size.

Release Notes:

- N/A

Nathan Sobo created

52da375 agent: Add design adjustments to message editor (#29891)

Click to expand commit body
- Removed unused `MessageBubbleDashed` icon
- Polished `Crosshair` icon SVG
- Added dropdown toggle keybinding to the profile selector tooltip
- Repositioned buttons at the message editor footer
- Updated buttons to use `Button` instead of `ButtonLike`

Release Notes:

- N/A

Danilo Leal created

3594a52 collab: Don't try to sync usage to Stripe for staff users (#29892)

Click to expand commit body
This PR makes it so we don't try to sync billing usage to Stripe for
staff users.

Release Notes:

- N/A

Marshall Bowers created

76ad1a2 Add support for getting the token count for all parts of Gemini generation requests (#29630)

Click to expand commit body
* `CountTokensRequest` now takes a full `GenerateContentRequest` instead
of just content.

* Fixes use of `models/` prefix in `model` field of
`GenerateContentRequest`, since that's required for use in
`CountTokensRequest`. This didn't cause issues before because it was
always cleared and used in the path.

Release Notes:

- N/A

Michael Sloan created

8648423 Replace `std::sync::Mutex` with `parking_lot::Mutex` in `languages/src/python.rs` (#29889)

Click to expand commit body
This appears to be the only place `std::sync::Mutex` is used, Zed always
prefers `parking_lot`.

Release Notes:

- N/A

Michael Sloan created

f4e9ea3 In error text of cloud LLM API: `completion failed` -> `request failed` (#29888)

Click to expand commit body
This error is used for more requests than completion requests

Release Notes:

- N/A

Michael Sloan created

161f6df collab: Set billing-related fields for Zed staff (#29887)

Click to expand commit body
This PR sets the billing-related fields in the LLM token claims for Zed
staff.

Staff members are automatically in the Zed Pro plan with a subscription
periods that spans the entirety of each month.

Release Notes:

- N/A

Marshall Bowers created

a0895a6 Only send `Stop` event at end of google completion request (#29885)

Click to expand commit body
I don't think this makes much of a difference in current use, but this
more closely matches other providers and cleans up the "Response"
section of eval markdown output

Release Notes:

- N/A

Michael Sloan created

bb82d9c agent eval: Fix `--model` arg and add `--provider` (#29883)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

007685f docs: Add instructions for uninstalling Zed (#29840)

ZaraPhu created

c3d9cde Change cloud language model provider JSON protocol to surface errors and usage information (#29830)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Max Brunsfeld , Nathan Sobo , and Marshall Bowers created

3984531 agent: Rename `@rules` to `@rule` (#29881)

Click to expand commit body
This is purely a cosmetic change, renamed `@rules` to `@rule` which
unifies the @mention experience (for files, threads etc. we also use
`@file`, `@thread` not `@files`, `@thread`). Would also make sense to
rename the rules picker to rule picker, but i do not wanna introduce
conflicts just for the purpose of re-naming.

Release Notes:

- N/A

Bennet Bo Fenner created

cceb13b collab: Add `use_llm_request_queue` to `LlmTokenClaims` (#29877)

Click to expand commit body
This PR adds a `use_llm_request_queue` field to the LLM token claims,
based on the `llm-request-queue` feature flag.

Release Notes:

- N/A

Marshall Bowers created

427101b collab: Drop legacy subscription usage and meter tables (#29876)

Click to expand commit body
This PR adds a migration to drop the `subscription_usages` and
`subscription_usage_meters` tables from the database.

We're now using `subscription_usages_v2` and
`subscription_usage_meters_v2` everywhere.

Release Notes:

- N/A

Marshall Bowers created

4d51602 Encourage editing over re-creating a file from scratch (#29870)

Click to expand commit body
I also introduced a new eval to prove the encouragement actually makes a
difference.

Release Notes:

- Improved agent behavior when streaming edits, encouraging it to
editing files as opposed to creating them from scratch

Antonio Scandurra created

ca1dc82 collab: Fix `subscription_usage_id` column type (#29871)

Click to expand commit body
This PR fixes the type of the `subscription_usage_id` column on the
`SubscriptionUsageMeter` model.

Release Notes:

- N/A

Marshall Bowers created

2e3baef agent: Polish single-file review toolbar controls (#29866)

Danilo Leal created

545ae27 Add the ability to follow the agent as it makes edits (#29839)

Click to expand commit body
Nathan here: I also tacked on a bunch of UI refinement.

Release Notes:

- Introduced the ability to follow the agent around as it reads and
edits files.

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Antonio Scandurra , Nathan Sobo , and Max Brunsfeld created

425f32e agent: Add the `single_file_review` setting to the UI (#29859)

Click to expand commit body
Release Notes:

- agent: Add the `single_file_review` setting to the UI

Danilo Leal created

9c11d24 Fix hiding editor toolbar and add `agent_review` setting (#29854)

Click to expand commit body
Closes #29836

The agent diff toolbar item was causing the editor toolbar to show even
when all the other elements were disabled via settings.

This PR fixes this by setting the location to
`ToolbarItemLocation::Hidden` in the states where it shouldn't show.

It also adds a new a `toolbar.agent_review` setting to hide the agent
review buttons altogether. However, if the other toolbar elements are
hidden and the file isn't under review, the editor toolbar will still be
hidden. So you only need to set this to `false` if you don't want them
to show up even under agent review.

Release Notes:

- N/A

Agus Zubiaga created

1fc57ea feature_flags: Add a constant to control Agent-related feature flags (#29853)

Click to expand commit body
This PR adds a singular constant that controls the Agent-related feature
flags.

This way we can tweak this one value when we're ready to build the final
build for the launch.

Release Notes:

- N/A

Marshall Bowers created

c3d2831 collab: Use new subscription usage tables (#29848)

Click to expand commit body
This PR updates Collab to use the new subscription usage tables added in
#29847.

Release Notes:

- N/A

Marshall Bowers created

c124797 collab: Add new tables for subscription usages and meters (#29847)

Click to expand commit body
This PR adds two new tables:

- `subscription_usages_v2`
- `subscription_usage_meters_v2`

These are the same as the old ones, except using UUIDs as primary keys.

Release Notes:

- N/A

Marshall Bowers created

12c26a4 collab: Don't try to transfer usage when a Zed Pro trial is canceled (#29843)

Click to expand commit body
This PR fixes an issue where we would erroneously try to transfer
existing subscription usage when a Zed Pro trial was canceled.

Release Notes:

- N/A

Marshall Bowers created

7f8e3fd ui: Implement `ParentElement` for `Banner` (#29834)

Click to expand commit body
This PR implements the `ParentElement` trait for the `Banner` component
so that it can use the real children APIs instead of a bespoke one.

Release Notes:

- N/A

Marshall Bowers created

f0515d1 agent: Show a notice when reaching consecutive tool use limits (#29833)

Click to expand commit body
This PR adds a notice when reaching consecutive tool use limits when
using normal mode.

Here's an example with the limit artificially lowered to 2 consecutive
tool uses:


https://github.com/user-attachments/assets/32da8d38-67de-4d6b-8f24-754d2518e5d4

Release Notes:

- agent: Added a notice when reaching consecutive tool use limits when
using a model in normal mode.

Marshall Bowers created

10a7f2a agent: Add several UX improvements (#29828)

Click to expand commit body
Still a work in progress.

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Nathan Sobo <1789+nathansobo@users.noreply.github.com>
Co-authored-by: Cole Miller <53574922+cole-miller@users.noreply.github.com>

Danilo Leal , Bennet Bo Fenner , Nathan Sobo , Cole Miller , Nathan Sobo , and Cole Miller created

5053562 agent: Refresh the profile selector and modal design (#29816)

Click to expand commit body
- [x] Separate MCP servers from tools in the profile customization modal
view
- [x] Group MCP tools in the MCP picker and add a heading
- [x] Separate bult-in profiles from custom ones in the dropdown
selector
- [x] Separate bult-in profiles from custom ones in the modal
- [ ] Enable looping through items via keybinding without opening the
dropdown (will be done on a follow-up PR)
- [ ] Stretch: Focus on the currently active item upon opening the
dropdown (will be done on a follow-up PR)

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>

Danilo Leal , Bennet Bo Fenner , Bennet Bo Fenner , and Bennet Bo Fenner created

1877fce agent: Fix default cursor position on reviewing editors (#29825)

Click to expand commit body
The cursor wasn't always placed at the first hunk for review editors.

Release Notes:

- N/A

Agus Zubiaga created

6431630 agent: Review edits in single-file editors (#29820)

Click to expand commit body
Enables reviewing agent edits from single-file editors in addition to
the multibuffer experience we already had.


https://github.com/user-attachments/assets/a2c287f0-51d6-43a1-8537-821498b91983


This feature can be turned off by setting `assistant.single_file_review:
false`.

Release Notes:

- agent: Review edits in single-file editors

Agus Zubiaga created

04772bf Add support for queuing status updates in cloud language model provider (#29818)

Click to expand commit body
This sets us up to display queue position information to the user, once
our language model backend is updated to support request queuing.

The JSON returned by the LLM backend will need to look like this:

```json
{"queue": {"status": "queued", "position": 1}}
{"queue": {"status": "started"}}
{"event": {"THE_UPSTREAM_MODEL_PROVIDER_EVENT": "..."}} 
```

Release Notes:

- N/A

---------

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

Max Brunsfeld and Marshall Bowers created

4d1df7b Re-enable directory-related tools (#29809)

Click to expand commit body
Also `now` in `write` profile

Release Notes:

- Tools for manipulating directories no longer require confirmation, and
are enabled in the Write profile
- Enabled `now` and `list_directory` tools by default in Write profile

---------

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

Richard Feldman , Cole Miller , and Cole Miller created

9547d42 Support @-mentions in inline assists and when editing old agent panel messages (#29734)

Click to expand commit body
Closes #ISSUE

Co-authored-by: Bennet <bennet@zed.dev>

Release Notes:

- Added support for context `@mentions` in the inline prompt editor and
when editing past messages in the agent panel.

---------

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

Cole Miller , Bennet Bo Fenner , and Ben Brandt created

c918f6c agent: Add assistant panel width persistence (#28808)

Click to expand commit body
Previously, the assistant panel width was not persisted across sessions.
This meant that upon restarting the Zed editor, the panel would revert
to its default size, disrupting the user's preferred layout.

This pull request introduces persistence for the assistant panel width.
The width is now saved to the key-value store when the editor is closed
and restored on startup, ensuring a consistent UI experience across
different sessions.

Release Notes:

- agent: Add assistant panel width persistence

---------

Signed-off-by: Umesh Yadav <umesh4257@gmail.com>

Umesh Yadav created

da98e30 debugger: Clear active debug line on thread continued (#29811)

Click to expand commit body
I also moved the breakpoint store to session from local mode, because
both remote/local modes will need the ability to remove active debug
lines.

Release Notes:

- N/A

Anthony Eid created

e6b0d8e Delete obsolete tools (#29808)

Click to expand commit body
Release Notes:

- Removed some obsolete tools: batch_tool, code_actions, code_symbols,
contents, symbol_info, rename

Co-authored-by: Cole Miller <m@cole-miller.net>

Richard Feldman and Cole Miller created

9147f89 zed_extension_api: Release v0.5.0 (#29802)

Click to expand commit body
This PR releases v0.5.0 of the Zed extension API.

Support for this version of the extension API will land in Zed v0.186.x.

Release Notes:

- N/A

Bennet Bo Fenner created

9efc09c Add eval for open_tool (#29801)

Click to expand commit body
Also have its description say it should only be used on request

Release Notes:

- N/A

Richard Feldman created