Commit log

a3f0701 Switch GitHub Copilot Chat from o1-mini to o3-mini (#24080)

Click to expand commit body
Co-authored-by: SkywardSyntax <87048477+SkywardSyntax@users.noreply.github.com>

Peter Tripp and SkywardSyntax created

74696bc zed 0.171.6

Peter Tripp created

b24e84f assistant: Use GPT 4 tokenizer for `o3-mini` (#24068)

Click to expand commit body
Sorry to dump an unsolicited PR for a hot feature! I'm sure someone else
was taking a look at this.

I noticed that token counting was disabled and I was getting error logs
of the form `[2025-01-31T22:59:01-05:00 ERROR assistant_context_editor]
No tokenizer found for model o3-mini` when using the new model. To fix
the issue, this PR registers the `gpt-4` tokenizer for this model.

Release Notes:

- openai: Fixed Assistant token counts for `o3-mini` models

Roshan Padaki created

95f3071 zed 0.171.5

Peter Tripp created

7d90fd3 lmstudio: Support missing quantization in model metadata (#24054)

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

Certain models do not include `quantization` parameter from lm studio rest API.

Peter Tripp created

a1bfec3 chore: Fix default.json formatting (#24053)

Click to expand commit body
Forgot to run default.json through prettier in #24051. Oops.

Peter Tripp created

a5c435c Improve inline_completions.disabled_globs in default.json (#24051)

Click to expand commit body
Make sure that inline completions (Copilot, etc) are disabled for more secret globs (matches `private_files`)

Peter Tripp created

e9c0bad Add OpenAI o3-mini support (#24044)

Click to expand commit body
Release Notes:

- Add support for OpenAI o3-mini

Peter Tripp created

d71319b Bump to 0.171.4 for @osiewicz

Zed Bot created

67d3e40 workspace: Make "New Window" bring app to foreground (#24015)

Click to expand commit body
Closes #ISSUE

Release Notes:

- "New Window" action will now bring App to foreground.

Piotr Osiewicz created

703dc9d Fix `project_panel::NewDirectory` in TextMate keymap (cherry-pick #23825) (#23905)

Click to expand commit body
Cherry-picked Fix `project_panel::NewDirectory` in TextMate keymap
(#23825)

Release Notes:

- Fixed incorrect action names in TextMate keymap.

Co-authored-by: Jason Lee <huacnlee@gmail.com>

gcp-cherry-pick-bot[bot] and Jason Lee created

58859c1 v0.171.x stable

Joseph T. Lyons created

ac2402f Fix terminal drag and drop (cherry-pick #23827) (#23828)

Click to expand commit body
Cherry-picked Fix terminal drag and drop (#23827)

Closes https://github.com/zed-industries/zed/discussions/23823

* Fixes terminal drag and drop not working after
https://github.com/zed-industries/zed/pull/23256
* Fixes project panel items drag and drop not working after selection
overhaul even earlier: now, all marked items are added to terminal on
drag and drop

Release Notes:

- Fixed terminal drag and drop, including project panel items

---------

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

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

b5b66f7 Prompt users to use Discussions for feature requests (#23821)

Click to expand commit body
I'm moving forward on this - we can revert if it ends up being a bad
move.

Release Notes:

- N/A

Joseph T. Lyons created

ad054eb Attempt to suppress embeds in Discord webhook (#23807)

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

(hopefully 🤞)

Release Notes:

- N/A

Joseph T. Lyons created

52b93c2 Bump to 0.171.3 for @maxdeviant

Zed Bot created

599992a Add DeepSeek support to Zed Preview (#23800)

Click to expand commit body
This PR is a port of #23734 to Zed Preview.

Forgot that we needed this in order for DeepSeek support to remain
available in Stable tomorrow.

Release Notes:

- Added support for DeepSeek to the Assistant.

Marshall Bowers created

0a2fc20 vim: Fix `NextSubwordEnd` crash (cherry-pick #23604) (#23760)

Click to expand commit body
Cherry-picked vim: Fix `NextSubwordEnd` crash (#23604)

Closes #23550 

Release Notes:

- N/A

Co-authored-by: CharlesChen0823 <yongchen0823@gmail.com>

gcp-cherry-pick-bot[bot] and CharlesChen0823 created

d3ea0aa Update actions to open GitHub issue templates (#23747)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

07b76fa Bump to 0.171.2 for @SomeoneToIgnore

Zed Bot created

e1e4c1b Avoid panics when normalizing completion label with invalid ranges (cherry-pick #23712) (#23719)

Click to expand commit body
Cherry-picked Avoid panics when normalizing completion label with
invalid ranges (#23712)

Dev builds show panics related to completion label normalization

<details>
<summary>Panic</summary>

```
index out of bounds: the len is 103 but the index is 103
zed::reliability::init_panic_hook::{{closure}}::h78130eff43c84f6f+110375521
std::panicking::rust_panic_with_hook::hfe205f6954b2c97b+87457752
std::panicking::begin_panic_handler::{{closure}}::h6cb44b3a50f28c44+87456967
std::sys::backtrace::__rust_end_short_backtrace::hf1c1f2a92799bb0e+87449337
rust_begin_unwind+87456084
core::panicking::panic_fmt::h3d8fc78294164da7+7033011
core::panicking::panic_bounds_check::h9397cb495d89a72d+7033511
project::lsp_store::ensure_uniform_list_compatible_label::haf80316ce11edd67+72663592
project::lsp_store::populate_labels_for_completions::{{closure}}::hc93c3c540ef7d2d6+72642960
project::lsp_store::LspStore::completions::{{closure}}::{{closure}}::hb4b5432e24432ca8+72336627
async_task::raw::RawTask<F,T,S,M>::run::hf444c3dc07dd583b+68504803
<gpui::platform::linux::wayland::client::WaylandClient as gpui::platform::linux::platform::LinuxClient>::run::hbf5a316eb781a10d+50646579
gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run::hc85518d4552fc4cd+50496669
gpui::app::App::run::hca4e2eaf984ca6f6+109905269
zed::main::h849467ac1a6d32c9+110413414
std::sys::backtrace::__rust_begin_short_backtrace::h81b5ee155a7cf505+110835475
std::rt::lang_start::{{closure}}::h48a83f884cfb6865+110834761
std::rt::lang_start_internal::h5e7c81cecd7f0954+87382485
main+110425932
__libc_start_call_main+22789462491720
__libc_start_main_alias_1+22789462491915
_start+10436606
```
</details>

This can only happen when either `label.runs` or `label.filter_range`
has a range that's larger than the label text, which is an error.
Instead of panicking, log such errors and fall back to last index (which
is not really helpful, but still).

Release Notes:

- N/A

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

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

d264d93 openai: Add back O1-Preview (#23715)

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

Peter Tripp created

4698b36 Revert making keybinding display in Mac menus use standard precedence (#23661)

Click to expand commit body
Closes #23621

Change was in #23378. Also adds a comment to clarify why this is
inconsistent with all other uses of `bindings_for_action`.

Release Notes:

- N/A

Michael Sloan created

59b35e5 Remove unwrap in GitTraversal::synchronize_statuses (cherry-pick #23555) (#23556)

Click to expand commit body
Cherry-picked Remove unwrap in GitTraversal::synchronize_statuses
(#23555)

Release Notes:

- Fixed a potential panic in handling of Git statuses.

Co-authored-by: Marshall <marshall@zed.dev>

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

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

23b8561 Bump to 0.171.1 for @SomeoneToIgnore

Zed Bot created

5ad757e Fix LSP violation when dismissing server notifications (cherry-pick #23531) (#23536)

Click to expand commit body
Cherry-picked Fix LSP violation when dismissing server notifications
(#23531)

Part of https://github.com/zed-industries/zed/issues/22606
Closes https://github.com/zed-industries/zed/issues/23509

When a user sees an odd notification from the language server like

<img width="508" alt="image"

src="https://github.com/user-attachments/assets/6f5ef1aa-0f09-4705-a02a-aaf81dd8620c"
/>

they usually dismiss that.

Zed uses channels to wait and handle user interactions with such
notifications, and, due to `?`, sends back
```json
{"jsonrpc":"2.0","id":1,"error":{"message":"receiving from an empty and closed channel"}}
```

which is not spec-compliant:

https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#window_showMessageRequest

> Response:
>
> * result: the selected

[MessageActionItem](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#messageActionItem)
| null if none got selected.
> * error: code and message set in case an exception happens during
showing a message.

Unfortunately, vtsls (and, potentially, others) crash if receive such
non-compliant requests, and do not get back.

After the fix, the message is correct:
```json
{"jsonrpc":"2.0","id":1,"result":null}
```


Release Notes:

- Fixed vtsls crashing on notification dismiss

Co-authored-by: Piotr Osiewicz <piotr@zed.dev>

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

gcp-cherry-pick-bot[bot] , Kirill Bulatov , and Piotr Osiewicz created

1ce81bc Omit `tsdk_path` from the servers' options if it does not exist

Kirill Bulatov created

2d6aa1b v0.171.x preview

Peter Tripp created

da406ae Revert "project: Allow running multiple instances of a single language server within a single worktree" (#23472)

Click to expand commit body
Reverts zed-industries/zed#22182
I've merged the build too soon as I wanted it to be excluded from todays
Preview.

Piotr Osiewicz created

706e46c vim: Fix % not working for multi-char bracket pairs (#23471)

Click to expand commit body
Closes #23358

Demo/proof:


https://github.com/user-attachments/assets/2036d183-8830-415b-9155-0d3efe3d824c




Release Notes:

- Fixed `%` in Vim mode not working correctly for multi-char brackets,
such as `do/end` in Elixir or `\begin` and `\end` in LaTeX.

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

Thorsten Ball and Conrad created

5be2784 git_ui: Feature flag repo selector (#23470)

Click to expand commit body
Fixes an issue where the repo selector showed for all users, not just
those in the git_ui feature flag.

This was meant to be included in the `git_ui` feature flag.

Release Notes:

- N/A

Nate Butler created

bed917b project: Allow running multiple instances of a single language server within a single worktree (#22182)

Click to expand commit body
This PR introduces a new entity called Project Tree which is responsible
for finding subprojects within a worktree;
a subproject is a language-specific subset of a worktree which should be
accurately tracked on the language server side. We'll have an ability to
set multiple disjoint `workspaceFolder`s on language server side OR
spawn multiple instances of a single language server (which will be the
case with e.g. Python language servers, as they need to interact with
multiple disjoint virtual environments).
Project Tree assumes that projects of the same LspAdapter kind cannot
overlap. Additionally **project nesting** is not allowed within the
scope of a single LspAdapter.

Closes #5108

Release Notes:

- Language servers now track their working directory more accurately.

---------

Co-authored-by: João <joao@zed.dev>

Piotr Osiewicz and João created

d85fec5 Update "Book Onboarding" destination link (#23464)

Click to expand commit body
This PR updates the Book Onboarding links to point to a new form.

Release Notes:

- N/A

Danilo Leal created

95cde12 Show "tab Accept" only for zeta (#23463)

Click to expand commit body
#23460 brought up we are showing the new "tab Accept" marker for single
line suggestions for non-zeta providers. We think this might be valid
for any provider, but we only want to enable it for zeta initially so it
doesn't affect an existing user base.

Release Notes:

- N/A

Agus Zubiaga created

1e88e29 assistant2: Respect panel dock position (#23465)

Click to expand commit body
This PR fixes an issue where Assistant2 was not respecting the panel
dock position.

Release Notes:

- N/A

Marshall Bowers created

636df12 Only show accept callout if suggestion is all insertions/deletions (#23461)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

55721c6 Fix single line edit prediction detection (#23456)

Click to expand commit body
#23411 introduced an "Accept" callout for single line edits, but the
logic to detect them was incorrect causing it to trigger for multiline
insertions, this PR fixes that.

Release Notes:

- N/A

Agus Zubiaga created

f0b5b0b lsp: Ignore payload of `DidChangeConfiguration` dynamic registration (#23454)

Click to expand commit body
Fixes #23430

Closes #23430

Release Notes:

- N/A

Piotr Osiewicz created

c66f611 windows: Improve foreground task dispatching on Windows (continued) (#23415)

Click to expand commit body
Closes #22653 again

In PR #23283, I thought that every `runnable` dispatched to the main
thread would correspond to an `EVENT_DISPATCHED` message in the message
queue. However, after testing, some `runnable`s occasionally weren’t
executed.

This PR updated the code as follows:  
```rust
if let Ok(runnable) = self.main_receiver.try_recv() {    <-- before
for runnable in self.main_receiver.drain() {            <-- after
    runnable.run();
}
```

This ensures that runnables are handled more proactively on the main
thread, now we handle `runnable`s with a much higher priority.

A big thanks to @MolotovCherry and @ArthurBrussee for their testing
efforts!

Release Notes:

- N/A

张小白 created

2f1af2a When completions menu is displayed above cursor, reverse order (#23446)

Click to expand commit body
Considered doing this when previously working on completions menu
layout, as it brings the default selection position next to the cursor
position, and is generally more symmetrical. With #23445 there is now a
more compelling reason, as the "translucent, cropped bottom" display
doesn't make sense when displayed above.

Release Notes:

- N/A

Michael Sloan created

1769bc9 Make app notifications appear in new workspaces + dismiss on all workspaces (#23432)

Click to expand commit body
The keymap error notifications got convoluted to support displaying the
notification on startup. This change addresses it systemically for all
future app notifications.

Reverts most of #20531, while keeping the fix to handle keyboard layout
switching. This is a better fix for #20531

Release Notes:

- N/A

Michael Sloan created

1e1997c Wire up `AssistantPanelDelegate` based on `assistant2` feature flag (#23444)

Click to expand commit body
This PR adjusts how the `AssistantPanelDelegate` global is set to be
based on the state of the feature flag.

This should prevent `assistant` and `assistant2` from potentially
clobbering each other.

Release Notes:

- N/A

Marshall Bowers created

9ee1db3 assistant2: Insert default prompt into prompt editor (#23443)

Click to expand commit body
This PR fixes an issue where the default prompt was not being inserted
into the prompt editor in Assistant2.

Release Notes:

- N/A

Marshall Bowers created

c887bf8 Consolidate Assistant panels in `assistant2` feature flag (#23442)

Click to expand commit body
This PR consolidates the two Assistant panels into one for users in the
`assistant2` feature flag.

Now that the Assistant1 prompt editor is accessible through the
Assistant2 panel, we no longer have a need to show both panels.

Release Notes:

- N/A

Marshall Bowers created

7516b8c assistant2: Add prompt editor history (#23439)

Click to expand commit body
This PR adds the prompt editor history to Assistant2.

<img width="1309" alt="Screenshot 2025-01-21 at 9 02 07 PM"
src="https://github.com/user-attachments/assets/d79936fe-1c23-425f-b99d-43f85afd0c39"
/>

Release Notes:

- N/A

Marshall Bowers created

be407e2 Extract `ContextHistory` to `assistant_context_editor` (#23437)

Click to expand commit body
This PR extracts the `ContextHistory` to the `assistant_context_editor`
crate.

Release Notes:

- N/A

Marshall Bowers created

e59c910 assistant2: Add prompt editor (#23436)

Click to expand commit body
This PR adds the Assistant1 experience to Assistant2 as a "prompt
editor".

<img width="1309" alt="Screenshot 2025-01-21 at 7 17 26 PM"
src="https://github.com/user-attachments/assets/3ce2f32b-2b1a-48a8-8e56-4c44e3ac4ce5"
/>

Release Notes:

- N/A

Marshall Bowers created

3d47f32 Add support for `editor::SwapSelectionEnds` everywhere (emacs exchange-point-and-mark) (#23428)

Click to expand commit body
Add `editor:: SwapSelectionEnds ` action which swaps the cursor location from the beginning/end of a given selection.
Renamed from `editor::ExchangeMark` to `editor::SwapSelectionEnds`.
Unbound by default, bound to `ctrl-x ctrl-x` in Emacs keymap.

Peter Tripp created

31909bf git: Implement a basic repository selector (#23419)

Click to expand commit body
This PR adds a rough-and-ready picker for selecting which of the
project's repositories the git panel should display.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Nate <nate@zed.dev>

Cole Miller , Nate Butler , and Nate created

417760a Extract `ContextEditor` to `assistant_context_editor` (#23433)

Click to expand commit body
This PR extracts the `ContextEditor` to the `assistant_context_editor`
crate.

As part of this, we have decoupled the `ContextEditor` from the
`AssistantPanel`.

There is now an `AssistantPanelDelegate` that the `ContextEditor` uses
when it needs to interface with the Assistant panel.

Release Notes:

- N/A

Marshall Bowers created