7c57ffa
Update `.mailmap` (#17182)
Click to expand commit body
This PR updates the `.mailmap` file to merge some more commit authors. Release Notes: - N/A
Marshall Bowers created
7c57ffa
Update `.mailmap` (#17182)
This PR updates the `.mailmap` file to merge some more commit authors. Release Notes: - N/A
Marshall Bowers created
bb9f2f8
collab: Require `github_user_created_at` at ingress points (#17180)
This PR makes the `github_user_created_at` field required at ingress points into collab. In practice we already have this value passed up, this change just makes that explicit. This is a precursor to making it required in the database. Release Notes: - N/A
Marshall Bowers created
9a8c301
collab: Set `github_user_created_at` when seeding GitHub users (#17178)
This PR updates the seed script to set the `github_user_created_at` value for each GitHub user. Release Notes: - N/A
Marshall Bowers created
58c0f39
OpenAI: Fix GPT-4. Only include max_tokens when max_output_tokens provided (#17168)
- Fixed GPT-4 breakage (incorrect `max_output_tokens` handling).
Peter Tripp created
ee6ec50
Fix `-` being a word character for selections (#17171)
Co-Authored-By: Mikayla <mikayla@zed.dev> Co-Authored-By: Nate <nate@zed.dev> Closes #15606 Closes #13515 Release Notes: - Fixes `-` being considered a word character for selections in some languages Co-authored-by: Mikayla <mikayla@zed.dev> Co-authored-by: Nate <nate@zed.dev>
Conrad Irwin , Mikayla , and Nate created
c0731bf
assistant: Fix formatting in settings (#17172)
This PR fixes some formatting issues in `assistant_settings.rs` that were being caused by long lines. Release Notes: - N/A
Marshall Bowers created
68ea661
assistant: Add foundation for receiving tool uses from Anthropic models (#17170)
This PR updates the Assistant with support for receiving tool uses from Anthropic models and capturing them as text in the context editor. This is just laying the foundation for tool use. We don't yet fulfill the tool uses yet, or define any tools for the model to use. Here's an example of what it looks like using the example `get_weather` tool from the Anthropic docs: <img width="644" alt="Screenshot 2024-08-30 at 1 51 13 PM" src="https://github.com/user-attachments/assets/3614f953-0689-423c-8955-b146729ea638"> Release Notes: - N/A
Marshall Bowers created
ea25d43
anthropic: Remove `cache_control` field from `ResponseContent` (#17165)
This PR removes the `cache_control` field from the variants in `ResponseContent`. This field is used on requests to control the caching behavior, but is not needed on content in the response. Release Notes: - N/A
Marshall Bowers created
8901d92
anthropic: Use separate `Content` type in requests and responses (#17163)
This PR splits the `Content` type for Anthropic into two new types: `RequestContent` and `ResponseContent`. As I was going through the Anthropic API docs it seems that there are different types of content that can be sent in requests vs what can be returned in responses. Using a separate type for each case tells the story a bit better and makes it easier to understand, IMO. Release Notes: - N/A
Marshall Bowers created
00eed76
Fix Go test task when using Git submodules (#17108)
I have found an error running tests in Golang projects that use submodules. This PR fixes the issue by accessing the directory before running the test.  The `commons` in the image is a git submodule in a subfolder inside a parent folder where the workspace is set. Release Notes: - Fixed Go tests not being able to run in case the package (and the `go.mod`) was in a nested folder. Pre-defined Go tasks have been changed to now run in the package's directory. That means `go test ./package -run MyTest` will run in `./package` and execute `go test -run MyTest`. Also, `go test ./...` will run in the package directory, not at the root of the Zed project, which is a small breaking change. In case one wants to run `go test ./...` from the root, one can spawn a manual task that does this.  --------- Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Glaudiston Gomes da Silva and Thorsten Ball created
89632ff
gpui: Fix typo in `DefaultThemeAppearance` doc comment (#17157)
Release Notes: - N/A
Marshall Bowers created
c909bc0
docs: Fix Ollama formatting; remove stale link to stable Nix package (#17158)
Peter Tripp created
226d683
story: Remove unneeded `lib.name` (#17156)
This PR removes the `lib.name` field from the `story` crate's `Cargo.toml`, as it is not needed. Release Notes: - N/A
Marshall Bowers created
9c8b6f4
workspace: Fix weird behavior when save replaces the existing open file (#17123)
Fixes this weird behavior: - open an file, like `test.rs` - `ctrl-n` create an new buffer - `ctrl-s` save new buffer with name `test.rs`, select replace old file. - the older open file also exist, this is weird. Release Notes: - Fixed two panes staying opening when saving a new buffer with the same filename as a file that was already open.
CharlesChen0823 created
7cc24ea
ruby: Bump version to v0.2.0 (#17128)
**Changelog:** - Replace default tasks with a stub message (#16752) - Update tree-sitter grammar for the Ruby language (#16892) - Rename `rbs` to `RBS` (#16893) - Upgrade `zed_extension_api` to v0.1.0 (#16907) Release Notes: - N/A
Vitaly Slobodin created
0835d45
gpui: Fix text ellipsis appearing even the flex element has space (#17149)
Release Notes: - N/A There was a calculation bug before. When we added `text_ellipsis` to the flex element, it would always show ellipsis no matter how long it was. Actually we can't use `flex` and `text_ellipsis` at same time, the CSS also not support this. But this bug will let user confuse. ### Before <img width="731" alt="image" src="https://github.com/user-attachments/assets/b7d60017-6785-45f5-8b40-dd5efa154a1e"> ### After <img width="521" alt="image" src="https://github.com/user-attachments/assets/a3117793-284e-48d4-8c15-059fe61abe60">
Jason Lee created
b62e633
Ollama max_tokens settings (#17025)
- Support `available_models` for Ollama - Clamp default max tokens (context length) to 16384. - Add documentation for ollama context configuration.
Peter Tripp created
d401ab1
Make links in assistant configuration clickable (#17011)
Peter Tripp created
eb7367d
vim: Disable inline completions if not Insert/Replace mode (#17154)
This is a follow-up to - https://github.com/zed-industries/zed/pull/17137 - https://github.com/zed-industries/zed/pull/17138 (revert of #17137) and it does what I originally thought I wouldn't have to do: add another boolean to `Editor`. cc @ConradIrwin Release Notes: - Fixed inline completions (Copilot or Supermaven) showing up in Vim's normal mode.
Thorsten Ball created
32e96e1
workspace: Ensure last_active_center_pane is updated on focus (#17140)
This fixes a bug that I've been running into for quite a while: - Open a new terminal inside Zed - (Center pane loses focus) - (Workspace is serialized) - Quit Zed - Open Zed - (Workspace is deserialized without an active pane) - Put cursor in assistant panel - Try to use `ActivatePaneInDirection` to go to the center - Does not work So what this fix does is to ensure that in case the pane does become focused, even though it was already marked as focused, the active center pane is set. It also adds a fallback when trying to get the last active pane. Release Notes: - Fixed an issue where `workspace::ActivatePaneInDirection` could not activate the center pane (i.e. one couldn't navigate from terminal or assistant panel to the center pane) after loading Zed.
Thorsten Ball created
820ad48
Revert "vim: Don't show inline completions in normal mode (#17137)" (#17138)
This reverts commit 9206561662e8382e14f4ddf4db9f43ec64cf5972.
It lead to this panic:
```
Thread "main" panicked with "invalid SecondaryMap key used" at /Users/thorstenball/work/zed/crates/gpui/src/app/entity_map.rs:120:22
0: backtrace::backtrace::libunwind::trace
at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.73/src/backtrace/libunwind.rs:116:5
backtrace::backtrace::trace_unsynchronized::<<backtrace::capture::Backtrace>::create::{closure#0}>
at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.73/src/backtrace/mod.rs:66:5
1: backtrace::backtrace::trace::<<backtrace::capture::Backtrace>::create::{closure#0}>
at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.73/src/backtrace/mod.rs:53:14
2: <backtrace::capture::Backtrace>::create
at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.73/src/capture.rs:197:9
3: <backtrace::capture::Backtrace>::new
at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.73/src/capture.rs:162:22
4: zed::reliability::init_panic_hook::{closure#0}
at /Users/thorstenball/work/zed/crates/zed/src/reliability.rs:58:29
5: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/boxed.rs:2077:9
std::panicking::rust_panic_with_hook
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:799:13
6: std::panicking::begin_panic::<&str>::{closure#0}
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:694:9
7: std::sys_common::backtrace::__rust_end_short_backtrace::<std::panicking::begin_panic<&str>::{closure#0}, !>
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/sys_common/backtrace.rs:171:18
8: std::panicking::begin_panic::<&str>
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:693:12
9: <slotmap::secondary::SecondaryMap<gpui::app::entity_map::EntityId, alloc::boxed::Box<dyn core::any::Any>> as core::ops::index::Index<gpui::app::entity_map::EntityId>>::index
at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/slotmap-1.0.7/src/secondary.rs:866:21
10: <gpui::app::entity_map::EntityMap>::read::<vim::Vim>
at /Users/thorstenball/work/zed/crates/gpui/src/app/entity_map.rs:120:22
11: <gpui::app::entity_map::Model<vim::Vim>>::read
at /Users/thorstenball/work/zed/crates/gpui/src/app/entity_map.rs:397:9
12: <gpui::view::View<vim::Vim>>::read
at /Users/thorstenball/work/zed/crates/gpui/src/view.rs:81:9
13: <vim::VimAddon as editor::Addon>::should_show_inline_completions
at /Users/thorstenball/work/zed/crates/vim/src/vim.rs:138:20
14: <editor::Editor>::should_show_inline_completions
at /Users/thorstenball/work/zed/crates/editor/src/editor.rs:2347:21
15: <editor::Editor>::refresh_inline_completion
at /Users/thorstenball/work/zed/crates/editor/src/editor.rs:4988:17
16: <editor::Editor>::undo
at /Users/thorstenball/work/zed/crates/editor/src/editor.rs:6868:13
17: vim::normal::register::{closure#7}::{closure#0}
at /Users/thorstenball/work/zed/crates/vim/src/normal.rs:176:17
18: <vim::Vim>::update_editor::<(), vim::normal::register::{closure#7}::{closure#0}>::{closure#0}
at /Users/thorstenball/work/zed/crates/vim/src/vim.rs:693:45
19: <gpui::window::WindowContext as gpui::VisualContext>::update_view::<editor::Editor, (), <vim::Vim>::update_editor<(), vim::normal::register::{closure#7}::{closure#0}>::{closure#0}>
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:3890:22
20: <gpui::window::ViewContext<vim::Vim> as gpui::VisualContext>::update_view::<editor::Editor, (), <vim::Vim>::update_editor<(), vim::normal::register::{closure#7}::{closure#0}>::{closure#0}>
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:4522:9
21: <gpui::view::View<editor::Editor>>::update::<gpui::window::ViewContext<vim::Vim>, (), <vim::Vim>::update_editor<(), vim::normal::register::{closure#7}::{closure#0}>::{closure#0}>
at /Users/thorstenball/work/zed/crates/gpui/src/view.rs:76:9
22: <vim::Vim>::update_editor::<(), vim::normal::register::{closure#7}::{closure#0}>
at /Users/thorstenball/work/zed/crates/vim/src/vim.rs:693:14
23: vim::normal::register::{closure#7}
at /Users/thorstenball/work/zed/crates/vim/src/normal.rs:174:9
24: <gpui::window::ViewContext<vim::Vim>>::listener::<vim::normal::Undo, vim::normal::register::{closure#7}>::{closure#0}::{closure#0}
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:4444:40
25: <gpui::window::WindowContext as gpui::VisualContext>::update_view::<vim::Vim, (), <gpui::window::ViewContext<vim::Vim>>::listener<vim::normal::Undo, vim::normal::register::{closure#7}>::{closure#0}::{closure#0}>
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:3890:22
26: <gpui::view::View<vim::Vim>>::update::<gpui::window::WindowContext, (), <gpui::window::ViewContext<vim::Vim>>::listener<vim::normal::Undo, vim::normal::register::{closure#7}>::{closure#0}::{closure#0}>
at /Users/thorstenball/work/zed/crates/gpui/src/view.rs:76:9
27: <gpui::view::WeakView<vim::Vim>>::update::<gpui::window::WindowContext, (), <gpui::window::ViewContext<vim::Vim>>::listener<vim::normal::Undo, vim::normal::register::{closure#7}>::{closure#0}::{closure#0}>
at /Users/thorstenball/work/zed/crates/gpui/src/view.rs:192:12
28: <gpui::window::ViewContext<vim::Vim>>::listener::<vim::normal::Undo, vim::normal::register::{closure#7}>::{closure#0}
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:4444:13
29: <editor::Editor>::register_action::<vim::normal::Undo, <gpui::window::ViewContext<vim::Vim>>::listener<vim::normal::Undo, vim::normal::register::{closure#7}>::{closure#0}>::{closure#0}::{closure#0}
at /Users/thorstenball/work/zed/crates/editor/src/editor.rs:12053:25
30: <gpui::window::WindowContext>::dispatch_action_on_node
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:3514:21
31: <gpui::window::WindowContext>::dispatch_key_event
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:3303:13
32: <gpui::window::WindowContext>::dispatch_event
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:3131:13
33: <gpui::window::Window>::new::{closure#10}::{closure#0}
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:776:46
34: <gpui::app::AppContext as gpui::Context>::update_window::<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#10}::{closure#0}>::{closure#0}
at /Users/thorstenball/work/zed/crates/gpui/src/app.rs:1396:26
35: <gpui::app::AppContext>::update::<core::result::Result<gpui::window::DispatchEventResult, anyhow::Error>, <gpui::app::AppContext as gpui::Context>::update_window<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#10}::{closure#0}>::{closure#0}>
at /Users/thorstenball/work/zed/crates/gpui/src/app.rs:362:22
36: <gpui::app::AppContext as gpui::Context>::update_window::<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#10}::{closure#0}>
at /Users/thorstenball/work/zed/crates/gpui/src/app.rs:1387:9
37: <gpui::app::async_context::AsyncAppContext as gpui::Context>::update_window::<gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#10}::{closure#0}>
at /Users/thorstenball/work/zed/crates/gpui/src/app/async_context.rs:91:9
38: <gpui::window::AnyWindowHandle>::update::<gpui::app::async_context::AsyncAppContext, gpui::window::DispatchEventResult, <gpui::window::Window>::new::{closure#10}::{closure#0}>
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:4750:9
39: <gpui::window::Window>::new::{closure#10}
at /Users/thorstenball/work/zed/crates/gpui/src/window.rs:775:17
40: <alloc::boxed::Box<dyn core::ops::function::FnMut<(gpui::interactive::PlatformInput,), Output = gpui::window::DispatchEventResult>> as core::ops::function::FnMut<(gpui::interactive::PlatformInput,)>>::call_mut
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/boxed.rs:2070:9
41: gpui::platform::mac::window::handle_key_event
at /Users/thorstenball/work/zed/crates/gpui/src/platform/mac/window.rs:1300:32
42: gpui::platform::mac::window::handle_key_down
at /Users/thorstenball/work/zed/crates/gpui/src/platform/mac/window.rs:1212:5
43: <unknown>
44: <unknown>
45: <unknown>
46: <unknown>
47: <unknown>
48: <() as objc::message::MessageArguments>::invoke::<()>
at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/mod.rs:128:17
49: objc::message::platform::send_unverified::<objc::runtime::Object, (), ()>
at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/apple/mod.rs:27:9
50: objc::message::send_message::<objc::runtime::Object, (), ()>
at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/mod.rs:178:5
<*mut objc::runtime::Object as cocoa::appkit::NSApplication>::run
at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cocoa-0.26.0/src/appkit.rs:628:9
51: <gpui::platform::mac::platform::MacPlatform as gpui::platform::Platform>::run
at /Users/thorstenball/work/zed/crates/gpui/src/platform/mac/platform.rs:427:13
52: <gpui::app::App>::run::<zed::main::{closure#3}>
at /Users/thorstenball/work/zed/crates/gpui/src/app.rs:159:9
53: zed::main
at /Users/thorstenball/work/zed/crates/zed/src/main.rs:439:5
54: <fn() as core::ops::function::FnOnce<()>>::call_once
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/ops/function.rs:250:5
55: std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/sys_common/backtrace.rs:155:18
56: std::rt::lang_start::<()>::{closure#0}
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/rt.rs:159:18
57: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/ops/function.rs:284:13
std::panicking::try::do_call
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:559:40
std::panicking::try
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:523:19
std::panic::catch_unwind
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panic.rs:149:14
std::rt::lang_start_internal::{{closure}}
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/rt.rs:141:48
std::panicking::try::do_call
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:559:40
std::panicking::try
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:523:19
std::panic::catch_unwind
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panic.rs:149:14
std::rt::lang_start_internal
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/rt.rs:141:20
58: std::rt::lang_start::<()>
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/rt.rs:158:17
59: _main
```
Release Notes:
- N/A
Thorsten Ball created
9206561
vim: Don't show inline completions in normal mode (#17137)
This fixes an annoying bug I ran into, where supermaven completions would show up in normal mode. cc @ConradIrwin not sure if this is the best way to fix this, but it seems like the neatest? On one hand, I didn't want to touch into Vim from the editor, and on the other I didn't want to add another boolean on the editor that flips on when in normal mode. So instead I extended the Addon interface. Release Notes: - Fixed inline completions (Copilot or Supermaven) showing up in Vim's normal mode.
Thorsten Ball created
6403385
linux: Add an option to disable middle-click paste (#16572)
Release Notes: - Added an editor setting to toggle Linux middle-click pasting (enabled by default)
Micah created
02cd512
repl: Make output buffer be readonly, never dirty (#17121)
Kyle Kelley created
6646b15
Standardize `story` crate lib name (#17117)
`crates/story/src/lib.rs` -> `crates/story/src/story.rs` Release Notes: - N/A
Nate Butler created
3d175f6
Unify Story/StoryContainers (#17114)
Unify the various Story containers, and use gpui default colors over the custom `StoryColors`. Release Notes: - N/A
Nate Butler created
449e744
context_servers: Normalize the line endings of context servers (#17112)
Context servers might return CR characters, which are not acceptable in Zed and cause ranges to be invalidated. We need to normalize them. Closes #17109 Release Notes: - context_servers: Fixed an issue where context servers returning a carriage return character would result in a panic.
David Soria Parra created
5bae6eb
context_servers: Completion support for context server slash commands (#17085)
This PR adds support for completions via MCP. The protocol now supports a new request type "completion/complete" that can either complete a resource URI template (which we currently don't use in Zed), or a prompt argument. We use this to add autocompletion to our context server slash commands! https://github.com/user-attachments/assets/08c9cf04-cbeb-49a7-903f-5049fb3b3d9f Release Notes: - context_servers: Added support for argument completions for context server prompts. These show up as regular completions to slash commands.
David Soria Parra created
01f8d27
Add a simple set of default colors to `gpui` (#17110)
This PR adds an initial set of default colors to `gpui`.
These will power default-styled gpui components (things like checkboxes,
buttons, inputs, etc.), storybook, and give a very simple,
appearance-aware set of colors out of the box for folks to build with.
These colors will evolve and be updated in the near future, they are
literally pulled from Finder for now :)
The API might not be perfect, I focused on getting something in quickly
that we can iterate on!
### Usage
```rs
use gpui::{colors, DefaultColor}
fn auto(cx: &WindowContext) -> {
// Init the full set of DefaultColors
let colors = colors(cx.appearance());
// Use a color
// It will automatically give you the correct color for the system's
// current appearance.
let background = DefaultColor::Background.hsla(&colors)
}
fn manual() -> {
// Init the full sets of DefaultColors
let light_colors = DefaultColors::light();
let dark_colors = DefaultColors::dark();
// Use a color
// Maybe for some fancy inverted element
let background = DefaultColor::Background.hsla(&light_colors)
let inverted_background = DefaultColor::Background.hsla(&dark_colors)
let inverted_text = DefaultColor::Text.hsla(&dark_colors)
}
```
Note: We need `cx` for the auto way as we need to get the system
appearance from the App/Window/ViewContext via `cx.appearance()`.
### Example
You can run `script/storybook default_colors` to open the Default Colors
story:
| Light | Dark |
|-------|------|
| 
| 
|
Release Notes:
- N/A
Nate Butler created
82ceb4c
repl: Refactor outputs for externalization (#16971)
Working on addressing large outputs, refactored as part of it. https://github.com/user-attachments/assets/48ea576c-e13a-4d09-b45a-4baa41bf6f72 Release Notes: - N/A
Kyle Kelley created
8948777
assistant: Remove outdated comment (#17105)
This used to appear on a call to `prune_invalid_workflow_steps`, but that method doesn't exist anymore. Release Notes: - N/A
Marshall Bowers created
d604662
Hide Markdown-Inline language from users with a new 'hidden' flag on language configs (#17104)
/cc @mrnugget Release Notes: - Fixed an issue where toggling inline completions in a markdown file did not work correctly --------- Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
cdaa80f
linux: Consistent clipboard shortcuts in context menus (#17103)
- Fixes incorrect shorcuts being displayed in Linux context menus. - Re-ordering them within the json object doesn't work, but putting them in a dedicate block does.
Peter Tripp created
895c3e7
Update Rust crate sqlx to v0.8.1 [SECURITY] (#17102)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [sqlx](https://togithub.com/launchbadge/sqlx) | dev-dependencies |
patch | `0.8.0` -> `0.8.1` |
| [sqlx](https://togithub.com/launchbadge/sqlx) | dependencies | patch |
`0.8.0` -> `0.8.1` |
### GitHub Vulnerability Alerts
####
[GHSA-xmrp-424f-vfpx](https://togithub.com/launchbadge/sqlx/issues/3440)
The following presentation at this year's DEF CON was brought to our
attention on the SQLx Discord:
> SQL Injection isn't Dead: Smuggling Queries at the Protocol Level
>
<http://web.archive.org/web/20240812130923/https://media.defcon.org/DEF%20CON%2032/DEF%20CON%2032%20presentations/DEF%20CON%2032%20-%20Paul%20Gerste%20-%20SQL%20Injection%20Isn't%20Dead%20Smuggling%20Queries%20at%20the%20Protocol%20Level.pdf>
> (Archive link for posterity.)
Essentially, encoding a value larger than 4GiB can cause the length
prefix in the protocol to overflow,
causing the server to interpret the rest of the string as binary
protocol commands or other data.
It appears SQLx _does_ perform truncating casts in a way that could be
problematic,
for example:
<https://github.com/launchbadge/sqlx/blob/6f2905695b9606b5f51b40ce10af63ac9e696bb8/sqlx-postgres/src/arguments.rs#L163>
This code has existed essentially since the beginning,
so it is reasonable to assume that all published versions `<= 0.8.0` are
affected.
## Mitigation
As always, you should make sure your application is validating
untrustworthy user input.
Reject any input over 4 GiB, or any input that could _encode_ to a
string longer than 4 GiB.
Dynamically built queries are also potentially problematic if it pushes
the message size over this 4 GiB bound.
[`Encode::size_hint()`](https://docs.rs/sqlx/latest/sqlx/trait.Encode.html#method.size_hint)
can be used for sanity checks, but do not assume that the size returned
is accurate.
For example, the `Json<T>` and `Text<T>` adapters have no reasonable way
to predict or estimate the final encoded size,
so they just return `size_of::<T>()` instead.
For web application backends, consider adding some middleware that
limits the size of request bodies by default.
## Resolution
Work has started on a branch to add `#[deny]` directives for the
following Clippy lints:
*
[`cast_possible_truncation`](https://rust-lang.github.io/rust-clippy/master/#/cast_possible_truncation)
*
[`cast_possible_wrap`](https://rust-lang.github.io/rust-clippy/master/#/cast_possible_wrap)
*
[`cast_sign_loss`](https://rust-lang.github.io/rust-clippy/master/#/cast_sign_loss)
and to manually audit the code that they flag.
A fix is expected to be included in the `0.8.1` release (still WIP as of
writing).
---
### Release Notes
<details>
<summary>launchbadge/sqlx (sqlx)</summary>
###
[`v0.8.1`](https://togithub.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#081---2024-08-23)
[Compare
Source](https://togithub.com/launchbadge/sqlx/compare/v0.8.0...v0.8.1)
16 pull requests were merged this release cycle.
This release contains a fix for [RUSTSEC-2024-0363].
Postgres users are advised to upgrade ASAP as a possible exploit has
been demonstrated:
[#​3440
(comment)](https://togithub.com/launchbadge/sqlx/issues/3440#issuecomment-2307956901)
MySQL and SQLite do not *appear* to be exploitable, but upgrading is
recommended nonetheless.
##### Added
- \[[#​3421]]: correct spelling of
`MySqlConnectOptions::no_engine_substitution()`
\[\[[@​kolinfluence](https://togithub.com/kolinfluence)]]
- Deprecates `MySqlConnectOptions::no_engine_subsitution()` (oops) in
favor of the correctly spelled version.
##### Changed
- \[[#​3376]]: doc: hide `spec_error` module
\[\[[@​abonander](https://togithub.com/abonander)]]
- This is a helper module for the macros and was not meant to be
exposed.
- It is not expected to receive any breaking changes for the 0.8.x
release, but is not designed as a public API.
Use at your own risk.
- \[[#​3382]]: feat: bumped to `libsqlite3-sys=0.30.1` to support
sqlite 3.46
\[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]]
- \[[#​3385]]: chore(examples):Migrated the pg-chat example to
ratatui
\[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]]
- \[[#​3399]]: Upgrade to rustls 0.23
\[\[[@​djc](https://togithub.com/djc)]]
- RusTLS now has pluggable cryptography providers: `ring` (the existing
implementation),
and `aws-lc-rs` which has optional FIPS certification.
- The existing features activating RusTLS (`runtime-tokio-rustls`,
`runtime-async-std-rustls`, `tls-rustls`)
enable the `ring` provider of RusTLS to match the existing behavior so
this *should not* be a breaking change.
- Switch to the `tls-rustls-aws-lc-rs` feature to use the `aws-lc-rs`
provider.
- If using `runtime-tokio-rustls` or `runtime-async-std-rustls`,
this will necessitate switching to the appropriate non-legacy runtime
feature:
`runtime-tokio` or `runtime-async-std`
- See the RusTLS README for more details:
<https://github.com/rustls/rustls?tab=readme-ov-file#cryptography-providers>
##### Fixed
- \[[#​2786]]: fix(sqlx-cli): do not clean sqlx during prepare
\[\[[@​cycraig](https://togithub.com/cycraig)]]
- \[[#​3354]]: sqlite: fix inconsistent read-after-write
\[\[[@​ckampfe](https://togithub.com/ckampfe)]]
- \[[#​3371]]: Fix encoding and decoding of MySQL enums in
`sqlx::Type` \[\[[@​alu](https://togithub.com/alu)]]
- \[[#​3374]]: fix: usage of `node12` in `SQLx` action
\[\[[@​hamirmahal](https://togithub.com/hamirmahal)]]
- \[[#​3380]]: chore: replace structopt with clap in examples
\[\[[@​tottoto](https://togithub.com/tottoto)]]
- \[[#​3381]]: Fix CI after Rust 1.80, remove dead feature
references \[\[[@​abonander](https://togithub.com/abonander)]]
- \[[#​3384]]: chore(tests): fixed deprecation warnings
\[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]]
- \[[#​3386]]: fix(dependencys):bumped cargo_metadata to `v0.18.1`
to avoid yanked `v0.14.3`
\[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]]
- \[[#​3389]]: fix(cli): typo in error for required DB URL
\[\[[@​ods](https://togithub.com/ods)]]
- \[[#​3417]]: Update version to 0.8 in README
\[\[[@​soucosmo](https://togithub.com/soucosmo)]]
- \[[#​3441]]: fix: audit protocol handling
\[\[[@​abonander](https://togithub.com/abonander)]]
- This addresses [RUSTSEC-2024-0363] and includes regression tests for
MySQL, Postgres and SQLite.
[#​2786]: https://togithub.com/launchbadge/sqlx/pull/2786
[#​3354]: https://togithub.com/launchbadge/sqlx/pull/3354
[#​3371]: https://togithub.com/launchbadge/sqlx/pull/3371
[#​3374]: https://togithub.com/launchbadge/sqlx/pull/3374
[#​3376]: https://togithub.com/launchbadge/sqlx/pull/3376
[#​3380]: https://togithub.com/launchbadge/sqlx/pull/3380
[#​3381]: https://togithub.com/launchbadge/sqlx/pull/3381
[#​3382]: https://togithub.com/launchbadge/sqlx/pull/3382
[#​3384]: https://togithub.com/launchbadge/sqlx/pull/3384
[#​3385]: https://togithub.com/launchbadge/sqlx/pull/3385
[#​3386]: https://togithub.com/launchbadge/sqlx/pull/3386
[#​3389]: https://togithub.com/launchbadge/sqlx/pull/3389
[#​3399]: https://togithub.com/launchbadge/sqlx/pull/3399
[#​3417]: https://togithub.com/launchbadge/sqlx/pull/3417
[#​3421]: https://togithub.com/launchbadge/sqlx/pull/3421
[#​3441]: https://togithub.com/launchbadge/sqlx/pull/3441
[RUSTSEC-2024-0363]:
https://rustsec.org/advisories/RUSTSEC-2024-0363.html
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "" in timezone America/New_York,
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot] and renovate[bot] created
5af116d
ruby: Replace default tasks with a stub message (#16752)
The Ruby world has many testing frameworks: - Minitest - RSpec - quickdraw - tldr - and many others. Attempting to support all of them through a single `tasks.json` file is a challenging task and nearly impossible. All testing frameworks have different running options and commands. It's still possible to use tree-sitter queries to detect runnables in Ruby code but Zed lacks the ability to detect the testing framework in a project that can be used to detect the correct commands to run tests or runnables. The end user knows the correct command and it's wise to delegate creating the command to them. It would be a bit strange to leave the user without any guidance, so this commit adds example tasks for various Ruby testing frameworks. Closes #12579 Here is the screenshot how it looks:  Release Notes: - N/A
Vitaly Slobodin created
b6c3ef7
Improve Rust highlight queries (#17097)
See #16747. Removed markdown injections so that only the rust highlights are implemented Release Notes: - Improved Rust syntax highlighting queries.
everdrone created
f84ef5e
Immediate edit step resolution (#16447)
## Todo * [x] Parse and present new XML output * [x] Resolve new edits to buffers and anchor ranges * [x] Surface resolution errors * [x] Steps fail to resolve because language hasn't loaded yet * [x] Treat empty `<symbol>` tag as None * [x] duplicate assists when editing steps * [x] step footer blocks can appear *below* the following message header block ## Release Notes: - N/A --------- Co-authored-by: Mikayla <mikayla@zed.dev> Co-authored-by: Peter <peter@zed.dev> Co-authored-by: Marshall <marshall@zed.dev> Co-authored-by: Antonio <antonio@zed.dev> Co-authored-by: Antonio Scandurra <me@as-cii.com>
Max Brunsfeld , Mikayla , Peter , Marshall , Antonio , and Antonio Scandurra created
fc4c533
zed: Use CLI env for lang servers, tasks, terminal (#17075)
This changes the Zed CLI `zed` to pass along the environment to the Zed project that it opens (if it opens a new one). In projects, this CLI environment will now take precedence over any environment that's acquired by running a login shell in a projects folder. The result is that `zed my/folder` now always behaves as if one would run `zed --foreground` without any previous Zed version running. Closes #7894 Closes #16293 Related issues: - It fixes the issue described in here: https://github.com/zed-industries/zed/issues/4977#issuecomment-2305272027 Release Notes: - Improved the Zed CLI `zed` to pass along the environment as it was on the CLI to the opened Zed project. That environment is then used when opening new terminals, spawning tasks, or language servers. Specifically: - If Zed was started via `zed my-folder`, a terminal spawned with `workspace: new terminal` will inherit these environment variables that existed on the CLI - Specific language servers that allow looking up the language server binary in the environments `$PATH` (such as `gopls`, `zls`, `rust-analyzer` if configured, ...) will look up the language server binary in the CLI environment too and use that environment when starting the process. - Language servers that are _not_ found in the CLI environment (or configured to not be found in there), will be spawned with the CLI environment in case that's set. That means users can do something like `RA_LOG=info zed .` and it will be picked up the rust-analyzer that was spawned. Demo/explanation: https://github.com/user-attachments/assets/455905cc-8b7c-4fc4-b98a-7e027d97cdfa
Thorsten Ball created
4f408ec
collab: Record `geoip_country_code` on HTTP request spans (#17092)
This PR attaches the `geoip_country_code` that we source from Cloudflare's `CF-IPCountry` header to the HTTP request spans. This will allow us to see where traffic is originating geographically. Release Notes: - N/A
Marshall Bowers created
4d6bb52
Anthropic/OpenAI: Add country codes for territories (#17089)
- Cloudflare provides ISO-3166-1 country code for protectorates. Expand our allowlist to include the territories of countries on the allowlist (US, UK, France, Australia, New Zealand). - Also include the country_code in the error message when we block. Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Peter Tripp and Marshall Bowers created
7db8d80
Make selection more consistent across languages (#17084)
- Remove "-" from word_character for CSS/JS/TSX/Markdown - Makes our word-selection behavior consistent across language modes (and consistent with VSCode).
Peter Tripp created
376828e
editor: Fix flaky navigation test (#17087)
This test was flaky because both tasks were started at the same time and the first one that would win, would navigate the editor. Now the order is fixed, because the second task is only spawned after the first one. Release Notes: - N/A --------- Co-authored-by: Kirill <kirill@zed.dev>
Thorsten Ball and Kirill created
70018a1
Revert "Update Rust crate clickhouse to 0.12.0 (#17034)" (#17086)
This PR reverts the `clickhouse` upgrade from #17034. After testing in staging I'm seeing errors when trying to write events to Clickhouse. Going to revert so we can investigate. This reverts commit 505675c0b5376d61e5496e4067f67a91371fcf27. Release Notes: - N/A
Marshall Bowers created
d666cc5
collab: Report when upstream rate limit is exceeded (#17083)
This PR makes it so we report a trace when the upstream rate limit is exceeded. Release Notes: - N/A
Marshall Bowers created
6d3fbc4
Update `Cargo.lock` (#17081)
This PR updates `Cargo.lock`, as it was missed in #17063. Release Notes: - N/A
Marshall Bowers created
01284c2
Update Rust crate sqlx to v0.8.1 [SECURITY] (#17064)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [sqlx](https://togithub.com/launchbadge/sqlx) | dev-dependencies |
patch | `0.8.0` -> `0.8.1` |
| [sqlx](https://togithub.com/launchbadge/sqlx) | dependencies | patch |
`0.8.0` -> `0.8.1` |
### GitHub Vulnerability Alerts
####
[GHSA-xmrp-424f-vfpx](https://togithub.com/launchbadge/sqlx/issues/3440)
The following presentation at this year's DEF CON was brought to our
attention on the SQLx Discord:
> SQL Injection isn't Dead: Smuggling Queries at the Protocol Level
>
<http://web.archive.org/web/20240812130923/https://media.defcon.org/DEF%20CON%2032/DEF%20CON%2032%20presentations/DEF%20CON%2032%20-%20Paul%20Gerste%20-%20SQL%20Injection%20Isn't%20Dead%20Smuggling%20Queries%20at%20the%20Protocol%20Level.pdf>
> (Archive link for posterity.)
Essentially, encoding a value larger than 4GiB can cause the length
prefix in the protocol to overflow,
causing the server to interpret the rest of the string as binary
protocol commands or other data.
It appears SQLx _does_ perform truncating casts in a way that could be
problematic,
for example:
<https://github.com/launchbadge/sqlx/blob/6f2905695b9606b5f51b40ce10af63ac9e696bb8/sqlx-postgres/src/arguments.rs#L163>
This code has existed essentially since the beginning,
so it is reasonable to assume that all published versions `<= 0.8.0` are
affected.
## Mitigation
As always, you should make sure your application is validating
untrustworthy user input.
Reject any input over 4 GiB, or any input that could _encode_ to a
string longer than 4 GiB.
Dynamically built queries are also potentially problematic if it pushes
the message size over this 4 GiB bound.
[`Encode::size_hint()`](https://docs.rs/sqlx/latest/sqlx/trait.Encode.html#method.size_hint)
can be used for sanity checks, but do not assume that the size returned
is accurate.
For example, the `Json<T>` and `Text<T>` adapters have no reasonable way
to predict or estimate the final encoded size,
so they just return `size_of::<T>()` instead.
For web application backends, consider adding some middleware that
limits the size of request bodies by default.
## Resolution
Work has started on a branch to add `#[deny]` directives for the
following Clippy lints:
*
[`cast_possible_truncation`](https://rust-lang.github.io/rust-clippy/master/#/cast_possible_truncation)
*
[`cast_possible_wrap`](https://rust-lang.github.io/rust-clippy/master/#/cast_possible_wrap)
*
[`cast_sign_loss`](https://rust-lang.github.io/rust-clippy/master/#/cast_sign_loss)
and to manually audit the code that they flag.
A fix is expected to be included in the `0.8.1` release (still WIP as of
writing).
---
### Release Notes
<details>
<summary>launchbadge/sqlx (sqlx)</summary>
###
[`v0.8.1`](https://togithub.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#081---2024-08-23)
[Compare
Source](https://togithub.com/launchbadge/sqlx/compare/v0.8.0...v0.8.1)
16 pull requests were merged this release cycle.
This release contains a fix for [RUSTSEC-2024-0363].
Postgres users are advised to upgrade ASAP as a possible exploit has
been demonstrated:
[#​3440
(comment)](https://togithub.com/launchbadge/sqlx/issues/3440#issuecomment-2307956901)
MySQL and SQLite do not *appear* to be exploitable, but upgrading is
recommended nonetheless.
##### Added
- \[[#​3421]]: correct spelling of
`MySqlConnectOptions::no_engine_substitution()`
\[\[[@​kolinfluence](https://togithub.com/kolinfluence)]]
- Deprecates `MySqlConnectOptions::no_engine_subsitution()` (oops) in
favor of the correctly spelled version.
##### Changed
- \[[#​3376]]: doc: hide `spec_error` module
\[\[[@​abonander](https://togithub.com/abonander)]]
- This is a helper module for the macros and was not meant to be
exposed.
- It is not expected to receive any breaking changes for the 0.8.x
release, but is not designed as a public API.
Use at your own risk.
- \[[#​3382]]: feat: bumped to `libsqlite3-sys=0.30.1` to support
sqlite 3.46
\[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]]
- \[[#​3385]]: chore(examples):Migrated the pg-chat example to
ratatui
\[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]]
- \[[#​3399]]: Upgrade to rustls 0.23
\[\[[@​djc](https://togithub.com/djc)]]
- RusTLS now has pluggable cryptography providers: `ring` (the existing
implementation),
and `aws-lc-rs` which has optional FIPS certification.
- The existing features activating RusTLS (`runtime-tokio-rustls`,
`runtime-async-std-rustls`, `tls-rustls`)
enable the `ring` provider of RusTLS to match the existing behavior so
this *should not* be a breaking change.
- Switch to the `tls-rustls-aws-lc-rs` feature to use the `aws-lc-rs`
provider.
- If using `runtime-tokio-rustls` or `runtime-async-std-rustls`,
this will necessitate switching to the appropriate non-legacy runtime
feature:
`runtime-tokio` or `runtime-async-std`
- See the RusTLS README for more details:
<https://github.com/rustls/rustls?tab=readme-ov-file#cryptography-providers>
##### Fixed
- \[[#​2786]]: fix(sqlx-cli): do not clean sqlx during prepare
\[\[[@​cycraig](https://togithub.com/cycraig)]]
- \[[#​3354]]: sqlite: fix inconsistent read-after-write
\[\[[@​ckampfe](https://togithub.com/ckampfe)]]
- \[[#​3371]]: Fix encoding and decoding of MySQL enums in
`sqlx::Type` \[\[[@​alu](https://togithub.com/alu)]]
- \[[#​3374]]: fix: usage of `node12` in `SQLx` action
\[\[[@​hamirmahal](https://togithub.com/hamirmahal)]]
- \[[#​3380]]: chore: replace structopt with clap in examples
\[\[[@​tottoto](https://togithub.com/tottoto)]]
- \[[#​3381]]: Fix CI after Rust 1.80, remove dead feature
references \[\[[@​abonander](https://togithub.com/abonander)]]
- \[[#​3384]]: chore(tests): fixed deprecation warnings
\[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]]
- \[[#​3386]]: fix(dependencys):bumped cargo_metadata to `v0.18.1`
to avoid yanked `v0.14.3`
\[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]]
- \[[#​3389]]: fix(cli): typo in error for required DB URL
\[\[[@​ods](https://togithub.com/ods)]]
- \[[#​3417]]: Update version to 0.8 in README
\[\[[@​soucosmo](https://togithub.com/soucosmo)]]
- \[[#​3441]]: fix: audit protocol handling
\[\[[@​abonander](https://togithub.com/abonander)]]
- This addresses [RUSTSEC-2024-0363] and includes regression tests for
MySQL, Postgres and SQLite.
[#​2786]: https://togithub.com/launchbadge/sqlx/pull/2786
[#​3354]: https://togithub.com/launchbadge/sqlx/pull/3354
[#​3371]: https://togithub.com/launchbadge/sqlx/pull/3371
[#​3374]: https://togithub.com/launchbadge/sqlx/pull/3374
[#​3376]: https://togithub.com/launchbadge/sqlx/pull/3376
[#​3380]: https://togithub.com/launchbadge/sqlx/pull/3380
[#​3381]: https://togithub.com/launchbadge/sqlx/pull/3381
[#​3382]: https://togithub.com/launchbadge/sqlx/pull/3382
[#​3384]: https://togithub.com/launchbadge/sqlx/pull/3384
[#​3385]: https://togithub.com/launchbadge/sqlx/pull/3385
[#​3386]: https://togithub.com/launchbadge/sqlx/pull/3386
[#​3389]: https://togithub.com/launchbadge/sqlx/pull/3389
[#​3399]: https://togithub.com/launchbadge/sqlx/pull/3399
[#​3417]: https://togithub.com/launchbadge/sqlx/pull/3417
[#​3421]: https://togithub.com/launchbadge/sqlx/pull/3421
[#​3441]: https://togithub.com/launchbadge/sqlx/pull/3441
[RUSTSEC-2024-0363]:
https://rustsec.org/advisories/RUSTSEC-2024-0363.html
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "" in timezone America/New_York,
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot] and renovate[bot] created
df883a4
docs: Link to docs for individual settings from "Configuring Languages" (#17082)
This PR updates the "Configuring Languages" page to link to the docs for individual settings when it mentions them. <img width="770" alt="Screenshot 2024-08-29 at 8 30 35 AM" src="https://github.com/user-attachments/assets/7b593aed-86b7-4b20-a141-6cd51be005d9"> Release Notes: - N/A
Marshall Bowers created
cf0a8a7
context_servers: Add ability to provide labels for prompt outputs (#17077)
Server can now include an optional description in a `prompts/get` response. Zed will displayed the description as label of the slash command. Release Notes: - context_servers: Servers can provide an optional description in `prompts/get` responses that is displayed as the slash command label.
David Soria Parra created
4b6cd60
Update extension docs link in `CONTRIBUTING.md` (#17074)
This follows up the changes at https://github.com/zed-industries/extensions/pull/1318 Should the rewording not be wanted, I can revert that. Release Notes: - N/A
Finn Evers created
895b414
Revert "Improve Rust highlight queries (#16747)" (#17073)
Kirill Bulatov created