ZIm/crates/collab
Kirill Bulatov c7f04691d9
Query code actions and hovers from all related local language servers (#9943)
<img width="1122" alt="Screenshot 2024-03-28 at 21 51 18"
src="https://github.com/zed-industries/zed/assets/2690773/37ef7202-f10f-462f-a2fa-044b2d806191">


Part of https://github.com/zed-industries/zed/issues/7947 and
https://github.com/zed-industries/zed/issues/9912 that adds makes Zed
query all related language servers instead of the primary one.

Collab clients are still querying the primary one only, but this is
quite hard to solve, https://github.com/zed-industries/zed/pull/8634
drafts a part of it.
The local part is useful per se, as many people use Zed & Tailwind but
do not use collab features.

Unfortunately, eslint still returns empty actions list when queried, but
querying actions for all related language servers looks reasonable and
rare enough to be dangerous.

Release Notes:

- Added Tailwind CSS hover popovers for Zed in single player mode
([7947](https://github.com/zed-industries/zed/issues/7947))
2024-03-29 12:18:38 +02:00
..
k8s Assign OPENAI_API_KEY from a k8s secret in the collab deployment (#9703) 2024-03-22 08:36:52 -06:00
migrations Add telemetry events for loading extensions (#9793) 2024-03-25 17:30:48 -04:00
migrations.sqlite Add telemetry events for loading extensions (#9793) 2024-03-25 17:30:48 -04:00
src Query code actions and hovers from all related local language servers (#9943) 2024-03-29 12:18:38 +02:00
.env.toml Make it (a tiny bit) easier to run your own collab (#9557) 2024-03-20 21:00:02 -06:00
admin_api.conf Run postgrest as part of foreman 2023-09-13 12:32:15 -07:00
basic.conf Rename zed-server to collab 2022-04-09 08:30:42 -06:00
Cargo.toml Make it (a tiny bit) easier to run your own collab (#9557) 2024-03-20 21:00:02 -06:00
LICENSE-AGPL chore: Add crate licenses. (#4158) 2024-01-23 16:56:22 +01:00
README.md remoting (#9680) 2024-03-22 08:44:56 -06:00
seed.default.json Make it (a tiny bit) easier to run your own collab (#9557) 2024-03-20 21:00:02 -06:00

Zed Server

This crate is what we run at https://collab.zed.dev.

It contains our back-end logic for collaboration, to which we connect from the Zed client via a websocket after authenticating via https://zed.dev, which is a separate repo running on Vercel.

Local Development

Detailed instructions on getting started are here.

Deployment

We run two instances of collab:

Both of these run on the Kubernetes cluster hosted in Digital Ocean.

Deployment is triggered by pushing to the collab-staging (or collab-production) tag in Github. The best way to do this is:

  • ./script/deploy-collab staging
  • ./script/deploy-collab production

You can tell what is currently deployed with ./script/what-is-deployed.

Database Migrations

To create a new migration:

./script/create-migration <name>

Migrations are run automatically on service start, so run foreman start again. The service will crash if the migrations fail.

When you create a new migration, you also need to update the SQLite schema that is used for testing.