zed/crates
Max Brunsfeld 279c5ab81f
Reduce DB load upon initial connection due to channel loading (#12500)
#### Lazily loading channels

I've added a new RPC message called `SubscribeToChannels` that the
client now sends when it first renders the channels panel. This causes
the server to load the channels for that client and send updates to that
client as channels are updated. Previously, the server did this upon
connection.

For backwards compatibility, the server will inspect clients' version,
and continue to do this work immediately for old clients.

#### Optimizations

Running collab locally, I realized that upon connecting, we were running
two concurrent transactions that *both* queried the `channel_members`
table: one for loading your channels, and one for loading your channel
invites. I've combined these into one query. In addition, we now use a
join to load channels + members, as opposed to two separate queries.
Even though `where id in` is efficient, it adds an extra round trip to
the database, keeping the transaction open for slightly longer.

Release Notes:

- N/A
2024-05-30 13:02:55 -07:00
..
activity_indicator linux: Store binary path before restart to handle deleted binary file (#11568) 2024-05-08 19:13:28 +02:00
anthropic Improve model selection in the assistant (#12472) 2024-05-30 12:36:07 +02:00
assets Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
assistant Make slash commands more discoverable (#12480) 2024-05-30 16:45:05 +02:00
assistant_slash_command Make slash commands more discoverable (#12480) 2024-05-30 16:45:05 +02:00
assistant_tooling Bring the Tool Calling README up to date (#11683) 2024-05-12 04:47:19 -07:00
audio Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
auto_update Add Flatpak build system and support (#12006) 2024-05-27 19:01:20 -06:00
breadcrumbs Break typography styles out of StyledExt (#11013) 2024-04-25 17:42:53 -04:00
call Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
channel Reduce DB load upon initial connection due to channel loading (#12500) 2024-05-30 13:02:55 -07:00
cli Add Flatpak build system and support (#12006) 2024-05-27 19:01:20 -06:00
client Make prompt library icon in context panel staff-only for now (#12457) 2024-05-29 16:53:45 -06:00
clock Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
collab Reduce DB load upon initial connection due to channel loading (#12500) 2024-05-30 13:02:55 -07:00
collab_ui Reduce DB load upon initial connection due to channel loading (#12500) 2024-05-30 13:02:55 -07:00
collections gpui: Add SVG rendering to img element and generic asset cache (#9931) 2024-03-29 17:09:49 -07:00
color Fix hex_to_hsla inside the color crate (#9412) 2024-03-15 16:58:46 -04:00
command_palette Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
command_palette_hooks Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
copilot Improve context expansion (#10957) 2024-05-26 16:30:09 -07:00
db Clean up whitespace (#10755) 2024-04-23 13:31:21 -04:00
dev_server_projects Allow ssh connection for setting up zed (#12063) 2024-05-21 22:39:16 -06:00
diagnostics Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
editor Use repository mutex more sparingly. Don't hold it while running git status. (#12489) 2024-05-30 09:37:11 -07:00
extension Make slash commands more discoverable (#12480) 2024-05-30 16:45:05 +02:00
extension_api Rework context insertion UX (#12360) 2024-05-27 17:44:54 -06:00
extension_cli Add git blame (#8889) 2024-03-28 18:32:11 +01:00
extensions_ui Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
feature_flags Make prompt library icon in context panel staff-only for now (#12457) 2024-05-29 16:53:45 -06:00
feedback Fix GitHub Issue-creation commands 2024-05-28 21:51:24 -04:00
file_finder Tidy up the code (#12116) 2024-05-22 14:36:15 +03:00
file_icons Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
fs Use repository mutex more sparingly. Don't hold it while running git status. (#12489) 2024-05-30 09:37:11 -07:00
fsevent Retain run loop (#11241) 2024-04-30 23:31:59 -06:00
fuzzy Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
git Use repository mutex more sparingly. Don't hold it while running git status. (#12489) 2024-05-30 09:37:11 -07:00
git_hosting_providers Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
go_to_line Make autoscroll optional when highlighting editor rows (#11950) 2024-05-16 20:28:17 -07:00
google_ai Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
gpui Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
gpui_macros Adjust names of negated style methods (#11453) 2024-05-06 13:56:25 -04:00
headless Make reconnects smoother for dev servers (#12223) 2024-05-23 21:11:14 -06:00
http zed_extension_api: Add github_release_by_tag_name (#12172) 2024-05-22 20:40:31 -04:00
image_viewer Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
inline_completion_button Supermaven (#10788) 2024-05-03 12:50:42 -07:00
install_cli Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
journal Add the ability for extensions to provide language settings (#10296) 2024-04-08 19:17:12 -04:00
language Allow specifying a custom limit for /search results (#12423) 2024-05-29 14:11:05 +02:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
languages chore: Change git deps to crates.io dependencies where possible (#12362) 2024-05-27 23:32:51 +02:00
live_kit_client Hoist nanoid to workspace-level (#11029) 2024-04-25 22:37:40 -04:00
live_kit_server Vendor LiveKit protocol (#11672) 2024-05-10 14:18:40 -04:00
lsp lsp: explicitly drop locks in handle_input (#12276) 2024-05-25 12:25:17 +02:00
markdown Fix some warnings/issues uncovered by the new cfg checking (#12310) 2024-05-26 12:50:20 +02:00
markdown_preview markdown preview: Break up list items into individual blocks (#10852) 2024-04-26 21:34:45 +02:00
media Revert "Revert "Revert dependency updates in #9836 (#10089)"" 2024-04-02 13:12:38 -06:00
menu Fix the linux keymap (#9829) 2024-03-26 16:10:09 -07:00
multi_buffer Improve context expansion (#10957) 2024-05-26 16:30:09 -07:00
node_runtime node_runtime: Restrict the windows dependency to the Windows target (#12284) 2024-05-25 11:04:22 -04:00
notifications Fix mention notifications are not updated after message change and not removed after a message is deleted (#9847) 2024-04-02 20:40:00 -06:00
open_ai Improve model selection in the assistant (#12472) 2024-05-30 12:36:07 +02:00
outline Make autoscroll optional when highlighting editor rows (#11950) 2024-05-16 20:28:17 -07:00
picker add PickerDelegate::selected_index_changed (#12059) 2024-05-20 10:52:04 -04:00
prettier Use language settings' prettier parsers as a fallback for files with no path (#12273) 2024-05-25 10:50:53 +03:00
project Use repository mutex more sparingly. Don't hold it while running git status. (#12489) 2024-05-30 09:37:11 -07:00
project_panel project panel: Copy dragged entry when opt is pressed (#12348) 2024-05-29 12:34:58 +02:00
project_symbols Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
quick_action_bar Do not show tooltip for editor controls if clicked (#10679) 2024-04-17 13:20:47 +02:00
recent_projects Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel linux cli (#11585) 2024-05-09 21:08:49 -06:00
rich_text New revision of the Assistant Panel (#10870) 2024-04-23 16:23:26 -07:00
rope Indent guides (#11503) 2024-05-23 15:50:59 +02:00
rpc Reduce DB load upon initial connection due to channel loading (#12500) 2024-05-30 13:02:55 -07:00
rustdoc_to_markdown rustdoc_to_markdown: Improve paragraph handling (#12498) 2024-05-30 15:14:02 -04:00
search Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
semantic_index Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
settings Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
snippet html: Add support for autoclosing of tags (#11761) 2024-05-20 17:00:27 +02:00
sqlez Rename RemoteProject -> DevServerProject (#11301) 2024-05-02 11:00:08 -06:00
sqlez_macros Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
story Introduce a new markdown crate (#11556) 2024-05-09 11:03:33 +02:00
storybook Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
sum_tree Introduce Editor::insert_flaps and Editor::remove_flaps (#12096) 2024-05-21 20:23:37 +02:00
supermaven Reduce spamming of inline completion discard events (#11999) 2024-05-17 16:37:17 -04:00
supermaven_api Add xtask for finding crates with missing licenses (#11776) 2024-05-13 18:52:12 -04:00
tab_switcher Introduce recent files ambient context for assistant (#11791) 2024-05-14 13:48:36 +02:00
task task: Add re-run task button to terminal title (#12379) 2024-05-29 11:40:43 +02:00
tasks_ui task: Add re-run task button to terminal title (#12379) 2024-05-29 11:40:43 +02:00
telemetry_events Add telemetry for supermaven (#11821) 2024-05-16 17:18:32 -04:00
terminal Allow UI font weight to be assigned in settings (#12333) 2024-05-26 23:06:58 -06:00
terminal_view Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
text indent guides: Fix tab handling (#12249) 2024-05-24 18:24:03 +02:00
theme Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
theme_importer Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
theme_selector Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
time_format Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
ui Make slash commands more discoverable (#12480) 2024-05-30 16:45:05 +02:00
ui_text_field Allow UI font weight to be assigned in settings (#12333) 2024-05-26 23:06:58 -06:00
util Add Flatpak build system and support (#12006) 2024-05-27 19:01:20 -06:00
vcs_menu Use repository mutex more sparingly. Don't hold it while running git status. (#12489) 2024-05-30 09:37:11 -07:00
vim Fix some edge-cases in vim visual delete (#12131) 2024-05-22 12:54:41 -06:00
welcome Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
workspace Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
worktree Use repository mutex more sparingly. Don't hold it while running git status. (#12489) 2024-05-30 09:37:11 -07:00
zed Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
zed_actions Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00