zed/crates
Anthony Eid 149cd4e2bc
git_graph: Add remote support for search operations (#55167)
### Motivation 

This is the second of three PRs to add remote/collab support for the git
graph and is a follow-up to #54468. I'm adding remote support for the
search because it's not user accessible without the initial graph fetch
having remote support, so it allows us to merge this without having to
add full remote support. Collab guest support will be added in a
follow-up PR.

#### Summary

For large repos, searching can take a while to fully stream in all
matched results. For example, running a basic search on the Linux repo
took over 10s for me. Because of that, we want to stream search results
in chunks to downstream users to keep the time-to-first-match low. After
this change, the first chunk gets sent back after ~50ms on the Linux
repo from receiving the request.

In order to accomplish that, I added a new proto client API that allows
for a request to map to n responses. e.g.

```/dev/null/example.rs#L1-1
client.add_entity_stream_request_handler(Self::handle_search_commits);
```

Note: The proto API isn't supported over collab yet, that will be
another PR

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #ISSUE

Release Notes:

- N/A

---------

Co-authored-by: cameron <cameron.studdstreet@gmail.com>
2026-05-04 16:38:14 +00:00
..
acp_thread acp_thread: Support absolute file mentions with row fragments (#53229) 2026-05-03 19:11:53 +00:00
acp_tools acp: Improve ACP debug view (#54769) 2026-04-24 15:53:14 +00:00
action_log action_log: Fix race condition when committing changes (#53884) 2026-04-16 12:54:17 +00:00
activity_indicator Fix spinner in activity indicator (#54977) 2026-04-27 08:33:40 +00:00
agent agent: Refactor edit file tool state handling (#55663) 2026-05-04 15:45:06 +00:00
agent_servers acp: Improve ACP debug view (#54769) 2026-04-24 15:53:14 +00:00
agent_settings agent: Remove new thread location setting (#55575) 2026-05-03 19:30:04 +00:00
agent_ui Fix mismatched excerpts in split agent diff (#55629) 2026-05-04 11:56:06 +00:00
ai_onboarding Simplify parallel agents onboarding (#53854) 2026-04-15 21:51:15 -03:00
anthropic agent: Allow tools to output multiple content parts (#54518) 2026-04-27 12:36:11 +00:00
askpass Fix bad GitHub merge queue merge (#54721) 2026-04-23 23:47:30 +00:00
assets
audio
auto_update
auto_update_helper Fix Windows icon resource for bin zed.exe (#54738) 2026-05-01 22:33:54 +00:00
auto_update_ui Fix bad GitHub merge queue merge (#54721) 2026-04-23 23:47:30 +00:00
aws_http_client
bedrock Fix bad GitHub merge queue merge (#54721) 2026-04-23 23:47:30 +00:00
breadcrumbs
buffer_diff action_log: Fix race condition when committing changes (#53884) 2026-04-16 12:54:17 +00:00
call Add ability to auto watch screens (#54839) 2026-05-01 17:29:27 +00:00
channel Add the ability to reorder favorited collab channels (#52649) 2026-03-30 13:07:13 +00:00
cli Fix Windows icon resource for bin zed.exe (#54738) 2026-05-01 22:33:54 +00:00
client git_graph: Add remote support for search operations (#55167) 2026-05-04 16:38:14 +00:00
clock
cloud_api_client Remove smol as a dependency from a bunch of crates (#53603) 2026-04-24 10:29:51 +00:00
cloud_api_types collab_ui: Disable Collab panel based on organization configuration (#53567) 2026-04-10 10:15:28 -04:00
cloud_llm_client ep: Fix moving cursor to a predicted position (#55079) 2026-04-28 15:44:17 +00:00
codestral language_model: Decouple from Zed-specific implementation details (#52913) 2026-04-02 17:06:57 -03:00
collab collab: Stop mixing concerns in get_channel_participant_details (#55568) 2026-05-04 11:51:56 +00:00
collab_ui Add ability to auto watch screens (#54839) 2026-05-01 17:29:27 +00:00
collections Add VecMap::entry_ref (#52601) 2026-03-27 18:06:56 -07:00
command_palette command_palette: Fix showing keybinding in footer actions on zero matches (#54519) 2026-04-22 11:12:32 -06:00
command_palette_hooks
component
component_preview Simplify parallel agents onboarding (#53854) 2026-04-15 21:51:15 -03:00
context_server Support latest MCP protocol version (#54494) 2026-04-29 16:29:48 +00:00
copilot Update futures to 0.3.32 (#52910) 2026-04-05 23:05:35 +01:00
copilot_chat copilot: Wire up reasoning tokens for GPT models (#53313) 2026-04-20 14:33:18 +02:00
copilot_ui Strong app state (#52602) 2026-03-27 14:56:46 -07:00
crashes Cleanup crashes crate (#54927) 2026-05-04 06:30:47 +00:00
credentials_provider language_model: Decouple from Zed-specific implementation details (#52913) 2026-04-02 17:06:57 -03:00
csv_preview Performance tweaks (#54321) 2026-04-21 07:25:22 +00:00
dap dap: Support IPv6 addresses in TCP transport (#52244) 2026-04-27 08:42:45 +00:00
dap_adapters Rust 1.95 (#55104) 2026-04-29 10:27:47 +00:00
db Remove smol as a dependency from a bunch of crates (#53603) 2026-04-24 10:29:51 +00:00
debug_adapter_extension
debugger_tools Fix cmd-e on macOS to behave more like it should (#54451) 2026-04-21 19:54:02 +00:00
debugger_ui debugger_ui: Fix debugger tab drop crash (#55667) 2026-05-04 16:31:27 +00:00
deepseek deepseek: Add deepseek-v4-pro & deepseek-v4-flash (#54731) 2026-04-27 13:50:00 +00:00
denoise Rust 1.95 (#55104) 2026-04-29 10:27:47 +00:00
dev_container Trim nonalphanumeric chars before prefixing image tag name (#54578) 2026-04-23 07:36:36 +00:00
diagnostics Rust 1.95 (#55104) 2026-04-29 10:27:47 +00:00
docs_preprocessor Staged docs releases (#50136) 2026-04-30 11:10:14 +00:00
edit_prediction Rust 1.95 (#55104) 2026-04-29 10:27:47 +00:00
edit_prediction_cli ep: Move scores aggegation to edit_prediction_metrics (#55609) 2026-05-04 09:53:36 +00:00
edit_prediction_context Fix bad GitHub merge queue merge (#54721) 2026-04-23 23:47:30 +00:00
edit_prediction_metrics ep: Move scores aggegation to edit_prediction_metrics (#55609) 2026-05-04 09:53:36 +00:00
edit_prediction_types edit_prediction: Disable training data collection based on organization configuration (#53639) 2026-04-10 13:27:04 -04:00
edit_prediction_ui ep: Remove old experimental provider (#55011) 2026-04-28 07:41:38 +00:00
editor Fix mismatched excerpts in split agent diff (#55629) 2026-05-04 11:56:06 +00:00
encoding_selector Require multibuffer excerpts to be ordered and nonoverlapping (#52364) 2026-04-01 17:25:32 +00:00
env_var language_models: Refactor deps and extract cloud (#53270) 2026-04-07 12:28:19 -03:00
etw_tracing
eval_cli acp: Use new Rust SDK (#52997) 2026-04-22 15:02:57 +00:00
eval_utils
explorer_command_injector
extension extension_host: Fix Windows manifest paths when uploading extensions to WSL remote (#50653) 2026-04-21 17:32:54 -04:00
extension_api extension_api: Add IPv6 support in DAP extensions API (#54984) 2026-04-29 07:27:05 +00:00
extension_cli extension_host: Fix Windows manifest paths when uploading extensions to WSL remote (#50653) 2026-04-21 17:32:54 -04:00
extension_host extension_api: Add IPv6 support in DAP extensions API (#54984) 2026-04-29 07:27:05 +00:00
extensions_ui gpui: Improve Anchored to support center position (#47154) 2026-04-21 09:01:42 +00:00
feature_flags Add ability to auto watch screens (#54839) 2026-05-01 17:29:27 +00:00
feature_flags_macros Feature flag overrides (#54206) 2026-04-18 06:34:19 +00:00
feedback Cleanup crashes crate (#54927) 2026-05-04 06:30:47 +00:00
file_finder Rust 1.95 (#55104) 2026-04-29 10:27:47 +00:00
file_icons
fs git_graph: Add remote support for search operations (#55167) 2026-05-04 16:38:14 +00:00
fs_benchmarks
fuzzy fuzzy: Fix crash with Unicode chars whose lowercase expands to multiple codepoints (#52989) 2026-04-03 11:00:13 +00:00
fuzzy_nucleo fuzzy_nucleo: Fix out of range panic (#54371) 2026-04-21 11:01:20 +02:00
git Add git log / history for folders and whole project (#52634) 2026-04-30 14:11:47 +00:00
git_graph git_graph: Improve navigation in Vim mode (#55506) 2026-05-03 17:19:47 +00:00
git_hosting_providers Fix GitHub bot avatar URL (#55297) 2026-04-30 14:17:32 +00:00
git_ui git: Remove potentially confusing words from worktree names (#55314) 2026-04-30 11:39:06 +00:00
go_to_line Require multibuffer excerpts to be ordered and nonoverlapping (#52364) 2026-04-01 17:25:32 +00:00
google_ai agent: Allow tools to output multiple content parts (#54518) 2026-04-27 12:36:11 +00:00
gpui gpui: Add examples index (#55154) 2026-04-29 12:36:29 +00:00
gpui_linux Support BGR subpixel layout (#55174) 2026-04-29 12:26:19 +00:00
gpui_macos Fix cursor style changes across windows (#55323) 2026-04-30 14:19:27 +00:00
gpui_macros gpui: Preserve test return type in gpui::property_test macro (#55622) 2026-05-04 11:43:06 +00:00
gpui_platform
gpui_shared_string gpui_shared_string: Implement SharedString via smol_str (#54649) 2026-04-24 08:58:26 +00:00
gpui_tokio gpui_tokio: Use shutdown_background to avoid WASI panic on exit (#53904) 2026-04-14 18:14:31 +02:00
gpui_util Fix bad GitHub merge queue merge (#54721) 2026-04-23 23:47:30 +00:00
gpui_web gpui_wgpu: Add surface lifecycle methods for mobile platforms (#50815) 2026-03-31 13:16:53 +00:00
gpui_wgpu Use embedded bitmaps in fonts on Linux (#55202) 2026-04-29 13:23:13 +00:00
gpui_windows Support BGR subpixel layout (#55174) 2026-04-29 12:26:19 +00:00
grammars Highlight nested JSX member expression tags (#53750) 2026-04-24 08:45:47 +00:00
html_to_markdown
http_client http_client: Fix GitHub download unpack failures on some filesystems (#53286) 2026-04-07 11:19:21 +05:30
http_client_tls
icons recent_projects: Add "open in new window" action to opened projects (#55168) 2026-04-29 11:38:03 +00:00
image_viewer gpui: Implement pinch event support for X11 and Windows (#51354) 2026-03-28 18:41:33 -04:00
input_latency_ui telemetry: Add latency metrics (#54454) 2026-04-22 22:22:10 +00:00
inspector_ui editor: Introduce Bookmarks (#54174) 2026-04-17 13:54:43 +02:00
install_cli
journal
json_schema_store Rust 1.95 (#55104) 2026-04-29 10:27:47 +00:00
keymap_editor gpui_shared_string: Implement SharedString via smol_str (#54649) 2026-04-24 08:58:26 +00:00
language Rust 1.95 (#55104) 2026-04-29 10:27:47 +00:00
language_core editor: Fix soft-wrap in auto-height editors (#54051) 2026-04-18 00:55:44 +02:00
language_extension language_core: Introduce fallback highlights (#52575) 2026-04-02 12:52:42 +00:00
language_model agent: Allow tools to output multiple content parts (#54518) 2026-04-27 12:36:11 +00:00
language_model_core Implement tool result conversion for anyhow errors (#55001) 2026-04-27 13:03:33 +00:00
language_models cloud: Fix incorrect model getting selected at startup (#55325) 2026-05-04 07:52:37 +00:00
language_models_cloud Remove smol as a dependency from a bunch of crates (#53603) 2026-04-24 10:29:51 +00:00
language_onboarding Remove some outdated comments (#52432) 2026-03-25 12:07:34 -06:00
language_selector Require multibuffer excerpts to be ordered and nonoverlapping (#52364) 2026-04-01 17:25:32 +00:00
language_tools language_tools: Open server logs instead of server trace on View Logs (#55621) 2026-05-04 10:39:38 +00:00
languages Fix "Run Debugger" failing silently when project does not compile (#52439) 2026-05-04 06:50:38 +00:00
line_ending_selector Require multibuffer excerpts to be ordered and nonoverlapping (#52364) 2026-04-01 17:25:32 +00:00
livekit_api
livekit_client Add ability to auto watch screens (#54839) 2026-05-01 17:29:27 +00:00
lmstudio
lsp
markdown agent_ui: Allow selection of commands from tool calls (#50545) 2026-04-24 13:54:28 +00:00
markdown_preview markdown_preview: Fix Ctrl+S saving checkbox toggle state (#53236) 2026-04-27 08:47:27 +00:00
media
menu
migrator ep: Remove old experimental provider (#55011) 2026-04-28 07:41:38 +00:00
miniprofiler_ui Disable miniprofiler by default (#54645) 2026-04-23 18:41:52 +00:00
mistral docs: Update mentions to "assistant panel" (#53514) 2026-04-09 10:42:21 -03:00
multi_buffer Fix panic in multi_buffer::Anchor::is_valid (#55644) 2026-05-04 12:46:03 +00:00
nc
net
node_runtime acp: Use npm --prefix for registry npx agents (#53560) 2026-04-14 11:10:31 +00:00
notifications Remove smol as a dependency from a bunch of crates (#53603) 2026-04-24 10:29:51 +00:00
ollama Prefer Ollama configured model context length over model architecture context length (#53543) 2026-04-15 02:21:56 -04:00
onboarding onboarding: Telemetry for new AI setup buttons (#55145) 2026-04-29 07:44:06 +00:00
open_ai agent: Allow tools to output multiple content parts (#54518) 2026-04-27 12:36:11 +00:00
open_path_prompt theme: Split out theme_settings crate (#52569) 2026-03-27 14:41:25 +01:00
open_router language_models: Refactor deps and extract cloud (#53270) 2026-04-07 12:28:19 -03:00
opencode opencode: Model updates + thinking levels (#54880) 2026-04-28 16:00:27 +00:00
outline Remove smol as a dependency from a bunch of crates (#53603) 2026-04-24 10:29:51 +00:00
outline_panel Remove smol as a dependency from a bunch of crates (#53603) 2026-04-24 10:29:51 +00:00
panel
paths Fix Node.js language servers failing with --user-data-dir on Windows (#50767) 2026-04-21 07:57:35 +02:00
picker recent_projects: Add "open in new window" action to opened projects (#55168) 2026-04-29 11:38:03 +00:00
platform_title_bar Remove Agent V2 feature flag (#52792) 2026-04-08 00:34:54 +00:00
prettier Fix FormatSelections to only format selected ranges, not entire document (#51593) 2026-03-31 12:48:22 +03:00
project git_graph: Add remote support for search operations (#55167) 2026-05-04 16:38:14 +00:00
project_benchmarks project_search: Fix project search status text and refactor search state (#54753) 2026-04-24 10:45:16 +00:00
project_panel Add git log / history for folders and whole project (#52634) 2026-04-30 14:11:47 +00:00
project_symbols Fix project symbol picker UTF-8 highlight panic (#53485) 2026-04-09 16:38:07 +00:00
prompt_store gpui_shared_string: Implement SharedString via smol_str (#54649) 2026-04-24 08:58:26 +00:00
proto git_graph: Add remote support for search operations (#55167) 2026-05-04 16:38:14 +00:00
recent_projects recent_projects: Add "open in new window" action to opened projects (#55168) 2026-04-29 11:38:03 +00:00
refineable
release_channel agent: Add ability to import threads from other channels (#54002) 2026-04-15 23:25:44 +00:00
remote git_graph: Add remote support for search operations (#55167) 2026-05-04 16:38:14 +00:00
remote_connection agent: Fix find_or_create repository to support remote (#54074) 2026-04-16 16:36:09 -07:00
remote_server git_graph: Add remote support for search operations (#55167) 2026-05-04 16:38:14 +00:00
repl editor: Add preserve scroll strategy for go to definition (#55036) 2026-04-29 07:29:15 +00:00
reqwest_client
rope
rpc git_graph: Add remote support for search operations (#55167) 2026-05-04 16:38:14 +00:00
rules_library language_models: Remove unused language model token counting (#54177) 2026-04-22 13:39:48 +00:00
scheduler
schema_generator theme: Split out theme_settings crate (#52569) 2026-03-27 14:41:25 +01:00
search project_search: Fix project search status text and refactor search state (#54753) 2026-04-24 10:45:16 +00:00
session
settings Fix the test for non-dev test runs (#55089) 2026-04-28 14:55:26 +00:00
settings_content agent: Remove new thread location setting (#55575) 2026-05-03 19:30:04 +00:00
settings_json Remove some outdated comments (#52432) 2026-03-25 12:07:34 -06:00
settings_macros
settings_profile_selector Settings profile base option (#52456) 2026-04-02 00:44:53 +00:00
settings_ui agent: Remove new thread location setting (#55575) 2026-05-03 19:30:04 +00:00
shell_command_parser
sidebar Improve bare repo support (#55153) 2026-04-29 13:16:37 +00:00
snippet
snippet_provider Rust 1.95 (#55104) 2026-04-29 10:27:47 +00:00
snippets_ui
sqlez Remove smol as a dependency from a bunch of crates (#53603) 2026-04-24 10:29:51 +00:00
sqlez_macros
streaming_diff
sum_tree
svg_preview gpui: Fix BGRA conversion for SVG rendering (#52641) 2026-03-29 14:43:05 +00:00
syntax_theme Extract syntax_theme crate (#52798) 2026-03-31 08:06:37 -06:00
system_specs Cleanup crashes crate (#54927) 2026-05-04 06:30:47 +00:00
tab_switcher fuzzy_nucleo: Add strings module and route several pickers through it (#54123) 2026-04-20 14:41:29 +02:00
task dap: Support IPv6 addresses in TCP transport (#52244) 2026-04-27 08:42:45 +00:00
tasks_ui tasks_ui: Fix previously used task tooltip (#53104) 2026-04-07 06:14:00 +00:00
telemetry
telemetry_events
terminal terminal: Reduce flicker on resize (#47195) 2026-04-27 07:13:44 +00:00
terminal_view terminal: Fix 8 bit colors (#54565) 2026-04-30 14:01:32 +00:00
text Require multibuffer excerpts to be ordered and nonoverlapping (#52364) 2026-04-01 17:25:32 +00:00
theme Fix bad GitHub merge queue merge (#54721) 2026-04-23 23:47:30 +00:00
theme_extension theme: Split out theme_settings crate (#52569) 2026-03-27 14:41:25 +01:00
theme_importer theme: Split out theme_settings crate (#52569) 2026-03-27 14:41:25 +01:00
theme_selector Fix bad GitHub merge queue merge (#54721) 2026-04-23 23:47:30 +00:00
theme_settings Fix bad GitHub merge queue merge (#54721) 2026-04-23 23:47:30 +00:00
time_format
title_bar title_bar: Display subfolders in the project button (#54796) 2026-04-30 16:11:06 +00:00
toolchain_selector Require multibuffer excerpts to be ordered and nonoverlapping (#52364) 2026-04-01 17:25:32 +00:00
ui terminal_view: Ensure reported size does not change once content becomes scrollable (#46648) 2026-04-27 22:06:01 +00:00
ui_input
ui_macros ui: Make UI independent from settings crate (#52578) 2026-03-27 15:31:49 +00:00
ui_prompt theme: Split out theme_settings crate (#52569) 2026-03-27 14:41:25 +01:00
util Accept shell environment after non-zero shell exit (#55175) 2026-04-29 11:56:56 +00:00
util_macros
vim vim: Fix panic when pasting in read-only editor (#55608) 2026-05-04 10:17:14 +00:00
vim_mode_setting
watch
web_search
web_search_providers language_models: Refactor deps and extract cloud (#53270) 2026-04-07 12:28:19 -03:00
which_key theme: Split out theme_settings crate (#52569) 2026-03-27 14:41:25 +01:00
windows_resources Fix Windows icon resource for bin zed.exe (#54738) 2026-05-01 22:33:54 +00:00
workspace Add ability to auto watch screens (#54839) 2026-05-01 17:29:27 +00:00
worktree Fix handling of git repositories with an external git directory (#55402) 2026-05-04 16:20:25 +00:00
worktree_benchmarks
x_ai language_models: Remove unused language model token counting (#54177) 2026-04-22 13:39:48 +00:00
zed Fix diagnostics in editor control enabling by itself (#52907) 2026-05-04 06:37:50 +00:00
zed_actions Fix cmd-e on macOS to behave more like it should (#54451) 2026-04-21 19:54:02 +00:00
zed_credentials_provider language_model: Decouple from Zed-specific implementation details (#52913) 2026-04-02 17:06:57 -03:00
zed_env_vars language_model: Decouple from Zed-specific implementation details (#52913) 2026-04-02 17:06:57 -03:00
zeta_prompt zeta_prompt: Fix multy-hunk diff application (#55613) 2026-05-04 10:01:12 +00:00
zlog
zlog_settings
ztracing
ztracing_macro