Commit Graph
197 Commits
Author SHA1 Message Date
Antonio Scandurra fcf97ab41e Bump protocol version 2023-01-17 16:32:54 +01:00
Max Brunsfeld fe27f135c0 Bump protocol version after reconnect support 2023-01-11 14:00:16 -08:00
Nathan Sobo 386f7ba16d Merge remote-tracking branch 'origin/main' into project-reconnection 2023-01-06 16:52:22 -07:00
Joseph Lyons 233b28a1b9 Appease clippy 2023-01-01 23:50:45 -05:00
Antonio Scandurra 75803d8dbb Respond with an error when client hasn't got a registered handle 2022-12-23 11:53:13 +01:00
Antonio Scandurra 47348542ef Synchronize buffers when either the host or a guest reconnects 2022-12-21 14:20:56 +01:00
Max Brunsfeld 21d6665c37 Merge branch 'main' into project-reconnection 2022-12-20 15:50:09 -08:00
Antonio Scandurra 1aec691b35 Sketch out project reconnection routine on the server 2022-12-20 12:03:43 +01:00
Max BrunsfeldandNathan Sobo 70dd586be9 Start work on rejoining rooms, supplying all project info at once
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-12-19 17:50:43 -08:00
Max Brunsfeld 1e02ebbd11 Replicate pending selections separately from other selections
This fixes a panic that would occur when a leader created
a pending selection that overlapped another selection,
because the follower would attempt to treat that pending
selection as non-pending, which would violate the invariant
that selections are sorted and disjoint.
2022-12-17 14:00:53 -08:00
Antonio Scandurra 457e1046c8 Bump protocol version 2022-12-16 11:48:14 +01:00
Antonio Scandurra 21ab1bb434 Remove unnecessary PeerId parsing code 2022-12-16 11:45:42 +01:00
Antonio Scandurra 5a334622ea 💄 2022-12-15 16:34:59 +01:00
Antonio Scandurra 688f179256 Use "id" nomenclature more consistently 2022-12-15 10:15:59 +01:00
Antonio Scandurra 930be6706f WIP 2022-12-14 18:02:39 +01:00
Antonio Scandurra 05e99eb67e Introduce an epoch to ConnectionId and PeerId 2022-12-14 15:55:56 +01:00
Antonio Scandurra 0220d7ba5d Include room_id in CallCanceled message
This ensures we don't accidentally cancel old calls.
2022-12-13 11:43:09 +01:00
Antonio Scandurra 7bbd97cfb9 Send diagnostic summaries synchronously 2022-12-05 19:07:06 +01:00
Antonio Scandurra e7e45be6e1 Revert "Wait for previous UpdateFollowers message ack before sending new ones"
This reverts commit fe93263ad4.
2022-11-17 16:57:32 +01:00
Antonio Scandurra fe93263ad4 Wait for previous UpdateFollowers message ack before sending new ones 2022-11-17 14:12:00 +01:00
Nathan Sobo e5f05c9f3b Move leave_project from Store to db module 2022-11-16 17:45:47 -07:00
Antonio Scandurra faf265328e Wait for acknowledgment before sending the next diagnostic summary 2022-11-16 16:03:01 +01:00
Antonio Scandurra 3e8fcb04f7 Finish implementing Db::update_project 2022-11-15 09:01:51 +01:00
Antonio Scandurra 40073f6100 Wait for acknowledgment before sending the next project update 2022-11-14 15:32:49 +01:00
Antonio Scandurra 6871bbbc71 Start moving Store state into the database 2022-11-11 12:06:43 +01:00
Antonio ScandurraandNathan Sobo dce21900a7 Bump protocol version
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-10-24 17:06:40 +02:00
Antonio ScandurraandNathan Sobo 2c4f003897 Tell clients their peer id on connection in Hello message
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-10-18 18:42:55 +02:00
Mikayla Maki 895aeb033f Merge branch 'main' into breadcrumbs 2022-10-17 16:51:38 -07:00
K Simmons 09a0b3eb55 increment protocol version 2022-10-17 16:20:51 -07:00
Mikayla Maki 5bb2edca8b Added absolute path info to remote worktrees (updated protocol version) 2022-10-17 15:27:46 -07:00
Antonio Scandurra ec19f0f8e9 Remove unnecessary async from Peer::add_connection 2022-10-12 15:32:39 +02:00
Antonio Scandurra afaacba41f Merge remote-tracking branch 'origin/main' into room 2022-10-10 15:43:38 +02:00
Antonio ScandurraandNathan Sobo f9fb3f78b2 WIP: Render active call in contacts popover
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-10-07 17:01:48 +02:00
Antonio Scandurra 386de03f46 Fix room disconnection problems when creating room and sharing project 2022-10-07 14:39:11 +02:00
Antonio Scandurra 4cb306fbf3 Implement call cancellation 2022-10-06 15:12:27 +02:00
Antonio Scandurra 456dde200c Implement Room::set_location 2022-10-04 11:46:01 +02:00
JuliaandMikayla Maki e6487de069 Rename head text to indicate that it's not always going to be from head
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2022-10-03 15:11:06 -04:00
Mikayla Maki 52dbf2f9b8 add proto stuff 2022-10-02 18:01:37 -07:00
Julia 7f84abaf13 Increment protocol version again for previous commit 2022-10-02 14:11:35 -04:00
Mikayla Maki 512f817e2f Added proto messages for updating the head text 2022-10-01 18:18:35 -07:00
Antonio Scandurra 074b8f18d1 Rip out project registration and use sharing/unsharing instead 2022-09-30 12:23:57 +02:00
Antonio Scandurra be8990ea78 Remove project join requests 2022-09-30 11:35:50 +02:00
Julia fcf11b1181 Bump protocol version to be ahead of main 2022-09-29 13:16:02 -04:00
Antonio Scandurra e55e7e4844 Leave room when Room entity is dropped 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
Julia f3395cf4fd Add editor action to manually invoke buffer format 2022-09-22 18:21:05 -04:00
Antonio Scandurra ec48ffc9da Simplify proto::Buffer to express its fields in terms of operations 2022-08-23 12:40:20 +02:00
Antonio Scandurra 9c9bf07e40 Create buffers for remote collaborators out of band
Previously, we would use `Project::serialize_buffer_for_peer` and
`Project::deserialize_buffer` respectively in the host and in the
guest to create a new buffer or just send its ID if the host thought
the buffer had already been sent.

These methods would be called as part of other methods, such as
`Project::open_buffer_by_id` or `Project::open_buffer_for_symbol`.
However, if any of the tasks driving the futures that eventually
called `Project::deserialize_buffer` were dropped after the host
responded with the buffer state but (crucially) before the guest
deserialized it and registered it, there could be a situation where
the host thought the guest had the buffer (thus sending them just the
buffer id) and the guest would wait indefinitely.

Given how crucial this interaction is, this commit switches to creating
remote buffers for peers out of band. The host will push buffers to guests,
who will always refer to buffers via IDs and wait for the host to send them,
as opposed to including the buffer's payload as part of some other operation.
2022-08-17 11:55:36 +02:00