Commit log

92dc812 git_ui: Fix commit/amend telemetry and amend click from commit modal (#28795)

Click to expand commit body
Release Notes:

- N/A

Smit Barmase created

c7e80c8 gemini: Pass system prompt as system instructions (#28793)

Click to expand commit body
https://ai.google.dev/gemini-api/docs/text-generation#system-instructions

Release Notes:

- agent: Improve performance of Gemini models

Bennet Bo Fenner created

c381a50 agent: Show a warning when some tools are incompatible with the selected model (#28755)

Click to expand commit body
WIP

<img width="644" alt="image"
src="https://github.com/user-attachments/assets/b24e1a57-f82e-457c-b788-1b314ade7c84"
/>


<img width="644" alt="image"
src="https://github.com/user-attachments/assets/b158953c-2015-4cc8-b8ed-35c6fcbe162d"
/>


Release Notes:

- agent: Improve compatibility with Gemini Tool Calling APIs. When a
tool is incompatible with the Gemini APIs a warning indicator will be
displayed. Incompatible tools will be automatically excluded from the
conversation

---------

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

Bennet Bo Fenner and Danilo Leal created

ff4334e eval: Fix stalling on tool confirmation (#28786)

Click to expand commit body
The `always_allow_tool_actions` setting would get overridden with the
default when we loaded each example project, leading to examples
stalling when they run a tool that needed confirmation. There's now a
separate `runner_settings.json` file where we can configure the
environment for the eval.

Release Notes:

- N/A

---------

Co-authored-by: Oleksiy <oleksiy@zed.dev>

Agus Zubiaga and Oleksiy created

b1e4e60 agent: Add more Rust code examples, update TODO check (#28737)

Click to expand commit body
Release Notes:

- N/A

Thomas Mickley-Doyle created

d0f8064 gpui: Fix `snap_to_window_with_margin` when window has client inset (#27330)

Click to expand commit body
Release Notes:

- Fixed popup menu snap to window to leave margin on Linux.

This change to continue #17159 to fix same thing on Linux.

| Before | After |
| -- | -- |
| ![Pasted
image](https://github.com/user-attachments/assets/3129d42c-7253-4a3f-a428-86e2a3df38ff)
|
![image](https://github.com/user-attachments/assets/8dc83377-9df7-45ba-805b-1cfdea612ae0)
|

Jason Lee created

b6cce1e collab: Add support for launching a general-purpose billing portal session (#28785)

Click to expand commit body
This PR adds a new `ManageSubscriptionIntent` that allows uses to launch
a general-purpose billing portal session to manage their subscription.

Release Notes:

- N/A

Marshall Bowers created

05fc9ee call: Fix crash when screensharing on MacOS (#28784)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Fixed a crash when screensharing on MacOS

Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Piotr Osiewicz , Conrad , and Anthony Eid created

8f52bb9 agent: Add ability to interrupt current generation with a new message (#28762)

Click to expand commit body
If you wanted to interrupt the current LLM response that's generating to
send a follow up message, you'd need to stop it first, type your new
message, and then send it. Now, you can just type your new message while
there's a response generating and send it. This will interrupt the
previous response generation and kick off a new one.

Release Notes:

- agent: Allow to send a new message while a response is generating,
interrupting the LLM to focus instead on the most recent prompt.

Danilo Leal created

144fd0b Fix the git panel's commit button sometimes opening the modal (#28767)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

cd4a3fd debugger: Skip out-of-bounds breakpoints when deserializing (#28781)

Click to expand commit body
Previously we'd crash when deserializing a breakpoint whose row number
was out of bounds (could happen if the file was externally modified).
This PR fixes that code to skip such breakpoints.

An alternative would be to clip the deserialized `PointUtf16`, but I
think that would mostly result in nonsensical breakpoints.

Release Notes:

- N/A

Cole Miller created

42c3f4e debugger_ui: Preview thread state when using the dropdown (#28778)

Click to expand commit body
This PR changes the thread list dropdown menu in the debugger UI to
eagerly preview the state of a thread when selecting it, instead of
waiting until confirming the selection.

Release Notes:

- N/A

Cole Miller created

90dec1d collab: Add Zed Pro checkout flow (#28776)

Click to expand commit body
This PR adds support for initiating a checkout flow for Zed Pro.

Release Notes:

- N/A

Marshall Bowers created

afabcd1 Update block diagnostics (#28006)

Click to expand commit body
Release Notes:

- "Block" diagnostics (that show up in the diagnostics view, or when
using `f8`/`shift-f8`) are rendered more clearly
- `f8`/`shift-f8` now always go to the "next" or "prev" diagnostic,
regardless of the state of the editor

![Screenshot 2025-04-09 at 16 42
09](https://github.com/user-attachments/assets/ae6d2ff6-5183-4b74-89d0-fefee1aa11e3)

---------

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>

Conrad Irwin , Kirill Bulatov , and Julia Ryan created

ccf9aef debugger: Remove LLDB adapter, switch Rust tasks to CodeLLDB (#28773)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

aef78dc Tidy up DAP initialization (#28730)

Click to expand commit body
To make DAP work over SSH we want to create the binary
at the project level (so we can wrap it in an `ssh` invocation
transparently).

This means not pushing the adapter down into the session, and resolving
more information ahead-of-time.

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Piotr <piotr@zed.dev>

Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Piotr <piotr@zed.dev>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: Anthony <anthony@zed.dev>

Conrad Irwin , Anthony Eid , Piotr , Piotr Osiewicz , and Anthony created

6f0951f debugger_ui: Move `DEBUGGER_PANEL_PREFIX` out of `db` (#28768)

Click to expand commit body
This PR moves the `DEBUGGER_PANEL_PREFIX` constant out of the `db` crate
and into `debugger_ui`, since it is specific to that.

Release Notes:

- N/A

Marshall Bowers created

5e09455 agent: Return `ToolResult` from `run` inside `Tool` (#28763)

Click to expand commit body
This is just a refactor which adds no functionality.
We now return a `ToolResult` from `Tool > run(...)`. For now this just
wraps the output task in a struct. We'll use this to implement custom
rendering of tools, see #28621.

Release Notes:

- N/A

Bennet Bo Fenner created

32829d9 Use proper codenames for macOS versions (#28766)

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

Release Notes:

- N/A

Kirill Bulatov created

e4cf7fe eval: Improve readability with colors and alignment (#28761)

Click to expand commit body
![CleanShot 2025-04-15 at 10 35
39@2x](https://github.com/user-attachments/assets/495d96fb-fe2f-478b-a9d6-678c1184db9a)


Release Notes:

- N/A

Agus Zubiaga created

2b89b97 agent: Adjust markdown heading sizes (#28759)

Click to expand commit body
Adjust the heading sizes for the Agent Panel so they're not aggressively
huge.

Release Notes:

- N/A

Danilo Leal created

e26f0a3 agent: Make `ToolWorkingSet` an `Entity` (#28757)

Click to expand commit body
Motivation is to emit events when enabled tools change, want to use this
in #28755

Release Notes:

- N/A

Bennet Bo Fenner created

7e1b419 markdown: Add ability to customize individual heading level (#28733)

Click to expand commit body
This PR adds a new field in the `MarkdownStyle` struct,
`heading_level_styles`, allowing, via the newly added function
`apply_heading_style` and struct `HeadingLevelStyles` to customize each
individual heading level in Markdown rendering/styling function.

Things like this should now be possible:

```rust
    MarkdownStyle {
        heading_level_styles: Some(HeadingLevelStyles {
            h1: Some(TextStyleRefinement {
                font_size: Some(rems(1.15).into()),
                ..Default::default()
            }),
        }),
        ..Default::default()
    }
```

Release Notes:

- N/A

Danilo Leal created

98d001b debugger: Always show process list in attach (#28685)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

d4a985a Case Insensitive Unicode Text Search: Fallback To Regex (#28752)

Click to expand commit body
Closes #9980

Release Notes:

- Fixed: case insensitive text search with unicode characters

François Mockers created

616d17f git_ui: Force commit modal mode from command palette (#28745)

Click to expand commit body
Depending on `git::commit` or `git::amend` action triggered, commit
modal opens up in appropriate mode, handling edge cases like if you are
already in amend mode, etc.

Release Notes:

- N/A

Smit Barmase created

e1c4231 gemini: Fix "invalid argument" error when request contains no tools (#28747)

Click to expand commit body
When we do not have any tools, we want to set the `tools` field to
`None`

Release Notes:

- Fixed an issue where Gemini requests would sometimes return a Bad
Request ("Invalid argument...")

Bennet Bo Fenner created

cfc848d git_ui: Fix commit modal dismiss on commit menu click (#28744)

Click to expand commit body
Release Notes:

- N/A

Smit Barmase created

d4761ce debugger: Remember pane layout from previous debugger session (#28692)

Click to expand commit body
This PR makes a debugger's pane layout persistent across session's that
use the same debug adapter.

Release Notes:

- N/A

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: Cole Miller <m@cole-miller.net>

Anthony Eid , Piotr Osiewicz , and Cole Miller created

b794919 Add contents_tool (#28738)

Click to expand commit body
This is a combination of the "read file" and "list directory contents"
tools as part of a push to reduce our quantity of builtin tools by
combining some of them.

The functionality is all there for this tool, although there's room for
improvement on the visuals side: it currently always shows the same icon
and always says "Read" - so you can't tell at a glance when it's reading
a directory vs an individual file. Changing this will require a change
to the `Tool` trait, which can be in a separate PR. (FYI @danilo-leal!)

<img width="606" alt="Screenshot 2025-04-14 at 11 56 27 PM"
src="https://github.com/user-attachments/assets/bded72af-6476-4469-97c6-2f344629b0e4"
/>

Release Notes:

- Added `contents` tool

Richard Feldman created

fc1252b collab: Remove LLM service (#28728)

Click to expand commit body
This PR removes the LLM service from collab, as it has been moved to
Cloudflare.

Release Notes:

- N/A

Marshall Bowers created

12b012e language: Further optimize `language_for_file` (#28694)

Click to expand commit body
Follow-up to #28671

This primarily follows two ideas:
1. We currently take the element with the highest score which appears
last in the iterator (see
[`last_by_key`](https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.max_by_key)),
so we can also just reverse the iterator and take the first highest
match instead.
2. Once we have a match with a given precedence, we are not interested
in any matches with a lower or even the same priority, given what was
established in 1. Thus, we also only have to check whether any language
checked afterwards has a higher priority match.

Furthermore, once we have a match with the highest possible precedence,
there is no need to look for any more possible matches. Thus, this PR
also adds short-circuiting for that scenario.

Lastly, I also cleaned-up the custom suffix match (an empty glob-set
will never match so no need to iterate there) as well reorder the
zip-call in the content matches, as we never need the content if there
is no first line pattern present for the checked languages.

Release Notes:

- N/A

Finn Evers created

77f3258 agent: Add some design tweaks (#28726)

Click to expand commit body
Fine-tuning some areas of the Agent Panel design.

Release Notes:

- N/A

Danilo Leal created

0d6e455 Agent eval: output paths to log files at the end (#28724)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

5f897b0 Agent Eval: Fail example when there are no events in 2 minutes (#28725)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

d74f073 Add more eval examples + filtering examples by language + fix git concurrent usage (#28719)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: michael <michael@zed.dev>
Co-authored-by: agus <agus@zed.dev>

Thomas Mickley-Doyle , michael , and agus created

a8b1ef3 google_ai: Remove unused `extract_text_from_events` function (#28723)

Click to expand commit body
This PR removes the `extract_text_from_events` function from
`google_ai`, as it was not used anywhere.

Release Notes:

- N/A

Marshall Bowers created

c8ccc47 Track tool use counts (#28722)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

26b9c32 python: Auto-close f-strings (#28709)

Click to expand commit body
Closes #28707

Release Notes:

- Added support for auto-closing `f`, `b`, `u`, `r`, `rb` and the newly
released `t` strings in Python

Ben Kunkle created

db56254 agent: Apply soft-wrap when message editor is expanded (#28716)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

9d91908 Bump Zed to v0.183 (#28718)

Click to expand commit body
Version was bumped to `v0.183.0` last Wednesday here:
https://github.com/zed-industries/zed/pull/28419
But was accidentally downgraded here:
https://github.com/zed-industries/zed/pull/27964

Release Notes:

- N/A

Joseph T. Lyons created

6b80eb5 Add judge to new eval + provide LSP diagnostics (#28713)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <antonio@zed.dev>
Co-authored-by: agus <agus@zed.dev>

Michael Sloan , Antonio Scandurra , and agus created

2603f36 agent: Improve compatibility when using MCP servers with Gemini models (#28700)

Click to expand commit body
WIP

Release Notes:

- agent: Improve compatibility when using MCPs with Gemini models

Bennet Bo Fenner created

6c93d10 zlog: Ansi styling of zlog output to stdout (#28711)

Click to expand commit body
Co-Authored-By: Zed AI <ai@zed.dev>

Closes #ISSUE

Release Notes:

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

Co-authored-by: Zed AI <ai@zed.dev>

Ben Kunkle and Zed AI created

5b6efa4 copilot_chat: Add Gemini 2.5 Pro support to Copilot Chat (#28660)

Richard Hao created

84aa480 Add support for OpenAI GPT-4.1 models (#28708)

Click to expand commit body
Release Notes:

- Add support for OpenAI GPT-4.1 via Copilot Chat and OpenAI API

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Umesh Yadav , Danilo Leal , and Bennet Bo Fenner created

6db29eb Remove debug assertions in git_store.rs (#28706)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Cole Miller created

ff41be3 Fix bugs with multicursor completions (#28586)

Click to expand commit body
Release Notes:

- Fixed completions with multiple cursors leaving duplicated prefixes.
- Fixed crash when accepting a completion in a multibuffer with multiple
cursors.
- Vim: improved `single-repeat` after accepting a completion, now
pressing `.` to replay the completion will re-insert the completion text
at the cursor position.

João Marcos created

47b663a github: Add Staff-Only 'Other' Issue template (#28703)

Click to expand commit body
This is because
[issues/new](https://github.com/zed-industries/zed/issues/new) now
redirects to
[issues/new/choose](https://github.com/zed-industries/zed/issues/new/choose)
(good!) so you can no longer create issues skipping templates.

Release Notes:

- N/A

Peter Tripp created

1d9915f windows: Implement `AutoUpdater` (#25734)

Click to expand commit body
Part of #24800



https://github.com/user-attachments/assets/e70d594e-3635-4f93-9073-5abf7e9d2b20



Release Notes:

- N/A

张小白 created