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
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)
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.
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
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
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
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
#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
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