Commit log

c70617c zed 0.212.2

Joseph T. Lyons created

17afd49 settings_ui: Use any open workspace window when opening settings links (#42106) (cherry-pick to preview) (#42196)

Click to expand commit body
Cherry-pick of #42106 to preview

----
Closes #ISSUE

Release Notes:

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

Co-authored-by: Ben Kunkle <ben@zed.dev>

zed-zippy[bot] and Ben Kunkle created

6984c9b workspace: Do not panic when the database is corruped (#42186) (cherry-pick to preview) (#42189)

Click to expand commit body
Cherry-pick of #42186 to preview

----
Fixes ZED-1NK

Release Notes:

- Fixed zed not starting when the database cannot be loaded

Co-authored-by: Lukas Wirth <lukas@zed.dev>

zed-zippy[bot] and Lukas Wirth created

be8038e project: Fetch latest lsp data in `deduplicate_range_based_lsp_requests` (#41971)

Click to expand commit body
Fixes ZED-2MK

Release Notes:

- Fixed a panic in inlay hints

Lukas Wirth created

577467b agent_ui: Do not show Codex wsl warning on wsl take 2 (#42096)

Click to expand commit body
https://github.com/zed-industries/zed/pull/42079#discussion_r2498472887

Release Notes:

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

Lukas Wirth created

18ddbc0 agent_ui: Do not show Codex wsl warning on wsl (#42079)

Click to expand commit body
Release Notes:

- Fixed the codex wsl warning being shown on wsl itself

Lukas Wirth created

5e1da57 remote: Fix `detect_can_exec` detection (#42087)

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

Release Notes:

- Fixed an issuer with wsl exec detection eagerly failing, breaking
remote connections

Lukas Wirth created

4bee58f util: Fix shell environment fetching with `cmd` (#42093)

Click to expand commit body
Release Notes:

- Fixed shell environment fetching failing when having `cmd` configured
as terminal shell

Lukas Wirth created

7eda0cd zlog: Add env var to enable line number logging (#41905)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

c21c47e remote: Flush to stdin when writing to sftp 2 (#42126) (cherry-pick to preview) (#42187)

Click to expand commit body
Cherry-pick of #42126 to preview

----
https://github.com/zed-industries/zed/pull/42103#issuecomment-3498137130

Release Notes:

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

Co-authored-by: Lukas Wirth <lukas@zed.dev>

zed-zippy[bot] and Lukas Wirth created

92142fc diagnostics: Fix diagnostics view no clearing blocks correctly (#42179) (cherry-pick to preview) (#42181)

Click to expand commit body
Cherry-pick of #42179 to preview

----
Release Notes:

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

Co-authored-by: Lukas Wirth <lukas@zed.dev>

zed-zippy[bot] and Lukas Wirth created

ed0121d project: Remove unnecessary panic (#42167) (cherry-pick to preview) (#42168)

Click to expand commit body
Cherry-pick of #42167 to preview

----
If we are in a remote session with the remote dropped, this path is very
much reachable if the call to this function got queued up in a task.

Fixes ZED-124

Release Notes:

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

Co-authored-by: Lukas Wirth <lukas@zed.dev>

zed-zippy[bot] and Lukas Wirth created

3aeeed0 Bump to 0.212.1 for @smitbarmase

Zed Bot created

7e6cdab language: Fix completion menu no longer prioritizes relevant items for Typescript and Python (#42065)

Click to expand commit body
Closes #41672

Regressed in https://github.com/zed-industries/zed/pull/40242

Release Notes:

- Fixed issue where completion menu no longer prioritizes relevant items
for TypeScript and Python.

Smit Barmase created

f91f3f2 Run ACP login from same cwd as agent server (#42038)

Click to expand commit body
This makes it possible to do login via things like `cmd: "node", args:
["my-node-file.js", "login"]`

Also, that command will now use Zed's managed `node` instance.

Release Notes:

- ACP extensions can now run terminal login commands using relative
paths

Richard Feldman created

4ebc20b agent_ui: Fix how icons from external agents are displayed (#42034)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

ac6aa73 gpui: Add support for rendering SVG from external files (#42024)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

Danilo Leal and Mikayla Maki created

d2cb9a1 Refresh zed.dev releases page after releases (#42060) (cherry-pick to preview) (#42063)

Click to expand commit body
Cherry-pick of #42060 to preview

----
Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

5956489 Fix generate release notes script on first stable (#42061) (cherry-pick to preview) (#42062)

Click to expand commit body
Cherry-pick of #42061 to preview

----
Don't crash in generate-release-notes on the first stable
commit on a branch.

Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

418d850 Fix corrupted characters being inserted when Alt is pressed (#42033)

Click to expand commit body
The Alt+Numpad buffer that's maintained by the input stack is getting
corrupted, leading to garbage characters being inserted on keystrokes
like Alt+Up. Disable the automatic handling of Alt+Numpad for now until
the cause of this corruption is understood. The Alt+Numpad input did not
work anyway, so this does not regress anything.

Release Notes:

- windows: Fixed corrupted characters being inserted when Alt is pressed
(preview only)

John Tur created

7ad3cf4 v0.212.x preview

Joseph T. Lyons created

366a5db collab_ui: Show parents when searching channels (#42005)

Click to expand commit body
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Cameron Mcloughlin and Danilo Leal created

81e87c4 settings ui: Fix divider in items that doesn't have subfields (#42016)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: cameron <cameron.studdstreet@gmail.com>

Danilo Leal and cameron created

b8ba663 Revert "Refactor completions" (#42014)

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

Andrew Farkas created

27fb109 Revert "editor: Add action to move between snippet tabstop positions" (#42008)

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

This PR would add "in_snippet" context when there wasn't a completion
menu visible, causing some actions to not be hit.

Release Note:

- N/A

Anthony Eid created

0f5a63a agent_ui: Make "waiting confirmation" state more apparent (#41998)

Click to expand commit body
This PR changes the loading/generating indicator when in the "waiting
for tool call confirmation" state so that's a bit more visible and
discernible as needing your attention, as opposed to a regular
generating state.

<img width="400" alt="Screenshot 2025-11-05 at 10  46@2x"
src="https://github.com/user-attachments/assets/88adbf97-20fb-49c4-9c77-b0a3a22aa14e"
/>

Release Notes:

- agent: Improved the "waiting for confirmation" state visibility so
that you more rapidly know the agent is waiting for you to act.

Danilo Leal created

c8ada5b agent_ui: Reduce label repetitiveness on new thread menu (#42001)

Click to expand commit body
Mostly just removing "thread" from all external agent menu items; I
think we can do without it and it already becomes much better/cleaner.

Release Notes:

- N/A

Danilo Leal created

27a1884 open_ai: Make the deltas optional (#39142)

Click to expand commit body
I am using an Azure OpenAI instance since that is what is provided at
work and with how they have it setup not all responses contain a delta,
which lead to errors and truncated responses. This is related to how
they are filtering potentially offensive requests and responses. I don't
believe this filter was made in-house, instead I believe it is provided
by Microsoft/Azure, so I suspect this fix may help other users.

Release Notes:

- N/A

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

Techy and Bennet Bo Fenner created

2bc1d60 remote: Fix open terminal fails when $SHELL is not set (#41990)

Click to expand commit body
Closes #41644

Release Notes:

- Fixed issue where it failed to spawn terminal on systems such as
Alpine.

Smit Barmase created

17933f1 Update documentation on Java support (#41758)

Click to expand commit body
This brings the documentation on Java in line with the much changed
reality of the Java extension.
Note that the correctness of this is contingent on
https://github.com/zed-industries/extensions/pull/3745 being merged.

Release Notes:

- N/A

Karl-Erik Enkelmann created

cd87307 language: Fix language detection for injected syntax layers (#41111)

Click to expand commit body
Closes #40632

**TL;DR:** The `wrap selections in tag` action was unavailable in ERB
files, even when the cursor was positioned in HTML content (outside of
Ruby code blocks). This happened because `syntax_layer_at()` incorrectly
returned the Ruby language for positions that were actually in HTML.
**NOTE:** I am not familiar with that part of Zed so it could be that
the fix here is completely incorrect.

Previously, `syntax_layer_at` incorrectly reported injected languages
(e.g., Ruby in ERB files) even when the cursor was in the base language
content (HTML). This broke actions like `wrap selections in tag` that
depend on language-specific configuration.

The issue had two parts:
1. Missing start boundary check: The filter only checked if a layer's
end was after the cursor (`end_byte() > offset`), not if it started
before, causing layers outside the cursor position to be included. See
the `BEFORE` video: when I click on the HTML part it reports `Ruby`
language instead of `HTML`.
2. Wrong boundary reference for injections: For injected layers with
`included_sub_ranges` (like Ruby code blocks in ERB), checking the root
node boundaries returned the entire file range instead of the actual
injection ranges.

This fix:
- Adds the containment check using half-open range semantics [start,
end) for root node boundaries. That ensures proper reporting of the
detected language when a cursor (`|`) is located right after the
injection:

   ```
   <body>
    <%= yield %>|
  </body>
   ```

- Checks `included_sub_ranges` for injected layers to determine if the
cursor is actually within an injection
- Falls back to root node boundaries for base layers without sub-ranges.
This is the original behavior.

Fixes ERB language support where actions should be available based on
the cursor's actual language context. I think that also applies to some
other template languages like HEEX (Phoenix) and `*.pug`. On short
videos below you can see how I navigate through the ERB template and the
terminal on the right outputs the detected language if you apply the
following patch:

```diff
diff --git i/crates/editor/src/editor.rs w/crates/editor/src/editor.rs
index 15af61f5d2..54a8e0ae37 100644
--- i/crates/editor/src/editor.rs
+++ w/crates/editor/src/editor.rs
@@ -10671,6 +10671,7 @@ impl Editor {
         for selection in self.selections.disjoint_anchors_arc().iter() {
             if snapshot
                 .language_at(selection.start)
+                .inspect(|language| println!("Detected language: {:?}", language))
                 .and_then(|lang| lang.config().wrap_characters.as_ref())
                 .is_some()
             {
```

**Before:**


https://github.com/user-attachments/assets/3f8358f4-d343-462e-b6b1-3f1f2e8c533d


**After:**



https://github.com/user-attachments/assets/c1b9f065-1b44-45a2-8a24-76b7d812130d



Here is the ERB template:

```
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style>
      /* Email styles need to be inline */
    </style>
  </head>
  <body>
    <%= yield %>
  </body>
</html>
```

Release Notes:

- N/A

Vitaly Slobodin created

11b29d6 ruby: Add note about enabling Ruby LSP for ERB files (#41851)

Click to expand commit body
Hi, this is a follow-up change for
https://github.com/zed-industries/zed/pull/41754 I think it important to
keep existing things working. So add notes to the Ruby extension doc
about enabling Ruby LSP for ERB files as well. Thanks!

Release Notes:

- N/A

Vitaly Slobodin created

c061698 project: Fetch latest lsp data in `deduplicate_range_based_lsp_requests` (#41971)

Click to expand commit body
Fixes ZED-2MK

Release Notes:

- Fixed a panic in inlay hints

Lukas Wirth created

b4f7af0 Work around codegen bug with GetKeyboardState (#41970)

Click to expand commit body
Works around an issue, which can be reproduced in the following program:
```rs
use windows::Win32::UI::Input::KeyboardAndMouse::{GetKeyboardState, VK_CONTROL};

fn main() {
    let mut keyboard_state = [0u8; 256];
    unsafe {
        GetKeyboardState(&mut keyboard_state).unwrap();
    }

    let ctrl_down = (keyboard_state[VK_CONTROL.0 as usize] & 0x80) != 0;
    println!("Is Ctrl down: {ctrl_down}");
}
```

In debug mode, this program prints the correct answer. In release mode,
it always prints false. The optimizer appears to think that
`keyboard_state` isn't mutated and remains zeroed, and folds the
`modifier_down` comparisons to `false`.

Release Notes:

- N/A

John Tur created

c83621f editor: Fix setting multi_cursor_modifier opens implementation in new pane instead of new tab (#41963)

Click to expand commit body
Closes #41014

Release Notes:

- Fixed an issue where `multi_cursor_modifier` set to `cmd_or_ctrl`
opens implementation in new pane instead of new tab.

Smit Barmase created

0da52d6 Add ACP terminal-login via _meta field (#41954)

Click to expand commit body
As discussed with @benbrandt and @mikayla-maki:

* We now tell ACP clients we support the nonstandard `terminal-auth`
`_meta` field for terminal-based authentication
* In the future, we anticipate ACP itself supporting *some* form of
terminal-based authentication, but that hasn't been designed yet or gone
through the RFD process
* For now, this unblocks terminal-based auth

Release Notes:

- Added experimental terminal-based authentication to ACP support

Richard Feldman created

60ee0dd Use our `node` runtime for ACP extensions (#41955)

Click to expand commit body
Release Notes:

- Now ACP extensions use Zed's managed Node.js runtime

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

Richard Feldman and Mikayla Maki created

9fc4abd Re-enable preview auto-release (#41952)

Click to expand commit body
Patch releases to preview will now automatically release

Release Notes:

- N/A

Conrad Irwin created

2ead8c4 Improve Windows text input for international keyboard layouts and IMEs (#41259)

Click to expand commit body
- Custom handling of dead keys has been removed. UX for dead keys is now
the same as other applications on Windows.
- We could bring back some kind of custom UI, but only if UX is fully
compatible with expected Windows behavior (e.g. ability to move the
cursor after typing a dead key).
  - Fixes https://github.com/zed-industries/zed/issues/38838
- Character input via AltGr shift state now always has priority over
keybindings. This applies regardless of whether the keystroke used the
AltGr key or Ctrl+Alt to enter the shift state.
- In particular, we use the following heuristic to determine whether a
keystroke should trigger character input first or trigger keybindings
first:
- If the keystroke does not have any of Ctrl/Alt/Win down, trigger
keybindings first.
- Otherwise, determine the character that would be entered by the
keystroke. If it is a control character, or no character at all, trigger
keybindings first.
- Otherwise, the keystroke has _any_ of Ctrl/Alt/Win down and generates
a printable character. Compare this character against the character that
would be generated if the keystroke had _none_ of Ctrl/Alt/Win down:
- If the character is the same, the modifiers are not significant;
trigger keybindings first.
- If there is no active input handler, or the active input handler
indicates that it isn't accepting text input (e.g. when an operator is
pending in Vim mode), character entry is not useful; trigger keybindings
first.
- Otherwise, assume the modifiers enable access to an otherwise
difficult-to-enter key; trigger character entry first.
  - Fixes https://github.com/zed-industries/zed/issues/35862
- Fixes
https://github.com/zed-industries/zed/issues/40054#issuecomment-3447833349
  - Fixes https://github.com/zed-industries/zed/issues/41486
- TranslateMessage calls are no longer skipped for unhandled keystrokes.
This fixes language input keys on Japanese and Korean keyboards (and
surely other cases as well).
- To avoid any other missing-TranslateMessage headaches in the future,
the message loop has been rewritten in a "traditional" Win32 style,
where accelerators are handled in the message loop and TranslateMessage
is called in the intended manner.
  - Fixes https://github.com/zed-industries/zed/issues/39971
  - Fixes https://github.com/zed-industries/zed/issues/40300
  - Fixes https://github.com/zed-industries/zed/issues/40321
  - Fixes https://github.com/zed-industries/zed/issues/40335
  - Fixes https://github.com/zed-industries/zed/issues/40592
  - Fixes https://github.com/zed-industries/zed/issues/40638
- As a bonus, Alt+Space now opens the system menu, since it is triggered
by the WM_SYSCHAR generated by TranslateMessage.
- VK_PROCESSKEYs are now ignored rather than being unwrapped and matched
against keybindings. This ensures that IMEs will reliably receieve
keystrokes that they express interest in. This matches the behavior of
native Windows applications.
  - Fixes https://github.com/zed-industries/zed/issues/36736
  - Fixes https://github.com/zed-industries/zed/issues/39608
  - Fixes https://github.com/zed-industries/zed/issues/39991
  - Fixes https://github.com/zed-industries/zed/issues/41223
  - Fixes https://github.com/zed-industries/zed/issues/41656
  - Fixes https://github.com/zed-industries/zed/issues/34180
  - Fixes https://github.com/zed-industries/zed/issues/41766


Release Notes:

- windows: Improved keyboard input handling for international keyboard
layouts and IMEs

John Tur created

0a4b1ac inline assistant: Mention ability to add context with @ in the placeholder (#41950)

Click to expand commit body
This has been possible in the inline assistant for ages now and maybe
you didn't know because we didn't say anything about it! This PR fixes
that by including that you can @-mention context on it the same you can
in the agent panel.

Release Notes:

- N/A

Danilo Leal created

f9fb855 Fetch (just) enough refs in script/cherry-pick (#41949)

Click to expand commit body
Before this change we'd download all the tagged commits, but none of
their ancestors,
this was slow and made cherry-picking fail.

Release Notes:

- N/A

Conrad Irwin created

b587a62 No-op commit to test cherry-picking (#41948)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Conrad Irwin created

1b2e38b More tweaks to CI pipeline (#41941)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Conrad Irwin created

4339c77 Tidy up `Edit in json` footer entries (#41890)

Click to expand commit body
Before:
<img width="350" height="109" alt="before"
src="https://github.com/user-attachments/assets/d5d3e6bd-3a65-4d7d-8585-1e4d8f72997f"
/>

After:
<img width="310" height="103" alt="after"
src="https://github.com/user-attachments/assets/40137084-7323-4a79-b95b-a020c418646b"
/>

* All items got a keybinding label
* All items were made of a non-small size, to match the text size in the
right button
* Keybindings are rendered as disabled for disabled buttons

Release Notes:

- N/A

Co-authored-by: Lukas Wirth <lukas@zed.dev>

Kirill Bulatov and Lukas Wirth created

ba7ea71 node_runtime: Improve proxy mapping (#41807)

Click to expand commit body
Closes #ISSUE

More accurately map localhost to `127.0.0.1`. Previously we would
lowercase and simply replace all instances of localhost inside of the
URL string, meaning query parameters, username, password etc. could not
contain the string `localhost` or contain uppercase letters without
getting modified. Added a test ensuring the mapping logic works. The
previous implementation would fail this new test.

Release Notes:

- Improved the behavior of mapping `localhost` to `127.0.0.1` when
passing configured proxy urls to `node`

tidely created

cd04450 Refactor completions (#41939)

Click to expand commit body
This is progress toward multi-word snippets (including snippets with
prefixes containing symbols)

Release Notes:

- Removed `trigger` argument in `ShowCompletions` command

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Andrew Farkas and Conrad Irwin created

769a8a6 windows: Automatically find Windows SDK when building gpui (#38711)

Click to expand commit body
### Summary

This PR changes `gpui/build.rs` to look up the Windows SDK directory in
the registry instead of falling back to a hard-coded path.

---

### Problem

Currently, building `gpui` on Windows requires `fxc.exe` to be in `PATH`
or at a predefined location (unless `GPUI_FXC_PATH` is set). This
requires to maintain a certain build environment with proper paths/vars
or to install the specific SDK version.

It is possible to find the SDK automatically using the registry keys it
creates upon installation. Specifically in
`SOFTWARE\\WOW6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0`
branch there are:
* `InstallationFolder` telling the SDK installation location;
* `ProductVersion` telling the SDK version in use.

These keys provide enough information to locate the SDK binaries, with
added robustness:
* handles non-standard SDK installation path;
* deterministically selects the latest SDK when multiple versions are
present.

---

### Changes Made

* **Updated `crates/gpui/build.rs`**:

  * added dependency on `winreg`
  * introduced `find_latest_windows_sdk_binary()` helper
  * updated fallback logic to use registry lookup

This PR only changes the fallback location, and does not touch the
established environment-based workflow.

Release Notes:

- N/A

---

### Impact

Reduces manual configuration needed to build GPUI on Windows.

---------

Co-authored-by: John Tur <john-tur@outlook.com>

Sergey Cherepanoff and John Tur created

94ff4aa AI: Fix Github Copilot edit predictions failing to start (#41934)

Click to expand commit body
Closes #41457 #41806 #41801

Copilot started using `node:sqlite` module which is an experimental
feature between node v22-v23 (stable in v24). The fix was passing in the
experimental flag when Zed starts the copilot LSP.

I tested this with v20.19.5 and v24.11.0. The fix got v20.19 working and
didn't affect v24.11 which was already working.

Release Notes:

- AI: Fix Github Copilot edit predictions failing to start

Anthony Eid created

1e14804 Fix integer underflow in autosave mode after delay in the settings (#41898)

Click to expand commit body
Closes #41774 

Release Notes:

- settings_ui: Fixed an integer underflow panic when attempting to hit
the `-` sign on settings item that take delays in milliseconds

Ignasius created

cdd7d4b windows: Skip `AppendCategory` call when there are no shell links (#37926)

Click to expand commit body
`ICustomDestinationList::AppendCategory` rejects an empty `IObjectArray`
and returns an `E_INVALIDARG` error. Error propagated and caused an
early-return from `update_jump_list()`.
<img width="1628" height="540" alt="image"
src="https://github.com/user-attachments/assets/f8143297-c71e-42a1-a505-66cd77dfa599"
/>

Release Notes:

- N/A

scuzqy created