Commit log

901b052 zed 0.190.5

Joseph T. Lyons created

bf9176e Use buffer's main language when fetching language tasks (cherry-pick #32580) (#32581)

Click to expand commit body
Cherry-picked Use buffer's main language when fetching language tasks
(#32580)

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

Release Notes:

- Fixed language tasks fetched incorrectly for certain selections

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

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

e486f3e v0.190.x stable

Joseph T. Lyons created

abcec9f Remove previous multi buffer hardcode from the outline panel (#32321)

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

Multi buffer design was changed so that control buttons are not
occupying extra lines, the hardcoded logic for that is obsolete thus
removed.

Release Notes:

- Fixed incorrect offsets during outline panel navigation in singleton
buffers

Kirill Bulatov created

8b18939 Log error instead of panics in `InlineAssistant::scroll_to_assist` (cherry-pick #32519) (#32520)

Click to expand commit body
Cherry-picked Log error instead of panics in
`InlineAssistant::scroll_to_assist` (#32519)

Leaving release notes blank as it's not very actionable to know that a
rare crash might be fixed.

Release Notes:

- N/A

Co-authored-by: Michael Sloan <michael@zed.dev>

gcp-cherry-pick-bot[bot] and Michael Sloan created

ac967be Add missing `#[track_caller]` meant to be in #32433 (cherry-pick #32434) (#32518)

Click to expand commit body
Cherry-picked Add missing `#[track_caller]` meant to be in #32433
(#32434)

Release Notes:

- N/A

Co-authored-by: Michael Sloan <michael@zed.dev>

gcp-cherry-pick-bot[bot] and Michael Sloan created

0591076 Don't push to selection history if selections are empty (cherry-pick #32433) (#32517)

Click to expand commit body
Cherry-picked Don't push to selection history if selections are empty
(#32433)

I got a panic during undo but haven't been able to repro it. Potentially
a consequence of my changes in #31731

> Thread "main" panicked with "There must be at least one selection" at
crates/editor/src/selections_collection.rs

Leaving release notes blank as I'm not sure this actually fixes the
panic

Release Notes:

- N/A

Co-authored-by: Michael Sloan <michael@zed.dev>

gcp-cherry-pick-bot[bot] and Michael Sloan created

8adf3c0 Bump to 0.190.4 for @ConradIrwin

Zed Bot created

8fa21f7 debugger beta: Fix inline value provider panic (#32502)

Click to expand commit body
Closes #32143

Release Notes:

- debugger beta: Fix panic that could occur when generating inline
values

Anthony Eid created

2fd32ff Fix cherry-pick

Conrad Irwin created

cb660c5 debugger: Fix panic when handling invalid `RunInTerminal` request (cherry-pick #32500) (#32513)

Click to expand commit body
Cherry-picked debugger: Fix panic when handling invalid `RunInTerminal`
request (#32500)

The new dap-types version has a default to cwd for the
RunInTerminalRequest

Closes #31695

Release Notes:

- debugger beta: Fix panic that occurred when a debug adapter sent an
invalid `RunInTerminal` request

Co-authored-by: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com>

gcp-cherry-pick-bot[bot] and Anthony Eid created

7be10b9 Replace `async-watch` with a custom watch (#32245)

Click to expand commit body
The `async-watch` crate doesn't seem to be maintained and we noticed
several panics coming from it, such as:

```
[bug] failed to observe change after notificaton.
zed::reliability::init_panic_hook::{{closure}}::hea8cdcb6299fad6b+154543526
std::panicking::rust_panic_with_hook::h33b18b24045abff4+127578547
std::panicking::begin_panic_handler::{{closure}}::hf8313cc2fd0126bc+127577770
std::sys::backtrace::__rust_end_short_backtrace::h57fe07c8aea5c98a+127571385
__rustc[95feac21a9532783]::rust_begin_unwind+127576909
core::panicking::panic_fmt::hd54fb667be51beea+9433328
core::option::expect_failed::h8456634a3dada3e4+9433291
assistant_tools::edit_agent::EditAgent::apply_edit_chunks::{{closure}}::habe2e1a32b267fd4+26921553
gpui::app::async_context::AsyncApp::spawn::{{closure}}::h12f5f25757f572ea+25923441
async_task::raw::RawTask<F,T,S,M>::run::h3cca0d402690ccba+25186815
<gpui::platform::linux::x11::client::X11Client as gpui::platform::linux::platform::LinuxClient>::run::h26264aefbcfbc14b+73961666
gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run::hb12dcd4abad715b5+73562509
gpui::app::Application::run::h0f936a5f855a3f9f+150676820
zed::main::ha17f9a25fe257d35+154788471
std::sys::backtrace::__rust_begin_short_backtrace::h1edd02429370b2bd+154624579
std::rt::lang_start::{{closure}}::h3d2e300f10059b0a+154264777
std::rt::lang_start_internal::h418648f91f5be3a1+127502049
main+154806636
__libc_start_main+46051972301573
_start+12358494
```

I didn't find an executor-agnostic watch crate that was well maintained
(we already tried postage and async-watch), so decided to implement it
our own version.

Release Notes:

- Fixed a panic that could sometimes occur when the agent performed
edits.

Antonio Scandurra created

9744fd5 Add a test demonstrating ERB language loading bug (#32278)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/12174

Release Notes:

- Fixed a bug where ERB files were not parsed correctly when the
languages were initially loaded.

Max Brunsfeld created

5a6def7 Add ANSI C quoting to export env parsing (cherry-pick #32404) (#32507)

Click to expand commit body
Cherry-picked Add ANSI C quoting to export env parsing (#32404)

Follow up to #31799 to support ansi-c quoting. This is used by
nix/direnv

Release Notes:

- N/A

Co-authored-by: Stanislav Alekseev <43210583+WeetHet@users.noreply.github.com>

gcp-cherry-pick-bot[bot] and Stanislav Alekseev created

b908614 Filter language server completions even when `is_incomplete: true` (cherry-pick #32491) (#32494)

Click to expand commit body
Cherry-picked Filter language server completions even when
`is_incomplete: true` (#32491)

In #31872 I changed the behavior of completions to not filter instead of
requerying completions when `is_incomplete: false`. Unfortunately this
also stopped filtering completions when `is_incomplete: true` - we still
want to filter the incomplete completions so that the menu updates
quickly even when completions are slow. This does mean that the
completions menu will display partial results, hopefully only briefly
while waiting for fresh completions.

Thanks to @mikayla-maki for noticing the regression. Thankfully just in
time to fix it before this makes it into a stable release. Leaving off
release notes since I will cherry-pick this to the current preview
version, 190.x, and there probably won't be a preview release before the
next stable.

Release Notes:

- N/A

Co-authored-by: Michael Sloan <michael@zed.dev>

gcp-cherry-pick-bot[bot] and Michael Sloan created

48c6c37 Revert "Preserve selection direction when running `editor: open selections in multibuffer`" (#32483)

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

I found that in some cases, Zed will panic when using `editor: open
selections in multibuffer` if the selection is reversed. It doesn't
happen in most cases that I've tested, but in some strange edge cases
(that I dont fully understand ATM), it does. I'm reverting for now, as
the previous behavior is better than a panic, but will re-implement this
fix to preserving selection directions in a new PR with comprehensive
testing

Release Notes:

- N/A

Joseph T. Lyons created

4338967 Use unix pipe to capture environment variables (cherry-pick #32136) (#32428)

Click to expand commit body
Cherry-picked Use unix pipe to capture environment variables (#32136)

The use of `NamedTempFile` in #31799 was not secure and could
potentially cause write permission issues (see [this

comment](https://github.com/zed-industries/zed/issues/29528#issuecomment-2939672433)).
Therefore, it has been replaced with a Unix pipe.

Release Notes:
- N/A

Co-authored-by: Haru Kim <haruleekim@icloud.com>

gcp-cherry-pick-bot[bot] and Haru Kim created

1afd06d Fix buffer rendering on every mouse move (cherry-pick #32408) (#32412)

Click to expand commit body
Cherry-picked Fix buffer rendering on every mouse move (#32408)

Closes #32210

This notify was added in #13433. Solution is to only notify when the
breakpoint indicator state has changed.

Also improves the logic for enqueuing a task to delay showing - now only
does this if it isn't already visible, and that delay task now only
notifies if still hovering.

Release Notes:

- Fixed a bug where buffers render on every mouse move.

Co-authored-by: Michael Sloan <michael@zed.dev>

gcp-cherry-pick-bot[bot] and Michael Sloan created

0bcb68e No longer instantiate recently opened agent threads on startup (cherry-pick #32285) (#32351)

Click to expand commit body
Cherry-picked No longer instantiate recently opened agent threads on
startup (#32285)

This was causing a lot of work on startup, particularly due to
instantiating edit tool cards. The minor downside is that now these
threads don't open quite as fast.

Includes a few other improvements:

* On text thread rename, now immediately updates the metadata for
display in the UI instead of waiting for reload.

* On text thread rename, first renames the file before writing. Before
if the file removal failed you'd end up with a duplicate.

* Now only stores text thread file names instead of full paths. This is
more concise and allows for the app data dir changing location.

* Renames `ThreadStore::unordered_threads` to
`ThreadStore::reverse_chronological_threads` (and removes the old one
that sorted), since the recent change to use a SQL database queries them
in that order.

* Removes `ContextStore::reverse_chronological_contexts` since it was
only used in one location where it does sorting anyway - no need to sort
twice.

* `SavedContextMetadata::title` is now `SharedString` instead of
`String`.

Release Notes:

- Fixed regression in startup performance by not deserializing and
instantiating recently opened agent threads.

Co-authored-by: Michael Sloan <michael@zed.dev>

gcp-cherry-pick-bot[bot] and Michael Sloan created

857897e zed 0.190.3

Joseph T. Lyons created

e6de793 Fix panic dragging tabs multiple positions to the right (cherry-pick #32305) (#32307)

Click to expand commit body
Cherry-picked Fix panic dragging tabs multiple positions to the right
(#32305)

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

Release Notes:

- Fixed a panic that occurred when dragging tabs multiple positions to
the right (preview only)

Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>

gcp-cherry-pick-bot[bot] and Joseph T. Lyons created

fc077d1 zed 0.190.2

Peter Tripp created

4cf7620 Fix anchor biases for completion replacement ranges (esp slash commands) (cherry-pick #32262) (#32271)

Click to expand commit body
Closes #32205

The issue was that in some places the end of the replacement range used
anchors with `Bias::Left` instead of `Bias::Right`. Before #31872
completions were recomputed on every change and so the anchor bias
didn't matter. After that change, the end anchor didn't move as the
user's typing. Changing it to `Bias::Right` to "stick" to the character
to the right of the cursor fixes this.

Also fixes slash command arguments to now have `is_incomplete: true`,
since some of the argument providers do limited fuzzy matching.

Release Notes:

- Fixed slash command completions in agent text threads to replace the
user's query text (Preview Only)

Michael Sloan created

1b45289 Fix panic when dragging pinned item left in pinned region (#32263)

Click to expand commit body
This was a regression with my recent fixes to pinned tabs. Dragging a
pinned tab left in the pinned region would still update the pinned tab
count, which would later cause an out-of-bounds later when it used that
value to index into a vec.

https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1749220447796559

Release Notes:

- Fixed a panic caused by dragging a pinned item to the left in the
pinned region

Joseph T. Lyons created

8eb12a3 Fixed more bugs around moving pinned tabs (#32228)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/32199
https://github.com/zed-industries/zed/issues/32229
https://github.com/zed-industries/zed/issues/32230
https://github.com/zed-industries/zed/issues/32232

Release Notes:

- Fixed a bug where if the last tab was a pinned tab and it was dragged
to the right, resulting in a no-op, it would become unpinned
- Fixed a bug where a pinned tab dragged just to the right of the end of
the pinned tab region would become unpinned
- Fixed a bug where dragging a pinned tab from one pane to another
pane's pinned region could result in an existing pinned tab becoming
unpinned when `max_tabs` was reached
- Fixed a bug where moving an unpinned tab to the left, just to the end
of the pinned region, would cause the pinned tabs to become unpinned.

Joseph T. Lyons created

7b4f373 Refactor some logic in `handle_tab_drop` (#32213)

Click to expand commit body
Tiny little clean up PR after #32184 

Release Notes:

- N/A

Joseph T. Lyons created

9b8035e Fix bugs around tab state loss when moving pinned tabs across panes (#32184)

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

In the screenshots: left = nightly, right = dev

Fix 1: A pinned tab dragged into a new split should remain pinned


https://github.com/user-attachments/assets/608a7e10-4ccb-4219-ba81-624298c960b0

Fix 2: Moving a pinned tab from one pane to another should not cause
other pinned tabs to be unpinned


https://github.com/user-attachments/assets/ccc05913-591d-4a43-85bb-3a7164a4d6a8

I also added tests for moving both pinned tabs and unpinned tabs into
existing panes, both into the "pinned" region and the "unpinned" region.

Release Notes:

- Fixed a bug where dragging a pinned tab into a new split would lose
its pinned tab state.
- Fixed a bug where pinned tabs in one pane could be lost when moving
one of the pinned tabs to another pane.

Joseph T. Lyons created

f6fdb70 ci: Auto-release release prefix hotfixes again (#32265)

Click to expand commit body
Undo:
- https://github.com/zed-industries/zed/pull/24894

CC: @JosephTLyons

Release Notes:

- N/A

Peter Tripp created

0c90b19 Build `zed-remote-server` on FreeBSD (#29561)

Click to expand commit body
Builds freebsd-remote-server under qemu working on linux runners.

Release Notes:

- Initial support for ssh remotes running FreeBSD x86_64

Peter Tripp created

cb28854 Bump to 0.190.1 for @ConradIrwin

Zed Bot created

6535a14 Fix innermost brackets panic (cherry-pick #32120) (#32189)

Click to expand commit body
Cherry-picked Fix innermost brackets panic (#32120)

Release Notes:

- Fixed a few rare panics that could happen when a multibuffer excerpt
started with expanded deleted content.

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

gcp-cherry-pick-bot[bot] and Conrad Irwin created

fc3a5a7 Fix a panic in merge conflict parsing (cherry-pick #32119) (#32123)

Click to expand commit body
Cherry-picked Fix a panic in merge conflict parsing (#32119)

Release Notes:

- Fixed a panic that could occur when editing files containing merge
conflicts.

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

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

393382c Bump tree-sitter-bash to 0.25 (#32091)

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

Release Notes:

- Fixed a crash that could occur when editing bash files

Max Brunsfeld created

2ad24ef Bump Tree-sitter to 0.25.6 (#32090)

Click to expand commit body
Fixes #31810 

Release Notes:

- Fixed a crash that could occur when editing YAML files.

Max Brunsfeld created

185e069 ruby: Add `sorbet` and `steep` to the list of available language servers (#32008)

Click to expand commit body
Hi, this pull request adds `sorbet` and `steep` to the list of available
language servers for the Ruby language in order to prepare default Ruby
language settings for these LS. Both language servers are disabled by
default. We plan to add both in #104 and #102. Thanks!

Release Notes:

- ruby: Added `sorbet` and `steep` to the list of available language servers.

Vitaly Slobodin created

750c635 v0.190.x preview

Joseph T. Lyons created

4304521 Remove unused load_model method from LanguageModelProvider (#32070)

Click to expand commit body
Removes the load_model trait method and its implementations in Ollama
and LM Studio providers, along with associated preload_model functions
and unused imports.

Release Notes:

- N/A

Ben Brandt created

04716a0 edit_file_tool: Fail when edit location is not unique (#32056)

Click to expand commit body
When `<old_text>` points to more than one location in a file, we used to
edit the first match, confusing the agent along the way. Now we will
return an error, asking to expand `<old_text>` selection.

Closes #ISSUE

Release Notes:

- agent: Fixed incorrect file edits when edit locations are ambiguous

Oleksiy Syvokon created

5e38915 Properly register buffers with reused language servers (#32057)

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

The old code does something odd, re-accessing essentially the same
adapter-server pair for every language server initialized; but that was
done before for "incorrect", non-reused worktree_id hence never resulted
in external worktrees' files registration in this code path.

Release Notes:

- Fixed certain external worktrees' files sometimes not registered with
language servers

Kirill Bulatov created

f9257b0 debugger: Use UUID for Go debug binary names, do not rely on OUT_DIR (#32004)

Click to expand commit body
It seems that there was a regression. `build_config` no longer has an
`OUT_DIR` in it.
On way to mitigate it is to stop relying on it and just use `cwd` as dir
for the test binary to be placed in.

Release Notes:
- N/A

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

Alex and Piotr Osiewicz created

5d0c968 editor: Stabilize IME candidate box position during pre-edit on Wayland (#28429)

Click to expand commit body
Modify the `replace_and_mark_text_in_range` method in the `Editor` to
keep the cursor at the start of the preedit range during IME
composition. Previously, the cursor would move to the end of the preedit
text with each update, causing the IME candidate box to shift (e.g.,
when typing pinyin with Fcitx5 on Wayland). This change ensures the
cursor and candidate box remain fixed until the composition is
committed, improving the IME experience.

Closes #21004

Release Notes:

- N/A

---------

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

Wanten , Mikayla Maki , and 张小白 created

071e684 bedrock: Fix ci failure due model enum and model name mismatch (#32049)

Click to expand commit body
Release Notes:

- N/A

Umesh Yadav created

2280594 bedrock: Allow users to pick Thinking vs. Non-Thinking models (#31600)

Click to expand commit body
Release Notes:

- bedrock: Added ability to pick between Thinking and Non-Thinking models

Shardul Vaidya created

09a1d51 bedrock: Fix Claude 4 output token bug (#31599)

Click to expand commit body
Release Notes:

- Fixed an issue preventing the use of Claude 4 Thinking models with Bedrock

Shardul Vaidya created

ac15194 docs: Add OpenRouter agent support (#32011)

Click to expand commit body
Update few other docs as well. Like recently tool support was added for
deepseek. Also there was recent thinking and images support for ollama
model.

Release Notes:

- N/A

Umesh Yadav created

988d834 project_panel: When initiating a drag the highlight selection should jump to the item you've picked up (#32044)

Click to expand commit body
Closes #14496.

In https://github.com/zed-industries/zed/pull/31976, we modified the
highlighting behavior for entries when certain entries or paths are
being dragged over them. Instead of relying on marked entries for
highlighting, we introduced the `highlight_entry_id` parameter, which
determines which entry and its children should be highlighted when an
item is being dragged over it.

The rationale behind that is that we can now utilize marked entries for
various other functions, such as:

1. When dragging multiple items, we use marked entried to show which
items are being dragged. (This is already covered because to drag
multiple items, you need to use marked entries.)
2. When dragging a single item, set that item to marked entries. (This
PR)


https://github.com/user-attachments/assets/8a03bdd4-b5db-467d-b70f-53d9766fec52

Release Notes:

- Added highlighting to entries being dragged in the Project Panel,
indicating which items are being moved.

Smit Barmase created

48eacf3 Add `#[track_caller]` to test utilities that involve marked text (#32043)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

030d4d2 project_panel: Holding `alt` or `shift` to copy the file should adds a green (+) icon to the mouse cursor (#32040)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/14496

Depends on new API https://github.com/zed-industries/zed/pull/32028

Holding `alt` or `shift` to copy the file should add a green (+) icon to
the mouse cursor to indicate this is a copy operation.

1. Press `option` first, then drag:


https://github.com/user-attachments/assets/ae58c441-f1ab-423e-be59-a8ec5cba33b0

2. Drag first, then press `option`:


https://github.com/user-attachments/assets/5136329f-9396-4ab9-a799-07d69cec89e2

Release Notes:

- Added copy-drag cursor when pressing Alt or Shift to copy the file in
Project Panel.

Smit Barmase created

10df7b5 gpui: Add API for read and write active drag cursor style (#32028)

Click to expand commit body
Prep for https://github.com/zed-industries/zed/pull/32040

Currently, there’s no way to modify the cursor style of the active drag
state after dragging begins. However, there are scenarios where we might
want to change the cursor style, such as pressing a modifier key while
dragging. This PR introduces an API to update and read the current
active drag state cursor.

Release Notes:

- N/A

Smit Barmase created

55120c4 Properly load environment variables from the login shell (#31799)

Click to expand commit body
Fixes #11647
Fixes #13888
Fixes #18771
Fixes #19779
Fixes #22437
Fixes #23649
Fixes #24200
Fixes #27601

Zed’s current method of loading environment variables from the login
shell has two issues:
1. Some shells—​fish in particular—​​write specific escape characters to
`stdout` right before they exit. When this happens, the tail end of the
last environment variable printed by `/usr/bin/env` becomes corrupted.
2. If a multi-line value contains an equals sign, that line is
mis-parsed as a separate name-value pair.

This PR addresses those problems by:
1. Redirecting the shell command's `stdout` directly to a temporary
file, eliminating any side effects caused by the shell itself.
2. Replacing `/usr/bin/env` with `sh -c 'export -p'`, which removes
ambiguity when handling multi-line values.

Additional changes:
- Correctly set the arguments used to launch a login shell under `csh`
or `tcsh`.
- Deduplicate code by sharing the implementation that loads environment
variables on first run with the logic that reloads them for a project.



Release Notes:

- N/A

Haru Kim created