zed/crates/collab
Antonio Scandurra ca1d0a6e59 Ignore tokens that were not created via WorkDoneProgressCreate
With the new version of rust-analyzer, we were seeing stray `WorkDoneProgress::End`
messages that create an imbalance in the `pending_diagnostic_updates` that never
resolves. This was causing the diagnostic status bar item to never update because
we wouldn't emit `DiskBasedDiagnosticsStarted` nor `DiskBasedDiagnosticsFinished`.

This commit fixes the above situation by only acknowledging progress report for tokens
that have explicitly been created via the `WorkDoneProgressCreate` request, as stated
by the protocol.

In addition to that, we are replacing the `pending_diagnostic_updates: isize` with
a `has_pending_diagnostic_updates: bool`. We added it at some point to prevent a similar
issue where we would observe begin/end reports in a seemingly random order, which would cause
us to permanently display a `checking...` message in the status bar. I believe this commit
fixes that as well because the `isize` was just a less general solution for the same
underlying issue. As the protocol states: "the token provided in the create request should
only be used once (e.g. only one begin, many report and one end notification should be sent
to it)."
2022-06-28 10:08:43 +02:00
..
k8s Move prometheus annotations from deployment to pod spec 2022-06-10 14:32:36 -07:00
migrations Register projects in the database and record worktree extensions 2022-06-21 10:29:26 +02:00
src Ignore tokens that were not created via WorkDoneProgressCreate 2022-06-28 10:08:43 +02:00
.env.template.toml Add affordance to copy user's invite link if they have a code 2022-05-19 17:57:46 -06:00
basic.conf Rename zed-server to collab 2022-04-09 08:30:42 -06:00
Cargo.toml Accept a datetime range when querying project activity 2022-06-21 14:03:10 +02:00
Procfile Rename zed-server to collab 2022-04-09 08:30:42 -06:00
README.md Remove more files supporting the old web front-end 2022-04-21 09:06:34 -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.