Commit log

ca92dfc Bump to 0.192.4 for @bennetbo

Zed Bot created

d4d4512 agent: Ensure tool names are unique (#33237)

Click to expand commit body
Closes #31903

Release Notes:

- agent: Fix an issue where an error would occur when MCP servers
specified tools with the same name

---------

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

Bennet Bo Fenner and Ben Brandt created

f219b4e Implement save functionality for diff view (cherry-pick #33298) (#33302)

Click to expand commit body
Cherry-picked Implement save functionality for diff view (#33298)

Add `can_save` and `save` methods to `DiffView`, enabling users to save
changes made within the diff view.

Release Notes:

- Allow saving changes in the `zed --diff` view

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

gcp-cherry-pick-bot[bot] and Ben Brandt created

4f69449 copilot: Remove PromptTokensDetails from Usage struct (cherry-pick #33029) (#33108)

Click to expand commit body
Cherry-picked copilot: Remove PromptTokensDetails from Usage struct
(#33029)

Closes #33024

Release Notes:

- Removed `PromptTokensDetails` from `Usage` as Gemini no longer
supplies cached token data for copilot.

Co-authored-by: Umesh Yadav <23421535+imumesh18@users.noreply.github.com>

gcp-cherry-pick-bot[bot] and Umesh Yadav created

7fde6d1 copilot: Fix config dir logic to support Flatpak environments (cherry-pick #32901) (#33158)

Click to expand commit body
Cherry-picked copilot: Fix config dir logic to support Flatpak
environments (#32901)

Closes #30784

In github copilot we were not handling the config path correctly for
FLATPAK.

* Only tested on mac don't have access to other platform. But this
should work on other platform as well. It follows the similar pattern
seen in zed config path resolution.
- [x] Macos
- [ ] Linux
- [ ] Linux with Flatpak
- [ ] Windows

Release Notes:

- Fix copilot config detection for flatpack

Co-authored-by: Umesh Yadav <23421535+imumesh18@users.noreply.github.com>

gcp-cherry-pick-bot[bot] and Umesh Yadav created

8771862 zed 0.192.3

Joseph T. Lyons created

c8d71d6 docs: Update manifest keys in debugger extension docs (#33085)

Click to expand commit body
This is silly and caused at least one of our users a lot of confusion.

Closes #33040

Release Notes:

- N/A

Piotr Osiewicz created

a2c5507 debugger: Refresh variable list on set variable value response (#33078)

Click to expand commit body
Variable list wasn't notified when a set variable value request was
successfully. This caused the variable list and inline values to show
stale data in some cases, which this PR fixes.

Release Notes:

- debugger: Fix bug where setting a variable's value wouldn't update the
variable list or inline values

Anthony Eid created

950c36a docs: Update development debugger guide to include Zed's debugger (#33080)

Click to expand commit body
Closes #33069 

Release Notes:

- N/A

Anthony Eid created

23d89e6 debugger: Move breakpoint management to the pane strip (#33062)

Click to expand commit body
Closes #ISSUE

Release Notes:

- debugger: Moved "remove breakpoint" button to the top of a breakpoint
list"

Piotr Osiewicz created

ebae894 Fix handling of `--diff` flag (#33094)

Click to expand commit body
* Restore the ability to combine --diff with other path arguments
* Restore combining --diff with --wait

There is still one defect in the current handling of `--diff`: when Zed
is already open, we'll open the diff view in your current active zed
window. It would be better to search all of the open zed windows for any
window containing the diffed paths, but implementing that is a bit
complex. Currently, the logic for *picking* an existing zed window is
coupled to the logic for opening buffers in that window. I'd like to
decouple it, but I wanted to keep this change small, so that we hotfix
it to stable without too much risk.

Release Notes:

- Fixed a bug where the `--diff` CLI flag did not work with `--wait`

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

Max Brunsfeld and Ben Brandt created

0df68f8 Fix pull diagnostics on the remote clients (cherry-pick #33028) (#33030)

Click to expand commit body
Cherry-picked Fix pull diagnostics on the remote clients (#33028)

Also add a test.

Release Notes:

- Fixed pull diagnostics on the remote clients

---------

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

gcp-cherry-pick-bot[bot] and Kirill Bulatov created

793e182 debugger: Fix issues with debugging scripts from package.json (cherry-pick #32995) (#33044)

Click to expand commit body
Cherry-picked debugger: Fix issues with debugging scripts from
package.json (#32995)

- [x] Pass in cwd
- [x] Use the appropriate package manager
- [x] Don't mix up package.json and composer.json

Release Notes:

- debugger: Fixed wrong arguments being passed to the DAP when debugging
scripts from package.json.

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

gcp-cherry-pick-bot[bot] and Cole Miller created

4319bc4 zed 0.192.2

Joseph T. Lyons created

ce5cc0d debugger: Fix issues with debugging scripts from package.json (#32995)

Click to expand commit body
- [x] Pass in cwd
- [x] Use the appropriate package manager
- [x] Don't mix up package.json and composer.json

Release Notes:

- debugger: Fixed wrong arguments being passed to the DAP when debugging
scripts from package.json.

Cole Miller created

13a26bc debugger: Refine session modal design (#33004)

Click to expand commit body
This PR makes all footer elements in the debugger session modal more
consistent, as well as fixes some weird UI quirks with leaking borders
and whatnot. Took the opportunity to do some light style clean up and
use `prelude::*` for UI imports.

Release Notes:

- N/A

Danilo Leal created

506bfb5 docs: Ruby debug configuration should be an array (#32991)

Click to expand commit body
Closes #ISSUE

Small correction for something I noticed while setting up the debugger
today.

Release Notes:

- N/A

Jeff Bonhag created

c511416 Add a small script to make debugging the CLI easier (#32971)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

11bd3b3 docs: Remove beta tag from Debugger (#32950)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

96595aa Revert "client: Fix an issue where non-IP proxy URLs didn’t resolve c… (cherry-pick #33013) (#33016)

Click to expand commit body
Cherry-picked Revert "client: Fix an issue where non-IP proxy URLs
didn’t resolve c… (#33013)

This reverts commit bc68455320f1be3f3a135ea1c0de24c026990286.

More bugs...

Closes #32838

Release Notes:

- N/A

Co-authored-by: 张小白 <364772080@qq.com>

gcp-cherry-pick-bot[bot] and 张小白 created

8c38ed8 Fix document colors not showing on file reopen (cherry-pick #33009) (#33010)

Click to expand commit body
Cherry-picked Fix document colors not showing on file reopen (#33009)

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

Release Notes:

- Fixed document colors not showing on file reopen

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

gcp-cherry-pick-bot[bot] and Kirill Bulatov created

ec3807e open_ai: Fix issues with OpenAI compatible APIs (#32982)

Click to expand commit body
Ran into this while adding support for Vercel v0s models:
- The timestamp seems to be returned in Milliseconds instead of seconds
so it breaks the bounds of `created: u32`. We did not use this field
anywhere so just decided to remove it
- Sometimes the `choices` field can be empty when the last chunk comes
in because it only contains `usage`

Release Notes:

- N/A

Bennet Bo Fenner created

819b5d8 agent: Add ability to change the API base URL for OpenAI via the UI (#32979)

Click to expand commit body
The `api_url` setting is one that most providers already support and can
be changed via the `settings.json`. We're adding the ability to change
it via the UI for OpenAI specifically so it can be more easily connected
to v0.

Release Notes:

- agent: Added ability to change the API base URL for OpenAI via the UI

---------

Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>

Danilo Leal and Bennet Bo Fenner created

bcb7c52 zed 0.192.1

Joseph T. Lyons created

d032653 debugger: Run debug scenarios from package.json (#32958)

Click to expand commit body
Release Notes:

- New session modal for a debugger will now show tasks from package.json
as debuggable scenarios

---------

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

Piotr Osiewicz , Remco Smits , and Anthony Eid created

d736e3c Fix a bug where --diff wouldn't open the diff (#32962)

Click to expand commit body
Release Notes:

- Fixed a bug where `zed --diff A B` wouldn't open a diff

Mikayla Maki created

817b1d6 debugger: Add onboarding modal (#32961)

Click to expand commit body
- **debugger: Add debugger onboarding modal (wip)**
- **woops**

Release Notes:

- debugger: Added the onboarding modal.

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Julia Ryan <p1n3appl3@users.noreply.github.com>

Piotr Osiewicz , Danilo Leal , and Julia Ryan created

b25d19c Wait for source maps when setting TypeScript breakpoints (#32954)

Click to expand commit body
Closes #ISSUE

Release Notes:

- debugger: Fix setting breakpoints in typescript code when debugging
compiled javascript

Conrad Irwin created

b3f3128 v0.192.x preview

Joseph T. Lyons created

45b5b2e Diff view (#32922)

Click to expand commit body
Todo:

* [x] Open diffed files as regular buffers
* [x] Update diff when buffers change
* [x] Show diffed filenames in the tab title
* [x] Investigate why syntax highlighting isn't reliably handled for old
text
* [x] remove unstage/restore buttons

Release Notes:

- Adds `zed --diff A B` to show the diff between the two files

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Co-authored-by: Agus Zubiaga <agus@zed.dev>

Conrad Irwin , Max Brunsfeld , Ben Brandt , and Agus Zubiaga created

2f52e2d debugger: Fix a few issues with JS debugging (#32918)

Click to expand commit body
- Don't assume all located tasks come from our test runnables
- Run tests from the right working directory
- Scope forking behavior customization for jest and vitest more tightly,
to just our test runnables
- Standardize on `$PACKAGE_MANAGER exec -- $TEST_LIBRARY ...` to fix
runnables not working with npm

Release Notes:

- Debugger Beta: Fixed issues with debugging tasks from package.json and
test runnables.

Cole Miller created

3e8a07f zed_extension_api: Release v0.6.0 (#32945)

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

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

Release Notes:

- N/A

Marshall Bowers created

8e40318 debugger: Show child sessions as indented and ensure they're next to the parent session (#32939)

Click to expand commit body
Closes #ISSUE

Release Notes:

- debugger: Tweaked how child sessions are shown in the session list.

Piotr Osiewicz created

131f285 editor: Improve code completion filtering to provide fewer and more accurate suggestions (#32928)

Click to expand commit body
Closes #32756

- Uses `filter_text` from LSP source to filter items in completion list.
This fixes noisy lists like on typing `await` in Rust, it would suggest
`await.or`, `await.and`, etc., which are bad suggestions. Fallbacks to
label.
- Add `penalize_length` flag to fuzzy matcher, which was the default
behavior across. Now, this flag is set to `false` just for code
completion fuzzy matching. This fixes the case where if the query is
`unreac` and the completion items are `unreachable` and
`unreachable!()`, the item with a shorter length would have a larger
score than the other one, which is not right in the case of
auto-complete context. Now these two items will have the same fuzzy
score, and LSP `sort_text` will take over in finalizing its ranking.
- Updated test to be more utility based rather than example based. This
will help to iterate/verify logic faster on what's going on.

Before/After:

await: 
<img width="600" alt="before-await"
src="https://github.com/user-attachments/assets/384138dd-a90d-4942-a430-6ae15df37268"
/>
<img width="600" alt="after-await"
src="https://github.com/user-attachments/assets/d05a10fa-bae5-49bd-9fe7-9933ff215f29"
/>

iter:
<img width="600" alt="before-iter"
src="https://github.com/user-attachments/assets/6e57ffe9-007d-4b17-9cc2-d48fc0176c8e"
/>
<img width="600" alt="after-iter"
src="https://github.com/user-attachments/assets/a8577a9f-dcc8-4fd6-9ba0-b7590584ec31"
/>

opt:
<img width="600" alt="opt-before"
src="https://github.com/user-attachments/assets/d45b6c52-c9ee-4bf3-8552-d5e3fdbecbff"
/>
<img width="600" alt="opt-after"
src="https://github.com/user-attachments/assets/daac11a8-9699-48f8-b441-19fe9803848d"
/>

Release Notes:

- Improved code completion filtering to provide fewer and more accurate
suggestions.

Smit Barmase created

65067da debugger: Add breakpoint list to the empty state of debug panel (#32930)

Click to expand commit body
![image](https://github.com/user-attachments/assets/3c80855a-3046-42b6-a1a7-409b03cd735d)

Release Notes:

- Debugger: Added breakpoint list to the empty debug panel

Piotr Osiewicz created

d8eb341 Fix bug where prior LSP completions can be displayed after trigger char (#32927)

Click to expand commit body
Bug in #31872

Closes #32774

Release Notes:

- Fixed a bug in LSP completions caching where prior completions may be
used when they should not, after typing a trigger char like `.`

Michael Sloan created

70aab39 docs: Add light formatting changes to the Debugger page (#32919)

Click to expand commit body
Just some tiny little formatting improvement opportunities I stumbled
upon while working on the marketing stuff for the debugger.

Release Notes:

- N/A

Danilo Leal created

bfffc29 debugger: Parse and highlight text with ANSI escape sequences (#32915)

Click to expand commit body
Relanding #32817 with an improved approach, bugs fixed, and a test.

Release Notes:

- N/A

Cole Miller created

4da5818 windows: Fix client area is treated as non-client area when window is fullscreen (#32916)

Click to expand commit body
Closes #32909

Release Notes:

- N/A

张小白 created

9bdfd1e gpui: Fix pending keys dispatch path panic (#32891)

Click to expand commit body
For me this is a panic that started occurring today in my use of Zed.
The repro is to type `ctrl-x` to start a pending key sequence and then
close the collab side panel with the mouse. The issue is that
dispatching the action based on pending keystrokes uses the same
`DispatchNodeId` as when the 1 second timer was started.
`DispatchNodeId` is not stable across frames. This also means that the
wrong `DispatchNodeId` can be used in the non-panicing case, potentially
causing the action to not occur.

The mystery here is why did this only start happening now in my use of
Zed, and why isn't it showing up in the panics dashboard / issue
reports.

Panic looks like

```
{
  "thread": "main",
  "payload": "index out of bounds: the len is 467 but the index is 1861",
  "location_data": {
    "file": "crates/gpui/src/key_dispatch.rs",
    "line": 519
  },
  "backtrace": [
    "zed::reliability::init_panic_hook::{{closure}}::he1d8257b19b16eec+155265758",
    "std::panicking::rust_panic_with_hook::h33b18b24045abff4+128544307",
    "std::panicking::begin_panic_handler::{{closure}}::hf8313cc2fd0126bc+128543530",
    "std::sys::backtrace::__rust_end_short_backtrace::h57fe07c8aea5c98a+128537145",
    "__rustc[95feac21a9532783]::rust_begin_unwind+128542669",
    "core::panicking::panic_fmt::hd54fb667be51beea+9456688",
    "core::panicking::panic_bounds_check::h1a9bf3d94de0fc80+9457170",
    "gpui::key_dispatch::DispatchTree::dispatch_path::hce77d277881569bf+73992023",
    "gpui::app::App::spawn::{{closure}}::hb1e79bbbdead3012+73687056",
    "async_task::raw::RawTask<F,T,S,M>::run::hd13f66f99bb24bbd+70694231",
    "<gpui::platform::linux::x11::client::X11Client as gpui::platform::linux::platform::LinuxClient>::run::h5a92ddaaf9a06dd1+74465138",
    "gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run::hd19ac52b2d94268e+74064525",
    "gpui::app::Application::run::hee83110c717a5af0+151862692",
    "zed::main::hca7e2265584c4139+153307630",
    "std::sys::backtrace::__rust_begin_short_backtrace::h2e04f4034c2d82c5+153146899",
    "std::rt::lang_start::{{closure}}::h91cf1ca0eeae23ae+154454121",
    "std::rt::lang_start_internal::h418648f91f5be3a1+128467809",
    "main+153326748",
    "__libc_start_call_main+25056432783818",
    "__libc_start_main_impl+25056432784011",
    "_start+12389486"
  ],
  "app_version": "0.190.6",
  "app_commit_sha": "9a2dcbbe244407fed51d61f38e4a4a59ec1cccc6",
  "release_channel": "stable",
  "target": "x86_64-unknown-linux-gnu",
  "os_name": "Linux X11",
  "os_version": "ubuntu 24.04",
  "architecture": "x86_64",
  "panicked_on": 1750185799233,
  "system_id": "abae7201-61fb-442b-922b-202071ae81c0",
  "installation_id": "69a0fb9a-11a2-4065-ad8c-b281e68525ad",
  "session_id": "bc5b5f2f-e4c3-44a8-948e-c0550a2e2ef2"
}
```

Release Notes:

- Fixed a rare panic / potential incorrect action dispatch when a
pending keysequence is applied after the 1 second timer elapsing.

Michael Sloan created

aa1b2d7 x11: Improve error handling (#32913)

Click to expand commit body
Continuing this work from a while back in #21079, now greatly aided by
agent + sonnet 4. With this change, there are now only a few spots that
explicitly panic, though errors during initialization will panic.

Motivation was this recent user panic in `handle_event`, figured fixing
all this use of unwrap was a great use of the agent.

> called `Result::unwrap()` on an `Err` value: X11 GetProperty for
_NET_WM_STATE failed.

Release Notes:

- N/A

Michael Sloan created

90aa99b Add Caps Lock support (#30470)

Click to expand commit body
Closes #21700

Release Notes:

- Added caps lock support and show a warning if the user is entering an
SSH password with Caps Lock enabled

---------

Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: 张小白 <364772080@qq.com>

Maxim Zaks , Mikayla Maki , Mikayla Maki , and 张小白 created

e47c48f debugger: Add comment-preserving debug.json editing (#32896)

Click to expand commit body
Release Notes:

- Re-added "Save to `debug.json`" for custom debug tasks

---------

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

Julia Ryan and Cole Miller created

2f1d25d Revert "debugger: Process ANSI color escape codes in console" (#32906)

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

Release Notes:
- N/A

Cole Miller created

0cda28f Fix release notes appearing in project search (#32898)

Click to expand commit body
Closes #28829

Release Notes:

- Fixed an issue where release notes would appear in project search
results when opened locally

Ben Kunkle created

a422345 Add `(flatpak)` and `(snap)` suffixes to Zed version in system info (#32903)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

051fa06 Add docs for cloning extensions repository (#32897)

Click to expand commit body
Release Notes:

- N/A

---------

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

Joseph T. Lyons and Peter Tripp created

0191f16 Update Gemini Models (#32902)

Click to expand commit body
Updates google_ai to use latest model information from the respective
model cards: https://ai.google.dev/gemini-api/docs/models

Release Notes:

- google: Update to latest Gemini 2.5 models

Ben Brandt created

3c9fe36 debugger: Remove feature flag (#32877)

Click to expand commit body
Release Notes:

- debugger: Now available for everyone!

Conrad Irwin created

8883885 debugger: Improve debugger panel empty state (#32889)

Click to expand commit body
Before:

![CleanShot 2025-06-17 at 13 48
58@2x](https://github.com/user-attachments/assets/16ecebfa-871e-4a2d-b6a3-2178de70aaef)

After:

![CleanShot 2025-06-17 at 13 49
24@2x](https://github.com/user-attachments/assets/2d8a0444-6088-45f1-a880-0bdd0aef968e)


Release Notes:

- N/A (Beta: Improved the debugger panel when there are no currently
active sessions)

Nate Butler created