Commit Graph
54 Commits
Author SHA1 Message Date
Antonio ScandurraandNathan Sobo 80ab144bf3 Ring users upon connection if somebody was calling them before connecting
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-28 11:33:38 +02:00
Antonio ScandurraandNathan Sobo 6aa0f0b200 Leave room automatically on disconnection
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-28 11:33:38 +02:00
Antonio Scandurra e55e7e4844 Leave room when Room entity is dropped 2022-09-28 11:33:38 +02:00
Antonio Scandurra bb9ce86a29 Introduce the ability of declining calls 2022-09-28 11:33:38 +02:00
Antonio Scandurra f4697ff4d1 Prevent the same user from being called more than once 2022-09-28 11:33:38 +02:00
Antonio Scandurra 55b095cbd3 Implement joining a room and sending updates after people join/leave 2022-09-28 11:33:38 +02:00
Antonio ScandurraandNathan Sobo 4a9bf8f4fe Introduce call infrastructure
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-28 11:33:38 +02:00
Antonio Scandurra ebb5ffcedc Introduce the ability of creating rooms on the server 2022-09-28 11:33:38 +02:00
Antonio Scandurra 8fec7da799 WIP 2022-09-28 11:33:38 +02:00
ForLoveOfCatsandMikayla 8ba2f77148 One big cleanup pass of clippy lints
Co-authored-by: Mikayla <mikayla@zed.dev>
2022-08-10 16:51:01 -07:00
Antonio Scandurra d3b9eca791 Merge branch 'main' into user-timeline 2022-07-04 09:23:16 +02:00
Antonio Scandurra 09bb3ddeb8 Split worktree updates and only send 256 entries at a time 2022-06-30 14:06:41 +02:00
Antonio ScandurraandNathan Sobo 639cd71a3b Record worktree extensions every 5 minutes
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-06-29 16:58:19 +02:00
Antonio Scandurra 09f4262fd4 Don't share a project unless it's online and we're allowing a request 2022-06-29 15:16:55 +02:00
Antonio Scandurra e3cfc7b3ce Register project activity for offline projects as well 2022-06-29 14:55:04 +02:00
Antonio ScandurraandNathan Sobo 555847449b Use BTreeMap in Server so we release memory when maps are cleared
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-06-23 18:02:17 +02:00
Antonio Scandurra ebaf3224fd Exclude staff from activity recording 2022-06-21 16:07:59 +02:00
Antonio Scandurra 7acebc4eb8 Register projects in the database and record worktree extensions 2022-06-21 10:29:26 +02:00
Max Brunsfeld 44160869eb Add an API that returns the most active users and the projects where they've been active 2022-06-20 19:46:37 -07:00
Antonio Scandurra a85f9e74b1 Harvest the latest metrics when /metrics is requested
Now that we track active projects, if nothing happens to the store
during the activity timeout we would still serve some old metrics
that may not account for the staleness of a project.

This commit changes it so that we grab a mutable reference to the store
before serving the metrics, which has the side effect of updating
all the metrics.
2022-06-15 10:54:51 +02:00
Antonio Scandurra e373e05d27 🎨 2022-06-15 10:42:37 +02:00
Antonio Scandurra 3a1d0dd692 Track active projects in metrics
An active project is defined as a project where there has been at
least a buffer edit, a join request/response, or a follow update
in the last minute.
2022-06-15 10:33:20 +02:00
Antonio Scandurra 6d93a41f40 Exclude admins from collected metrics 2022-06-14 16:26:00 +02:00
Antonio Scandurra 68093342e7 Broadcast only visible worktree root names 2022-06-14 15:15:23 +02:00
Antonio Scandurra 502625c570 Exclude ignored files from the logged extension count 2022-06-13 09:16:16 +02:00
Antonio Scandurra 3b8388dcdd Log extension counts when worktree is updated 2022-06-13 08:57:21 +02:00
Antonio Scandurra 63fdf1398a WIP: Start adding more logs 2022-06-10 18:17:02 +02:00
Max Brunsfeld 24aafde1e8 Avoid persisting project's state before it has been initialized 2022-06-03 16:40:16 -07:00
Max Brunsfeld d11beb3c02 Change project registration RPC APIs to smooth out UI updates
* Make `UnregisterProject` a request. This way the client-side project can wait
  to clear out its remote id until the request has completed, so that the
  contacts panel can avoid showing duplicate private/public projects in the
  brief time after unregistering a project, before the next UpdateCollaborators
  message is received.
