Commit log

6223d04 docs: Add note about enabling Copilot models in GitHub settings (#32885)

Click to expand commit body
Seen this in a bunch of issues now, so hopefully this will help.

Release Notes:

- N/A

Bennet Bo Fenner created

c7dad1c Use more conservative settings for the minimap display (#32878)

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

Release Notes:

- N/A

Kirill Bulatov created

d5472bc Document zed CLI (#32879)

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

Release Notes:

- N/A

Kirill Bulatov created

b1e59b1 Revert "debugger: Remove feature flag"

Click to expand commit body
This reverts commit 82dfa82ba7c9866153bcd739ee680e6adf4f955f.

Conrad Irwin created

82dfa82 debugger: Remove feature flag

Conrad Irwin created

5405c2c Standardize on u64 for token counts (#32869)

Click to expand commit body
Previously we were using a mix of `u32` and `usize`, e.g. `max_tokens:
usize, max_output_tokens: Option<u32>` in the same `struct`.

Although [tiktoken](https://github.com/openai/tiktoken) uses `usize`,
token counts should be consistent across targets (e.g. the same model
doesn't suddenly get a smaller context window if you're compiling for
wasm32), and these token counts could end up getting serialized using a
binary protocol, so `usize` is not the right choice for token counts.

I chose to standardize on `u64` over `u32` because we don't store many
of them (so the extra size should be insignificant) and future models
may exceed `u32::MAX` tokens.

Release Notes:

- N/A

Richard Feldman created

a391d67 supermaven_api: Ensure downloaded Supermaven binary has executable permissions set (#32576)

Click to expand commit body
Closes #32068
Closes #15653

Not entirely sure that it fixes the latter issue, but I am fairly
certain given the comments in #32068 and the available logs in the
issue.

This PR fixes an issue where the Supermaven provider would not leave the
"Initializing" stage. This happened due to the downloaded binary missing
executable permissions. The change here ensures that freshly downloaded
binaries as well as existing binaries downloaded by Zed have executable
permissions set. I decided on also adding this for the latter since
existing downloads would continue to be broken and Supermaven does not
seem to change versions often given the logs provided by users.


While I was at it, I also added a `make_file_executable` to the util
crate mirroring the method of the `zed_extensions_api` and refactored
existing usages where possible to use that method instead. This makes
the code slightly more readable in my opinion, yet adds a method to
non-unix systems that practically does nothing. I can revert this should
that be preferred.


Release Notes:

- Fixed an issue where the Supermaven completion provider would not
leave the "Initializing" stage.

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Finn Evers and Bennet Bo Fenner created

dd850dc Add note on Opus prompt consumption (#32872)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

morgankrey created

c766f52 Fix diff indicators not restored when reopening remote project (#31384)

Click to expand commit body
Closes #30917

Release Notes:

- Fix diff indicators not restored when reopening remote project

---------

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

feeiyu and Cole Miller created

b686fb2 docs: Fix typo in debugger.md (#32867)

Click to expand commit body
A small silly typo :)

Gilles De Mey created

6c7bcfe Revert "Bail and signal error when the cwd of a resolved task doesn't exist" (#32866)

Click to expand commit body
Reverts zed-industries/zed#32777

Cole Miller created

b9dc5f9 gpui: Bump blade (#32803)

Click to expand commit body
in #30347 bump blade version, recently I found in my windows platform,
after using zed some hours, whole system UI become hang, must reboot.

So I try bump blade and then recompile, I found this problem disappear,
I really don't known why.

Release Notes:

- N/A

CharlesChen0823 created

3eca9ef docs: Add values.yaml files to filetypes for Helm (#32369)

Click to expand commit body
Release Notes:

- N/A

qvalentin created

f469575 Show inline previews for LSP document colors (#32816)

Click to expand commit body
https://github.com/user-attachments/assets/ad0fa304-e4fb-4598-877d-c02141f35d6f

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

Also adds the code to support `textDocument/colorPresentation`
counterpart that serves as a resolve mechanism for the document colors.
The resolve itself is not run though, and the editor does not
accommodate color presentations in the editor yet — until a well
described use case is provided.

Use `lsp_document_colors` editor settings to alter the presentation and
turn the feature off.

Release Notes:

- Start showing inline previews for LSP document colors

Kirill Bulatov created

acb0210 Add epoch interruption to WASM engine for cooperative yielding (#32806)

Click to expand commit body
Prevent extensions from blocking async threads by enabling epoch
interruption with 100ms intervals. Extensions will yield control back to
the executor regularly during Future::poll operations.

Addresses the
[discussion](https://github.com/zed-industries/zed/discussions/24515)
that goes into depth on why this is important when enabling async
support with Wasmtime.

Release Notes:

- N/A

Ben Brandt created

4bbb7b5 Add setting for minimap on active editor only (#31390)

Click to expand commit body
Release Notes:

- Add a setting to show the minimap only on the current active editor
(file)
- This can be configured on `settings.json`: 
```json
{
  "minimap": {
    "display_in": "active_editor", //  defaults to "all_editors"
  }
}

```

- The minimap won't hide if you go from an editor pane to the terminal,
the project panel, the search bar, etc. It will only hide if you go from
one editor pane to another.

Preview:


![image](https://github.com/user-attachments/assets/87b476a2-148b-497e-9e97-ea390c545c87)

Only the active editor (left) displays the minimap.

Alvaro Parker created

a69ebf0 debugger: Prevent port collision when attaching to existing node debugger (#32862)

Click to expand commit body
We were translating port configuration incorrectly, using it for both
attach target and debugger port.
This however meant that we were spawning a 2nd process that'd listen on
the same port as the existing debugger.

Closes #32836

Release Notes:

- debugger: Fixed issues with auto-translated Visual Studio Code debug
configs for attaching to existing node debugger instances.

Piotr Osiewicz created

336c49b debuggers: Mark processId as optional field in Delve Attach configurations (#32856)

Click to expand commit body
Closes #32849

Release Notes:

- Fixed overly strict validation of Go debugging configurations.

Piotr Osiewicz created

ed4b29f language_models: Improve token counting for providers (#32853)

Click to expand commit body
We push the usage data whenever we receive it from the provider to make
sure the counting is correct after the turn has ended.

- [x] Ollama 
- [x] Copilot 
- [x] Mistral 
- [x] OpenRouter 
- [x] LMStudio

Put all the changes into a single PR open to move these to separate PR
if that makes the review and testing easier.

Release Notes:

- N/A

Umesh Yadav created

d4c9522 debugger: Do not query threads when session is still building (#32852)

Click to expand commit body
This should silence a noisy log we see whenever a debug session is
started:
`2025-06-17T12:06:12+02:00 ERROR [project] no adapter running to send
request: ThreadsCommand`

Closes #ISSUE

Release Notes:

- Fixed debugger logs getting clobbered with internal logs about Threads
Command whenever a new debug session is created.

Piotr Osiewicz created

4b88090 language_models: Add images support to LMStudio provider (#32741)

Click to expand commit body
Tested with gemma3:4b
LMStudio: beta version 0.3.17

Release Notes:

- Add images support to LMStudio provider

Umesh Yadav created

6ad9a66 extensions: Add "Debug Adapters" category to the extension store (#32845)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

b13144e copilot: Allow enterprise to sign in and use copilot (#32296)

Click to expand commit body
This addresses:
https://github.com/zed-industries/zed/pull/32248#issuecomment-2952060834.

This PR address two main things one allowing enterprise users to use
copilot chat and completion while also introducing the new way to handle
copilot url specific their subscription. Simplifying the UX around the
github copilot and removes the burden of users figuring out what url to
use for their subscription.

- [x] Pass enterprise_uri to copilot lsp so that it can redirect users
to their enterprise server. Ref:
https://github.com/github/copilot-language-server-release#configuration-management
- [x] Remove the old ui and config language_models.copilot which allowed
users to specify their copilot_chat specific endpoint. We now derive
that automatically using token endpoint for copilot so that we can send
the requests to specific copilot endpoint for depending upon the url
returned by copilot server.
- [x] Tested this for checking the both enterprise and non-enterprise
flow work. Thanks to @theherk for the help to debug and test it.
- [ ] Udpdate the zed.dev/docs to refelect how to setup enterprise
copilot.

What this doesn't do at the moment:

* Currently zed doesn't allow to have two seperate accounts as the token
used in chat is same as the one generated by lsp. After this changes
also this behaviour remains same and users can't have both enterprise
and personal copilot installed.

P.S: Might need to do some bit of code cleanup and other things but
overall I felt this PR was ready for atleast first pass of review to
gather feedback around the implementation and code itself.


Release Notes:

- Add enterprise support for GitHub copilot

---------

Signed-off-by: Umesh Yadav <git@umesh.dev>

Umesh Yadav created

c4355d2 Fix MCP settings migration continually adding the same key (#32848)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

2f3acb6 Fix panic when `editor::OpenSelectionsInMultibuffer` only has pending selection (#32842)

Click to expand commit body
On the panics dashboard, saw this panic of `There must be at least one
selection` in `open_locations_in_multibuffer`. Only seems to have
happened once in the past month.

Fix is to include the pending selection. Since `selections.all()` cannot
provide anchor selections, added `selections.all_anchors()` which only
really does any work if there is a pending selection.

Also fixes a corner case in jump-to-definitions where if the definition
is `HoverLink::InlayHint` and the `compute_target_location` fails for
all definitions it could potentially also trigger this case (and return
`Navigated::Yes` instead of `Navigated::No`

Release Notes:

- N/A

Michael Sloan created

0e794fa extensions: Yet another PR for debugger touchups (#32822)

Click to expand commit body
We'll now clean up DAP locators for unloaded extensions and load schemas
proper

I can now load a custom Ruby extensions with all bells and whistles and
use it as my debugger.

Release Notes:

- N/A

Piotr Osiewicz created

d92d52b Attempt to log error instead of crash in bracket highlighting (#32837)

Click to expand commit body
Crashes look like:

```
Panic `offset 632 is greater than the snapshot.len() 631` on thread 0 (com.apple.main-thread)

<multi_buffer::MultiBufferSnapshot>::innermost_enclosing_bracket_ranges::<usize>
editor::highlight_matching_bracket::refresh_matching_bracket_highlights
<gpui::app::App>::update_window_id::<bool, <gpui::app::context::Context<editor::Editor>>::subscribe_in<multi_buffer::MultiBuffer, multi_buffer::Event, <editor::Editor>::on_buffer_event>::{closure#0}::{closure#0}>::{closure#0}
<gpui::app::context::Context<editor::Editor>>::subscribe_in::<multi_buffer::MultiBuffer, multi_buffer::Event, <editor::Editor>::on_buffer_event>::{closure#0}
<gpui::app::App>::flush_effects
<project::lsp_store::LocalLspStore>::format_buffer_locally::{closure#0}
<project::lsp_store::LspStore>::format::{closure#1}::{closure#0}::<i32>
```

Though `format_buffer_locally` is not always present. Both issue reports
mention usage of the agent. I suspect this is somehow a result of agent
format-on-save combined with the user's cursor being at the end of the
buffer as it's getting edited by the agent.

The offsets are always off-by-one in the error, so at first I thought
the issue was the condition `head < snapshot.buffer_snapshot.len()`
before setting `tail` to be `head + 1`, but an offset equal to len is
valid. Seems like to get a `to_offset` crash, `head` must be greater
than `len`. Which is quite weird, a selection's offset should never be
out of bounds.

Since this code is just about highlighting brackets, this PR logs an
error instead of crashing in the `head > len` case.

Closes #32732, #32171

Release Notes:

- N/A

Michael Sloan created

109651e debugger: Fix connections over SSH (#32834)

Click to expand commit body
Before this change, we would see "connection reset" when sending the
initialize
request over SSH in the case that the debug adapter was slow to boot.

(Although we'd have successfully created a connection to the local SSH
port,
trying to read/write from it would not work until the remote end of the
connection had been established)

Fixes  #32575

Release Notes:

- debugger: Fix connecting to a Python debugger over SSH

Conrad Irwin created

baf4abe Correct variable name in project type detection (#32835)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

2539d57 wayland: Avoid reloading cursor theme on every cursor style change (#32832)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

c95e2a2 linux: Add mouse cursor icon name synonyms (#32820)

Click to expand commit body
Most of the default icon sets on Ubuntu do not use the names that were
there. To fix, using the icon synonyms from the chromium source. This
will probably fix some of the linux mouse cursor issues tracked in
#26141

Also adds a note in the load failure logs mentioning that misconfigured
`XCURSOR_PATH` may be the issue. I ran into this because [the alacritty
snap incorrectly sets
XCURSOR_PATH](https://github.com/snapcrafters/alacritty/issues/21).

On X11 also adds:

* Caching of load errors to log once for missing cursor icons.

* Fallback on default cursor icon. This way if there was a transition
from a non-default icon to a missing icon it doesn't get stuck showing
the non-default icon.

Leaving release notes blank as I have other mouse cursor fixes and would
prefer to just have one entry in the release notes.

Release Notes:

- N/A

Michael Sloan created

dfa7ed5 collab: Update Stripe customer email before checkout (#32669)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

783412f debugger: Don't spawn unnecessary process (#32827)

Click to expand commit body
Before this change, when spawning a child session we'd launch an extra
node process that would immediately die because it couldn't listen on
the debugger port

Release Notes:

- N/A

Conrad Irwin created

6d96f8b Use a proper snapshot version when resolving for utf16 points (#32815)

Click to expand commit body
Release Notes:

- Fixed a panic when merging pull and (newer) push diagnostics

Co-authored-by: Conrad Irwin <conrad@zed.dev>

Kirill Bulatov and Conrad Irwin created

69e84c0 agent: Scroll to bottom after submitting a new message (#32819)

Click to expand commit body
This is a follow up to my original attempt
https://github.com/zed-industries/zed/pull/30878 and to the PR that
eventually reverted parts of it because it broke stuff
https://github.com/zed-industries/zed/pull/31295. This new approach
attaches the `scroll_to_bottom` feature to the `chat` function, which is
triggered when the `Chat` action is dispatched by the "send" icon
buttons. With that, and from my testing, the thread doesn't forcefully
scroll as new messages are added, which was the regression I had
introduced.

Release Notes:

- agent: The panel nows scrolls to the bottom after submitting a new
message, allowing to see it more easily.

Danilo Leal created

ffc6218 debugger: Process ANSI color escape codes in console (#32817)

Click to expand commit body
- [x] foreground highlights
- [x] background highlights
- [x] advertise support in DAP capabilities

Closes #31372

Release Notes:

- Debugger Beta: added basic support for highlighting in the console
based on ANSI escape codes.

Cole Miller created

1f45716 Windows tests on self-hosted runners (#29764)

Click to expand commit body
Windows self-hosted runners

Release Notes:

- N/A

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Junkui Zhang <364772080@qq.com>

Peter Tripp , Max Brunsfeld , and Junkui Zhang created

701fa4d Reduce allocations on project type detection (#32818)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

7fb8ae0 debugger: Make the remove button easier to click for breakpoint list entries (#32772)

Click to expand commit body
Closes #31574 

Move this button a bit to the left so it doesn't get blocked by the
hitbox of the scrollbar.

Also makes the list entries a bit thicker vertically so that the button
can be `XSmall` instead of `Indicator`-sized again.

Release Notes:

- Debugger Beta: fixed a layout issue that made it hard to click the
remove (`X`) button for entries in the breakpoint list.

Cole Miller created

22a2ff4 Bail and signal error when the cwd of a resolved task doesn't exist (#32777)

Click to expand commit body
Closes #32688

Release Notes:

- Fixed tasks (including build tasks for debug configurations) silently
using `/` as a working directory when the specified `cwd` didn't exist.

Cole Miller created

0f0ff40 extension: Another batch of updates for DAP extension API (#32809)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

4383fee assistant_tools: Enable diff-fenced edit parser for all Gemini models (#32812)

Click to expand commit body
I saw recently we added diff-fenced edit parser which improves the
overall edit performance of gemini models in this PR: #32737. The idea
is to enable it to all the models which has gemini as their id as this
will help copilot and openrouter provider as they seem to aggregate all
these models under one umbrella. I thought about adding a new method in
LanguageModel as vendor_name() which returns the underlying actual model
provider name but felt like a too early abstraction for a method to be
used at one place.

Release Notes:

- N/A

Umesh Yadav created

cfbc2d0 Don't spawn Anthropic telemetry event when API key is missing (#32813)

Click to expand commit body
Minor refactor that I'm extracting from a branch because it can stand
alone.

- Now we no longer spawn an executor for `report_anthropic_event` if
it's just going to immediately fail due to API key being missing
- `report_anthropic_event` now takes a `String` API key instead of
`Option<String>` and the error reporting if the key is missing has been
moved to the caller.
- `report_anthropic_event` is longer coupled to `AnthropicError`,
because all it ever did was generate an `AnthropicEvent::Other`, which
in turn was then only used for `log_err` - so, can just be an
`anyhow::Result`.

Release Notes:

- N/A

Richard Feldman created

6e04b9e inline assistant: Do not dismiss while generating when hitting enter (#32810)

Click to expand commit body
Closes #32798

Release Notes:

- Fixed an issue where the inline assistant would be dismissed when
hitting enter while generating code

Bennet Bo Fenner created

baad66c wayland: Hopefully fix a panic recenty added in #32784 (#32808)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

c7de817 editor: Fix code action not visible until mouse move or buffer interaction (#32804)

Click to expand commit body
Closes #32796

Regressed since https://github.com/zed-industries/zed/pull/32408. Fixed
in same way as other related PRs
https://github.com/zed-industries/zed/pull/32683,
https://github.com/zed-industries/zed/pull/32692,
https://github.com/zed-industries/zed/pull/32795.

Release Notes:

- Fixed issue where code actions are not visible until the mouse is
moved when the `cursor_blink` setting is `false`.

Smit Barmase created

29cdef1 Ensure we scan worktrees again for project types when none were previously found (#32805)

Click to expand commit body
This PR doesn't change behavior, but simply adds a case to a test to
make sure we continue to scan any given worktree for project types, if
one was not found prior.

Also updates `detect_project_types`'s return type to an `Option` so we
can differentiate in tests between the case where we skip a worktree
that previously had project type events sent and the case where we
simply found no project types to report.

Release Notes:

- N/A

Joseph T. Lyons created

6df4c53 agent: Less disruptive changed file notification (#31693)

Click to expand commit body
When the user edits one of the tracked files, we used to notify the
agent by inserting a user message at the end of the thread. This was
causing a few problems:
- The agent would stop doing its work and start reading changed files
- The agent would write something like, "Thank you for letting me know
about these changed files."

This fix contains two parts:
1. Changing the prompt to indicate this is a service message
2. Moving the message higher in the conversation thread

This works, but it slightly hurts caching.

We may consider making these notification messages stick in history,
trading context tokens count for the cache.

This might be related to #30906

Release Notes:

- N/A

---------

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

Oleksiy Syvokon and Marshall Bowers created

92addb0 Pass project environment to runInTerminal requests (#32720)

Click to expand commit body
Closes #ISSUE

Release Notes:

- debugger: Pass environment to run in terminal requests

Conrad Irwin created

d7db4d4 agent: Rework context server settings (#32793)

Click to expand commit body
This changes the way context servers are organised. We now store a
`source` which indicates if the MCP server is configured manually or
managed by an extension.

Release Notes:

- N/A

---------

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

Bennet Bo Fenner and Ben Brandt created