Commit log

fa2ff3c collab: Increase `DATABASE_MAX_CONNECTIONS` for Collab server (#35818)

Click to expand commit body
This PR increases the `DATABASE_MAX_CONNECTIONS` limit for the Collab
server to 850 (up from 250).

Release Notes:

- N/A

Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>

Marshall Bowers , Nathan , and Mikayla created

c1d1d1c chore: Bump to taffy 0.9 (#35802)

Click to expand commit body
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Lukas Wirth <lukas@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>

Release Notes:

- N/A

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Lukas Wirth <lukas@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>

Piotr Osiewicz , Anthony Eid , Lukas Wirth , and Ben Kunkle created

efba2cb chore: Bump Rust to 1.89 (#35788)

Click to expand commit body
Release Notes:

- N/A

---------

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

Piotr Osiewicz and Julia Ryan created

2234220 completions: Add subtle/eager behavior to Supermaven and Copilot (#35548)

Click to expand commit body
This pull request introduces changes to improve the behavior and
consistency of multiple completion providers
(`CopilotCompletionProvider`, `SupermavenCompletionProvider`) and their
integration with UI elements like menus and inline completion buttons.
It now allows to see the prediction with the completion menu open whilst
pressing `opt` and also enables the subtle/eager setting that was
introduced with zeta.

Edit: I managed to get the preview working with correct icons!
<img width="909" height="232" alt="image"
src="https://github.com/user-attachments/assets/65800e67-4bc4-40f8-be78-806fcfe74ad9"
/>
<img width="1460" height="318" alt="CleanShot 2025-08-04 at 01 36 31@2x"
src="https://github.com/user-attachments/assets/15651405-720f-465f-a13c-c7470817810a"
/>

Correct icons are also displayed:
<img width="244" height="96" alt="image"
src="https://github.com/user-attachments/assets/0b8a687f-73e3-452d-aefb-784c52831b73"
/>


Edit2: I added some comments, would be very happy to receive feedback
(still learning rust)

Release Notes:

- Added Subtle and Eager edit prediction modes to Copilot and Supermaven

Raphael Lüthy created

dd840e4 editor: Fix multi-buffer headers spilling over at narrow widths (#35800)

Click to expand commit body
Release Notes:

- N/A

Piotr Osiewicz created

262365c keymap editor: Refine how we display matching keystrokes (#35796)

Click to expand commit body
| Before | After |
|--------|--------|
| <img width="1092" height="528" alt="CleanShot 2025-08-07 at 10  54
42@2x"
src="https://github.com/user-attachments/assets/8b0a3b50-e1d1-4763-824c-2b419df430fc"
/> | <img width="1096" height="580" alt="CleanShot 2025-08-07 at 11  29
47@2x"
src="https://github.com/user-attachments/assets/bd484655-90a6-46fe-91ef-c9c8d2ab93bc"
/> |

Release Notes:

- N/A

Danilo Leal created

90fa06d Fix file unlocking after closing the workspace (#35741)

Click to expand commit body
Release Notes:

- Fixed folders being locked after closing them in zed

localcc created

740686b Batch diagnostics updates (#35794)

Click to expand commit body
Diagnostics updates were programmed in Zed based off the r-a LSP push
diagnostics, with all related updates happening per file.

https://github.com/zed-industries/zed/pull/19230 and especially
https://github.com/zed-industries/zed/pull/32269 brought in pull
diagnostics that could produce results for thousands files
simultaneously.

It was noted and addressed on the local side in
https://github.com/zed-industries/zed/pull/34022 but the remote side was
still not adjusted properly.

This PR 

* removes redundant diagnostics pull updates on remote clients, as
buffer diagnostics are updated via buffer sync operations separately
* batches all diagnostics-related updates and proto messages, so
multiple diagnostic summaries (per file) could be sent at once,
specifically, 1 (potentially large) diagnostics summary update instead
of N*10^3 small ones.

Buffer updates are still sent per buffer and not updated, as happening
separately and not offending the collab traffic that much.

Release Notes:

- Improved diagnostics performance in the collaborative mode

Kirill Bulatov created

a5c25e0 agent: Improve end of trial card display (#35789)

Click to expand commit body
Now rendering the backdrop behind the card to clean up the UI, bring
focus to the card's content, and direct the user to act on it, either by
ignoring it or upgrading.

<img width="500" height="1242" alt="CleanShot 2025-08-07 at 10  30
58@2x"
src="https://github.com/user-attachments/assets/8c6b9c34-eb22-4f01-b3fa-158ac78b7439"
/>

Release Notes:

- N/A

Danilo Leal created

305c653 Add icons for Puppet files (#35778)

Click to expand commit body
Release Notes:

- Added icon for Puppet (.pp) files

Actually puppet icons are available in the extension here :
<https://github.com/AlexandarY/zed-puppet/tree/main/icon_themes>

---------

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

Tongue_chaude and Danilo Leal created

e227b5a onboarding: Add young account treatment to AI upsell card (#35785)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

03876d0 Add system prompt and tool permission to agent2 (#35781)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Antonio Scandurra , Ben Brandt , and Max Brunsfeld created

4dbd24d Reduce amount of allocations in RustLsp label handling (#35786)

Click to expand commit body
There can be a lot of completions after all


Release Notes:

- N/A

Lukas Wirth created

c397027 Add `release_channel` into the span fields list (#35783)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/35729

Release Notes:

- N/A

Co-authored-by: Marshall Bowers <marshall@zed.dev>

Kirill Bulatov and Marshall Bowers created

f5f837d languages: Fix rust completions not having proper detail labels (#35772)

Click to expand commit body
rust-analyzer changed the format here a bit some months ago which
partially broke our nice detailed highlighted completion labels. The
brings that back while also cleaning up the code a bit.

Also fixes a bug where disabling rust-analyzers snippet callable
completions would fully break them.

Release Notes:

- N/A

Lukas Wirth created

5b1b3c5 language_models: Fix high memory consumption while using Agent Panel (#35764)

Click to expand commit body
Closes #31108

The `num_tokens_from_messages` method we use from `tiktoken-rs` creates
new BPE every time that method is called. This creation of BPE is
expensive as well as has some underlying issue that keeps memory from
releasing once the method is finished, specifically noticeable on Linux.
This leads to a gradual increase in memory every time that method is
called in my case around +50MB on each call. We call this method with
debounce every time user types in Agent Panel to calculate tokens. This
can add up really fast.

This PR lands quick fix, while I/maintainers figure out underlying
issue. See upstream discussion:
https://github.com/zurawiki/tiktoken-rs/issues/39.

Here on fork https://github.com/zed-industries/tiktoken-rs/pull/1,
instead of creating BPE instances every time that method is called, we
use singleton BPE instances instead. So, whatever memory it is holding
on to, at least that is only once per model.

Before: Increase of 700MB+ on extensive use

On init:
<img width="500" alt="prev-init"
src="https://github.com/user-attachments/assets/70da7c44-60cb-477b-84aa-7dd579baa3da"
/>
First message:
<img width="500" alt="prev-first-call"
src="https://github.com/user-attachments/assets/599ffc48-3ad3-4729-b94c-6d88493afdbf"
/>
Extensive use:
<img width="500" alt="prev-extensive-use"
src="https://github.com/user-attachments/assets/e0e6b688-6412-486d-8b2e-7216c6b62470"
/>

After: Increase of 50MB+ on extensive use
On init:
<img width="500" alt="now-init"
src="https://github.com/user-attachments/assets/11a2cd9c-20b0-47ae-be02-07ff876e68ad"
/>
First message:
<img width="500" alt="now-first-call"
src="https://github.com/user-attachments/assets/ef505f8d-cd31-49cd-b6bb-7da3f0838fa7"
/>
Extensive use: 
<img width="500" alt="now-extensive-use"
src="https://github.com/user-attachments/assets/513cb85a-a00b-4f11-8666-69103a9eb2b8"
/>

Release Notes:

- Fixed issue where Agent Panel would cause high memory consumption over
prolonged use.

smit created

b4a441f Add UnwrapSyntaxNode action (#31421)

Click to expand commit body
Remake of #8967

> Hey there,
> 
> I have started relying on this action, that I've also put into VSCode
as [an extension](https://github.com/Gregoor/soy). On some level I don't
know how people code (cope?) without it:
> 
> Release Notes:
> 
> * Added UnwrapSyntaxNode action
> 
>
https://github.com/zed-industries/zed/assets/4051932/d74c98c0-96d8-4075-9b63-cea55bea42f6
> 
> Since I had to put it into Zed anyway to make it my daily driver, I
thought I'd also check here if there's an interest in shipping it by
default (that would ofc also personally make my life better, not having
to maintain my personal fork and all).
> 
> If there is interest, I'd be happy to make any changes to make this
more mergeable. Two TODOs on my mind are:
> 
> * unwrap multiple into single (e.g. `fn(≤a≥, b)` to `fn(≤a≥)`)
> * multi-cursor
> * syntax awareness, i.e. only unwrap if it does not break syntax (I
added [a coarse version of that for my VSC
extension](https://github.com/Gregoor/soy/blob/main/src/actions/unwrap.ts#L29))
> 
> Somewhat off-topic: I was happy to see that you're
[also](https://github.com/Gregoor/soy/blob/main/src/actions/unwrap.test.ts)
using rare special chars in test code to denote cursor positions.


Release Notes:

- Added UnwrapSyntaxNode action

---------

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

Gregor and Peter Tripp created

f1e69f6 gpui: Impl Default for ClickEvent (#35751)

Click to expand commit body
While default for ClickEvent shouldn't be used much this is helpful for
other projects using gpui besides Zed. Mainly because the orphan rule
prevents those projects from implementing their own default trait

cc: @huacnlee 

Release Notes:

- N/A

Anthony Eid created

bd1c26c Fix interrupting ACP threads and CC cancellation (#35752)

Click to expand commit body
Fixes a bug where generation wouldn't continue after interrupting the
agent, and improves CC cancellation so we don't display "[Request
interrupted by user]"

Release Notes:

- N/A

---------

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

Agus Zubiaga and Cole Miller created

1907b16 Establish WebSocket connection to Cloud (#35734)

Click to expand commit body
This PR adds a new WebSocket connection to Cloud.

This connection will be used to push down notifications from the server
to the client.

Release Notes:

- N/A

---------

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

Richard Feldman and Marshall Bowers created

c595a75 Fix git hunk staging on windows (#35755)

Click to expand commit body
We were failing to flush the Git process's `stdin` before dropping it.

Release Notes:

- N/A

Max Brunsfeld created

8e290b4 thread view: Add UI refinements (#35754)

Click to expand commit body
More notably around how we render tool calls. Nothing too drastic,
though.

Release Notes:

- N/A

Danilo Leal created

58392b9 cloud_api_types: Add types for WebSocket protocol (#35753)

Click to expand commit body
This PR adds types for the Cloud WebSocket protocol to the
`cloud_api_types` crate.

Release Notes:

- N/A

Marshall Bowers created

9358690 Fix flicker when agent plan updates (#35739)

Click to expand commit body
Currently, when the agent updates its plan, there are a few frames where
the text after `Current:` in the plan summary is blank, causing a
flicker. This is because we treat that field as markdown, and the
`MarkdownElement` renders as blank until the raw text has finished
parsing in the background.

This PR fixes the flicker by changing `Markdown::new_text` to
optimistically render the source as a single `MarkdownEvent::Text` span
until background parsing has finished.

Release Notes:

- N/A

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

Cole Miller and Agus Zubiaga created

3ea90e3 debugger: Filter out debug scenarios with invalid Adapters from debug picker (#35744)

Click to expand commit body
I also removed a debug assertion that wasn't true when a debug session
was restarting through a request, because there wasn't a booting task
Zed needed to run before the session.

I renamed SessionState::Building to SessionState::Booting as well,
because building implies that we're building code while booting the
session covers more cases and is more accurate.

Release Notes:

- debugger: Filter out more invalid debug configurations from the debug
picker

Co-authored-by: Remco Smits <djsmits12@gmail.com>

Anthony Eid and Remco Smits created

a5dd8d0 Recognize pixi.lock as YAML (#35747)

Click to expand commit body
Release Notes:

- N/A

Peter Tripp created

250c51b Fix syntax highlighting in ACP diffs (#35748)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

010441e debugger: Show run to cursor in editor's context menu (#35745)

Click to expand commit body
This also fixed a bug where evaluate selected text was an available
option when the selected debug session was terminated.


Release Notes:

- debugger: add Run to Cursor back to Editor's context menu

Co-authored-by: Remco Smits <djsmits12@gmail.com>

Anthony Eid and Remco Smits created

f9038f6 Add key contexts for Pickers (#35665)

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

Added:
- Workspace > CommandPalette
- Workspace > GitBranchSelector
- Workspace > GitRepositorySelector
- Workspace > RecentProjects
- Workspace > LanguageSelector
- Workspace > IconThemeSelector
- Workspace > ThemeSelector

Release Notes:

- Added new keymap contexts for various Pickers - CommandPalette,
GitBranchSelector, GitRepositorySelector, RecentProjects,
LanguageSelector, IconThemeSelector, ThemeSelector

Peter Tripp created

a80da78 lsp: Advertise support for markdown in completion documentation (#35727)

Click to expand commit body
Release Notes:

- N/A

xdBronch created

fb1f9d1 lsp: Correctly serialize errors for LSP requests + improve handling of unrecognized methods (#35738)

Click to expand commit body
We used to not respond at all to requests that we didn't have a handler
for, which is yuck. It may have left the language server waiting for the
response for no good reason. The other (worse) finding is that we did
not have a full definition of an Error type for LSP, which made it so
that a spec-compliant language server would fail to deserialize our
response (with an error). This then could lead to all sorts of
funkiness, including hangs and crashes on the language server's part.

Co-authored-by: Lukas <lukas@zed.dev>
Co-authored-by: Remco Smits <djsmits12@gmail.com>

Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Closes #ISSUE

Release Notes:

- Improved reporting of errors to language servers, which should improve
the stability of LSPs ran by Zed.

---------

Co-authored-by: Lukas <lukas@zed.dev>
Co-authored-by: Remco Smits <djsmits12@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Piotr Osiewicz , Lukas , Remco Smits , and Anthony Eid created

794098e Update instructions for local collaboration (#35689)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

b08e26d collab: Remove unused `StripeBilling` methods (#35740)

Click to expand commit body
This PR removes some unused methods from the `StripeBilling` object.

Release Notes:

- N/A

Marshall Bowers created

7405974 collab: Remove Stripe events polling (#35736)

Click to expand commit body
This PR removes the Stripe event polling from Collab, as it has been
moved to Cloud.

Release Notes:

- N/A

Marshall Bowers created

ebda6b8 keymap_ui: Show matching bindings (#35732)

Click to expand commit body
Closes #ISSUE

Adds a bit of text in the keybind editing modal when there are existing
keystrokes with the same key, with the ability for the user to click the
text and have the keymap editor search be updated to show only bindings
with those keystrokes

Release Notes:

- Keymap Editor: Added a warning to the keybind editing modal when
existing bindings have the same keystrokes. Clicking the warning will
close the modal and show bindings with the entered keystrokes in the
keymap editor. This behavior was previously possible with the
`keymap_editor::ShowMatchingKeybinds` action in the Keymap Editor, and
is now present in the keybind editing modal as well.

Ben Kunkle created

55b4df4 Add a way to distinguish metrics by Zed's release channel (#35729)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>

Kirill Bulatov and Oleksiy Syvokon created

b8e8fbd ollama: Add support for gpt-oss (#35648)

Click to expand commit body
There is a know bug when calling tool discussion:
https://discord.com/channels/1128867683291627614/1402385744038858853
I have raised the issue with ollama team and they are currently fixing
it.

Release Notes:

- ollama: Add support for gpt-oss

Umesh Yadav created

33f198f Thread view scrollbar (#35655)

Click to expand commit body
This also adds a convenient `Scrollbar:auto_hide` function so that we
don't have to handle that at the callsite.

Release Notes:

- N/A

---------

Co-authored-by: David Kleingeld <davidsk@zed.dev>

Agus Zubiaga and David Kleingeld created

3c602fe docs: Cleanup tool use documentation (#35725)

Click to expand commit body
Remove redundant documentation about tool use.

Release Notes:

- N/A

Peter Tripp created

334bdd0 Fix acp thread entry width (#35723)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

69dc870 Fix CC todo tool parsing (#35721)

Click to expand commit body
It looks like the TODO tool call no longer requires a priority.

Release Notes:

- N/A

Agus Zubiaga created

22fa41e Handle CC thinking (#35722)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

7e790f5 Bump Zed to v0.200 (#35719)

Click to expand commit body
🎉

Release Notes:

-N/A

Joseph T. Lyons created

3bbd32b Support CC `migrate-installer` path (#35717)

Click to expand commit body
If we can't find CC in the PATH, we'll now fall back to a known local
install path.

Release Notes:

- N/A

Agus Zubiaga created

ecd182c Drop native agent session when `AcpThread` gets released (#35713)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

Antonio Scandurra and Ben Brandt created

6f5867f Fetch models right after signing in (#35711)

Click to expand commit body
This uses the `current_user` watch in the `UserStore` instead of looping
every 100ms in order to detect if the user had signed in.

We are changing this because we noticed it was causing the deterministic
executor in tests to never detect a "parking with nothing left to run"
situation.

This seems better in production as well, especially for users who never
sign in.

/cc @maxdeviant 

Release Notes:

- N/A

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

Antonio Scandurra and Ben Brandt created

0302f63 Ignore metadata file in `RustLspAdapter::get_cached_server_binary` (#35708)

Click to expand commit body
Follows https://github.com/zed-industries/zed/pull/35642

Release Notes:

- Fixed accidentally picking a non executable as a rust-analyzer server
when downloading fails

Lukas Wirth created

eb4b73b ACP champagne (#35609)

Click to expand commit body
cherry pick changes from #35510 onto latest main

Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Lukas Wirth <lukas@zed.dev>

Ben Brandt , Nathan Sobo , Antonio Scandurra , and Lukas Wirth created

69794db Prevent out of bounds access in `recursive_score_match` (#35630)

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

The recursive case increments both indices by 1, but only one of the two
had a base case check in the function prologue so the other could spill
over into a different matrix row or out of bounds entirely.

Lacking a test as I haven't figured out a test case yet.

Release Notes:

- Fixed out of bounds panic in fuzzy matching

Lukas Wirth created

c59c436 Verify downloaded rust-analyzer and clang binaries by checking the artifact digest (#35642)

Click to expand commit body
Release Notes:

- Added GitHub artifact digest verification for rust-analyzer and clangd
binary downloads, skipping downloads if cached binary digest is up to
date
- Added verification that cached rust-analyzer and clangd binaries are
executable, if not they are redownloaded

---------

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

Lukas Wirth and Kirill Bulatov created