Commit log

738968e editor: Consider mixed hover link kinds when navigating to multibuffer (#35828)

Click to expand commit body
Previously when handling multiple hover links we filtered non-location
links out which may end up with a single location entry only, resulting
in us opening a multi buffer for a single location. This changes the
logic to do the filtering first, then deciding on whether to open a
single buffer or multi buffer.

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

Release Notes:

- N/A

Lukas Wirth created

edef1f1 Fix acp generating status after stop (#35852)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

3bee803 Use TMPDIR environment variable in install script (#35636)

Click to expand commit body
## Summary
This PR updates the install script to respect the `TMPDIR` environment
variable when creating temporary directories.

## Motivation
Some environments have non-standard temporary directory locations or
restrictions on `/tmp`. This change allows users to specify an
alternative temporary directory by setting the `TMPDIR` environment
variable.

## Changes
- Check if `TMPDIR` is set and points to a valid directory
- Use `$TMPDIR` for temporary files if available
- Fall back to `/tmp` if `TMPDIR` is not set or invalid

## Testing
Tested the script with:
- `TMPDIR` unset (uses `/tmp` as before)
- `TMPDIR` set to a valid directory (uses specified directory)
- `TMPDIR` set to an invalid path (falls back to `/tmp`)

This change maintains backward compatibility while adding flexibility
for environments with non-standard temporary directory requirements.

Release Notes:

- N/A

Anne Schuth created

2c7251e Add setting to hide active language button in the status bar (#33977)

Click to expand commit body
Release Notes:

- Added settings status_bar.show_active_language_button to show/hide the
language button in the status bar.

The motivation for this is visual, I have had zero issues with its
functionality.

The language switcher can still be accessed by the command palette,
menu, or a keyboard shortcut.

------

This is my first Zed and first Rust PR, so criticism is very welcome. 

I know there has been discussion around how the status bar settings are
structured and named, and I am happy to change it to whatever is best. I
was also not sure what order to put it in in the settings default.json.
Feedback welcome.

Here is a picture of it in action:


![image](https://github.com/user-attachments/assets/c50131e2-71aa-4fab-8db0-8b2aae586e71)

---------

Co-authored-by: zumbalogy <3770982+zumbalogy@users.noreply.github.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>

zumbalogy , zumbalogy , and Kirill Bulatov created

0169bdd project panel: Add setting to disable auto opening project panel (#34752)

Click to expand commit body
Release Notes:

- Add `project_panel.starts_open` to control opening project panel in
new projects.

maan2003 created

9edc01d Update nightly icon on windows (#35812)

Click to expand commit body
Release Notes:

- N/A

Max Brunsfeld created

d6022dc emmet: Enable in Vue.js files (#35599)

Click to expand commit body
Resolves part of #34337

Actually I need also to add:

```
"languages": {
    "Vue.js": {
      "language_servers": [
        "vue-language-server",
        "emmet-language-server",
        "..."
      ]
    }
  },
```

not sure how to resolve fully, happy to continue only little guidance
needed.

Release Notes:

- allow emmet in Vue.js files

---------

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

Samuel and Marshall Bowers created

0dd480d Add spread operator to the @operator list for ECMAScript languages (#35360)

Click to expand commit body
Previously, this was the one thing that could not be styled properly in
ecmascript languages in the zed config, because it was not able to be
targeted.

Now, it is added alongside other operators. This has been tested and
works as expected.

Release Notes:

- N/A

Dan Wood created

34fc2fd Treat Arduino files as C++ (#35467)

Click to expand commit body
Closes https://github.com/zed-industries/zed/discussions/35466

Release Notes:

- N/A

Phoenix Himself created

00701b5 git_hosting_providers: Extract Bitbucket pull request number (#34584)

Click to expand commit body
git: Extract Bitbucket pull request number

Release Notes:

- git: Extract Bitbucket pull request number

---------

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

Neo Nie and Peter Tripp created

cdfb334 git: Make inline blame padding configurable (#33631)

Click to expand commit body
Just like with diagnostics, adding a configurable padding to inline
blame

Release Notes:

- Added configurable padding to inline blame

---------

Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Peter Tripp <petertripp@gmail.com>

Abdelhakim Qbaich , Cole Miller , and Peter Tripp created

35cd1b9 filter out comments in deploy helper env vars (#35847)

Click to expand commit body
Turns out a `.sh` file isn't actually a shell script :(

Release Notes:

- N/A

Mikayla Maki created

bd402fd editor: Fix Follow Agent unexpectedly stopping during edits (#35845)

Click to expand commit body
Closes #34881

For horizontal scroll, we weren't keeping track of the `local` bool, so
whenever the agent tries to autoscroll horizontally, it would be seen as
a user scroll event resulting in unfollow.

Release Notes:

- Fixed an issue where the Follow Agent could unexpectedly stop
following during edits.

smit created

c7d641e Revert "chore: Bump Rust to 1.89 (#35788)" (#35843)

Click to expand commit body
This reverts commit efba2cbfd371bdd85dc3bfdd6b98d1d405ad9a89.

Unfortunately, the Docker image for 1.89 has not shown up yet. Once it
has, we should re-land this.

Release Notes:

- N/A

Mikayla Maki created

3d662ee agent2: Port read_file tool (#35840)

Click to expand commit body
Ports the read_file tool from `assistant_tools` to `agent2`. 

Note: Image support not implemented.

Release Notes:

- N/A

Agus Zubiaga created

7d4d8b8 Add GPT-5 support through OpenAI API (#35822)

Click to expand commit body
(This PR does not add GPT-5 to Zed Pro, but rather adds access if you're
using your own OpenAI API key.)

<img width="772" height="333" alt="Screenshot 2025-08-07 at 2 23 18 PM"
src="https://github.com/user-attachments/assets/42e75082-118a-4737-89b6-a740ae33b169"
/>

---

**NOTE:** If your API key is not through a verified organization, you
may see this error:

<img width="549" height="253" alt="Screenshot 2025-08-07 at 2 04 54 PM"
src="https://github.com/user-attachments/assets/d0b6d739-9c39-4af3-88d7-0c9609b0e6ba"
/>

Even if your org is verified, you still may not have access to GPT-5, in
which case you could see this error:

<img width="543" height="98" alt="Screenshot 2025-08-07 at 2 09 18 PM"
src="https://github.com/user-attachments/assets/e3ed31e3-2a11-4f07-8f3c-5b410fbe4540"
/>

One way to test if you're in this situation is to visit
https://platform.openai.com/chat/edit?models=gpt-5 and see if you get
the same "you don't have access to GPT-5" error on OpenAI's official
playground. It looks like this:

<img width="581" height="196" alt="Screenshot 2025-08-07 at 2 15 25 PM"
src="https://github.com/user-attachments/assets/ea1454ca-3c10-4703-8126-c02cb92a34f2"
/>

Release Notes:

- Added GPT-5, as well as its mini and nano variants. To use this, you
need to have an OpenAI API key configured via the `OPENAI_API_KEY`
environment variable.

Richard Feldman created

6912dc8 Fix CC tool state on cancel (#35763)

Click to expand commit body
When we stop the generation, CC tells us the tool completed, but it was
actually cancelled.

Release Notes:

- N/A

Agus Zubiaga created

952e371 ci: Switch to Namespace (#35835)

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

Release Notes:

- N/A

Peter Tripp created

913e9ad Move timing fields into span (#35833)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

50482a6 language_model: Refresh the LLM token upon receiving a `UserUpdated` message from Cloud (#35839)

Click to expand commit body
This PR makes it so we refresh the LLM token upon receiving a
`UserUpdated` message from Cloud over the WebSocket connection.

Release Notes:

- N/A

Marshall Bowers created

d110459 collab_ui: Show signed-out state when not connected to Collab (#35832)

Click to expand commit body
This PR updates signed-out state of the Collab panel to show when not
connected to Collab, as opposed to just when the user is signed-out.

Release Notes:

- N/A

Marshall Bowers created

d693f02 Settings: fix release channel settings not being respected (#35838)

Click to expand commit body
Typo in #35756 

Release Notes:

- N/A

Cole Miller created

90fa921 Wire up find_path tool in agent2 (#35799)

Click to expand commit body
Release Notes:

- N/A

---------

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

Ben Brandt and Antonio Scandurra created

11efa32 client: Only connect to Collab automatically for Zed staff (#35827)

Click to expand commit body
This PR makes it so that only Zed staff connect to Collab automatically.

Anyone else can connect to Collab manually when they want to collaborate
(but this is not required for using Zed's LLM features).

Release Notes:

- N/A

---------

Co-authored-by: Richard <richard@zed.dev>

Marshall Bowers and Richard created

e6dc6fa Don't insert resource links for @mentions that have been removed from the message editor (#35831)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

070f7db onboarding: Add fast-follow adjustments (#35814)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

106d4cf client: Re-fetch the authenticated user when receiving a `UserUpdated` message from Cloud (#35807)

Click to expand commit body
This PR wires up handling for the new `UserUpdated` message coming from
Cloud over the WebSocket connection.

When we receive this message we will refresh the authenticated user.

Release Notes:

- N/A

Co-authored-by: Richard <richard@zed.dev>

Marshall Bowers and Richard created

a1080a0 Update diff editor font size when agent_font_size setting changes (#35834)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

7679db9 ci: Switch from BuildJet to GitHub runners (#35826)

Click to expand commit body
In response to an ongoing BuildJet outage, consider migrating CI to
GitHub hosted runners.

Also includes revert of (causing flaky tests):
- https://github.com/zed-industries/zed/pull/35741

Downsides:
- Cost (2x)
- Force migration to Ubuntu 22.04 from 20.04 will bump our glibc minimum
from 2.31 to 2.35. Which would break RHEL 9.x (glibc 2.34), Ubuntu 20.04
(EOL) and derivatives.

Release Notes:

- N/A

Peter Tripp created

9ade399 workspace: Don't update platform window title if title has not changed (#34753)

Click to expand commit body
Closes #34749 #34715

Release Notes:

- Fixed window title X event spam

Fabian Bergström created

e8db429 project_panel: Add file comparison function, supports selecting files for comparison (#35255)

Click to expand commit body
Closes https://github.com/zed-industries/zed/discussions/35010
Closes https://github.com/zed-industries/zed/issues/17100
Closes https://github.com/zed-industries/zed/issues/4523

Release Notes:

- Added file comparison function in project panel

---------

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

mcwindy and Kirill Bulatov created

53b69d2 Actually update remote collab capabilities (#35809)

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

Release Notes:

- N/A

Kirill Bulatov created

e2e147a Add OS specific settings (#35756)

Click to expand commit body
Release Notes:

- Settings can now be configured per operating system with the new
top-level fields: `"macos"`/`"windows"`/`"linux"`. These will override
user level settings, but are lower precedence than _release channel_
settings.

Julia Ryan created

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