Commit log

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

8227c45 docs: Document debugger.dock setting (#32038)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

d23359e debugger: Fix issues with running Zed-installed debugpy + hangs when downloading (#32034)

Click to expand commit body
Closes #32018

Release Notes:

- Fixed issues with launching Python debug adapter downloaded by Zed.
You might need to clear the old install of Debugpy from
`$HOME/.local/share/zed/debug_adapters/Debugpy` (Linux) or
`$HOME/Library/Application Support/Zed/debug_adapters/Debugpy` (Mac).

Piotr Osiewicz created

936ad0b Use better fallback for empty rerun action (#32031)

Click to expand commit body
When invoking the task rerun action before any task had been run, it
falls back to task selection modal.
Adjust this fall back to use the debugger view, if available:

Before:

![before](https://github.com/user-attachments/assets/737d2dc1-15a4-4eea-a5f9-4aff6c7600cc)


After:

![after](https://github.com/user-attachments/assets/43381b85-5167-44e7-a8b0-865a64eaa6ea)


Release Notes:

- N/A

Kirill Bulatov created

faa0bb5 Better log canonicalization errors (#32030)

Click to expand commit body
Based on
https://github.com/zed-industries/zed/issues/18673#issuecomment-2933025951

Adds an anyhow error context with the path used for canonicalization
(also, explicitly mention path at the place from the comment).

Release Notes:

- N/A

Kirill Bulatov created

2db2271 Do not activate inactive tabs when pinning or unpinning

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

Release Notes:

- Fixed a bug where inactive tabs would be activated when pinning or
unpinning.

Joseph T. Lyons created

79b1dd7 Improve collab cleanup (#32000)

Click to expand commit body
Co-authored-by: Max <max@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>

Release Notes:

- N/A

Conrad Irwin created

81f8e2e Limit BufferSnapshot::surrounding_word search to 256 characters (#32016)

Click to expand commit body
This is the first step to closing #16120. Part of the problem was that
`surrounding_word` would search the whole line for matches with no
limit.

Co-authored-by: Conrad Irwin \<conrad@zed.dev\>
Co-authored-by: Ben Kunkle \<ben@zed.dev\>
Co-authored-by: Cole Miller \<cole@zed.dev\>

Release Notes:

- N/A

Anthony Eid created

b9256dd editor: Apply `common_prefix_len` refactor suggestion (#31957)

Click to expand commit body
This adds João's nice suggestion from
https://github.com/zed-industries/zed/pull/31818#discussion_r2118582616.

Release Notes:

- N/A

---------

Co-authored-by: João Marcos <marcospb19@hotmail.com>

Gilles Peiffer and João Marcos created

27d3da6 editor: Fix panic when full width crease is wrapped (#31960)

Click to expand commit body
Closes #31919

Release Notes:

- Fixed a panic that could sometimes occur when the agent panel was too
narrow and contained context included via `@`.

---------

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

Bennet Bo Fenner , Antonio , and Antonio Scandurra created

03357f3 Fix panic when re-editing old message with creases (#32017)

Click to expand commit body
Co-authored-by: Cole Miller <m@cole-miller.net>

Release Notes:

- agent: Fixed a panic when re-editing old messages

---------

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

Conrad Irwin , Cole Miller , and Cole Miller created

4aabba6 Improve Zed prompts for file path selection (#32014)

Click to expand commit body
Part of https://github.com/zed-industries/zed/discussions/31653
`"use_system_path_prompts": false` is needed in settings for these to
appear as modals for new file save and file open.

Fixed a very subpar experience of the "save new file" Zed modal,
compared to a similar "open file path" Zed modal by uniting their code.

Before:


https://github.com/user-attachments/assets/c4082b70-6cdc-4598-a416-d491011c8ac4


After:



https://github.com/user-attachments/assets/21ca672a-ae40-426c-b68f-9efee4f93c8c


Also 

* alters both prompts to start in the current worktree directory, with
the fallback to home directory.
* adjusts the code to handle Windows paths better

Release Notes:

- Improved Zed prompts for file path selection

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

Kirill Bulatov and Smit Barmase created

8c46a4f Make completions menu stay open after after it's manually requested (#32015)

Click to expand commit body
Also includes a clarity refactoring to remove
`ignore_completion_provider`.

Closes #15549

Release Notes:

- Fixed completions menu closing on typing after being requested while
`show_completions_on_input: false`.

Michael Sloan created

522abe8 Change default formatter settings for LaTeX (#28727)

Click to expand commit body
Closes: https://github.com/rzukic/zed-latex/issues/77 

## Default formatter: `latexindent`
Before, formatting was delegated to the language server, which just ran
a `latexindent` executable. There was no benefit to running it through
the language server over running it as an "external" formatter in zed.
In fact this was an issue because there was no way to provide an
explicit path for the executable (causing above extension issue). Having
the default settings configure the formatter directly gives more control
to user and removes the number of indirections making it clearer how to
tweak things like the executable path, or extra CLI args, etc...

## Alternative: `prettier`
Default settings have also been added to allow prettier as the formatter
(by just setting `"formatter": "prettier"` in the "LaTeX" language
settings). This was not possible before because an extra line needed to
be added to the `prettier` crate (similarly to what was done for
https://github.com/zed-industries/zed/issues/19024) to find the plugin
correctly.
> [!NOTE]
> The `prettier-plugin-latex` node module also contained a
`dist/standalone.js` but using that instead of
`dist/prettier-plugin-latex.js` gave an error, and indeed the latter
worked as intended (along with its questionable choices for formatting).

Release Notes:

- LaTeX: added default `latexindent` formatter settings without relying
on `texlab`, as well as allowing `prettier` to be chosen for formatting

---------

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

Luke Naylor and Peter Tripp created

5ae8c4c Fix word completions clobbering the text after the cursor (#32010)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

d8195a8 project_panel: Highlight containing folder which would be the target of the drop operation (#31976)

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

This PR adds highlighting on the containing folder which would be the
target of the drop operation. It only highlights those directories where
actual drop is possible, i.e. same directory where drag started is not
highlighted.

- [x] Tests


https://github.com/user-attachments/assets/46528467-e07a-4574-a8d5-beab25e70162

Release Notes:

- Improved project panel to show a highlight on the containing folder
which would be the target of the drop operation.

Smit Barmase created

2645591 agent: Allow to accept and reject all via the panel (#31971)

Click to expand commit body
This PR introduces the "Reject All" and "Accept All" buttons in the
panel's edit bar, which appears as soon as the agent starts editing a
file. I'm also adding here a new method to the thread called
`has_pending_edit_tool_uses`, which is a more specific way of knowing,
in comparison to the `is_generating` method, whether or not the
reject/accept all actions can be triggered.

Previously, without this new method, you'd be waiting for the whole
generation to end (e.g., the agent would be generating markdown with
things like change summary) to be able to click those buttons, when the
edit was already there, ready for you. It always felt like waiting for
the whole thing was unnecessary when you really wanted to just wait for
the _edits_ to be done, as so to avoid any potential conflicting state.

<img
src="https://github.com/user-attachments/assets/0927f3a6-c9ee-46ae-8f7b-97157d39a7b5"
width="500"/>

---

Release Notes:

- agent: Added ability to reject and accept all changes from the agent
panel.

---------

Co-authored-by: Agus Zubiaga <hi@aguz.me>

Danilo Leal and Agus Zubiaga created

526a7c0 agent: Support `AGENT.md` and `AGENTS.md` as rules file names (#31998)

Click to expand commit body
These started to be used more recently, so we should also support them.

Release Notes:

- agent: Added support for `AGENT.md` and `AGENTS.md` as rules file
names.

Danilo Leal created

e793740 agent: Refine rules library window design (#31994)

Click to expand commit body
Just polishing up a bit the Rules Library design. I think the most
confusing part here was the icon that was being used to tag a rule as
default; I've heard feedback more than once saying that was confusing,
so I'm now switching to a rather standard star icon, which I'd assume is
well-understood as a "favoriting" affordance.

Release Notes:

- N/A

Danilo Leal created

dea0a58 docs: Update mentions to GitHub to use correct capitalization (#31996)

Click to expand commit body
That type of thing... 😅 "Github" is the incorrect formatting; "GitHub"
is the correct.

Release Notes:

- N/A

Danilo Leal created