* Remove the `RegisterWorktree` and `UnregisterWorktree` methods and replace
  them with a single `UpdateProject` method that idempotently updates the
  Project's list of worktrees.
2022-06-02 17:32:43 -07:00
Antonio Scandurra 1ce8682b94 Clear language server and worktree statuses when unsharing on server 2022-05-31 11:22:41 +02:00
Nathan Sobo 742dd75041 Implement /rpc_server_snapshot endpoint
This returns a JSON snapshot of the state of the server
2022-05-25 17:42:25 -06:00
Antonio Scandurra a828282771 Fix Store::remove_connection not removing guests from projects 2022-05-17 14:50:00 +02:00
Nathan Sobo d821e7a4c1 Cancel join requests when the requester closes the window 2022-05-16 20:29:36 -06:00
Antonio Scandurra 740ec3d192 WIP: decline pending join requests when project is unregistered 2022-05-16 17:46:08 +02:00
Max Brunsfeld 1996b01a74 Tell host to unshare project when last guest leaves 2022-05-13 14:57:55 -07:00
Antonio ScandurraandNathan Sobo 5789aeea24 Fix randomized test failure caused by unsharing while guest was joining
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-05-13 17:39:13 +02:00
Max BrunsfeldandNathan Sobo be51a58311 Start work on requesting to join projects
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-05-12 17:53:11 -07:00
Max Brunsfeld f54d74eda9 Merge branch 'main' into contact-panel-keyboard-nav 2022-05-11 17:45:44 -07:00
Max Brunsfeld 4739c683af Fix bug where Contacts included projects for which the use was a guest 2022-05-11 16:49:56 -07:00
Max BrunsfeldandNathan Sobo 3bc9b8ec85 Add notifications for accepted contact requests
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-05-11 11:39:01 -07:00
a5fd664b00 Add the ability to notify when a user accepts a contact request
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-05-11 18:51:40 +02:00
Antonio Scandurra ca56b0d6d5 Forbid joining projects if users are not contacts 2022-05-09 15:51:54 +02:00
Antonio Scandurra 95d29c4a7b Update contacts when peers join/leave and when project status changes 2022-05-09 15:08:18 +02:00
Nathan Sobo 5d20338f69 Get basic test of accepting a contact request passing 2022-05-07 15:09:27 -06:00
Nathan Sobo 93dae88cac WIP: Fix compile errors by commenting stuff out 2022-05-07 14:04:13 -06:00
Nathan Sobo 4f06dca78b WIP: Update contacts based on deltas rather than snapshots 2022-05-06 20:50:59 -06:00
Antonio Scandurra 6212f2fe30 Wait for remote worktree to catch up with host before mutating entries
This ensures that entries don't randomly re-appear on remote worktrees
due to observing an update too late. In fact, it ensures that the remote
worktree has the same starting state of the host before preemptively applying
the fs operation locally.
2022-05-05 13:47:53 +02:00
Antonio ScandurraandNathan Sobo f4e5cb14bf Remove collaborators_per_project from Metrics
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-29 17:19:14 +02:00
Antonio Scandurra 6734793069 Start adding metrics to collab server 2022-04-29 10:25:20 +02:00
Nathan SoboandAntonio Scandurra 1fe964ac16 Start moving from logging to tracing on collab server
Install some spans. Probably more work to do here.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-28 09:45:59 -06:00