Commit Graph
120 Commits
Author SHA1 Message Date
Kirill Bulatov 6e3d1b962a Draft the initial protobuf changes 2023-06-29 22:25:48 +03:00
Max Brunsfeld 5350164db9 Get integration test passing. Wait for expand entry on remote projects. 2023-06-22 10:34:28 -07:00
Max Brunsfeld aa6f2f1816 Remove logic for marking worktree entries as collapsed 2023-06-22 10:34:28 -07:00
Max Brunsfeld 4c03231863 Maintain on the background scanner a set of expanded directories 2023-06-22 10:34:28 -07:00
Max Brunsfeld 8f95435548 Replicate project-specific settings when collaborating 2023-05-30 18:08:03 -07:00
Kirill Bulatov 3327e8a6dd Support remote sessions 2023-05-25 09:45:50 +03:00
Mikayla Makiandmax f59256f761 Update git repositories to be streamed with their entries
co-authored-by: max <max@zed.dev>
2023-05-15 16:22:00 -07:00
Mikayla Maki 307dd2b83e Update proto names to reflect new status info 2023-05-15 16:20:01 -07:00
Mikayla Maki 60320c6b09 Send the root branch along with it's entry 2023-05-12 09:37:02 -07:00
Mikayla Maki e20eaca595 Got basic replication working :) 2023-05-10 17:37:36 -07:00
Mikayla Maki f28419cfd1 Fix styling of titlebar highlights 2023-05-08 14:33:59 -07:00
Mikayla MakiandMax d8dac07408 Removed scan ID from repository interfaces
co-authored-by: Max <max@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla MakiandMax 8301ee43d6 WIP: Add repository entries to collab and synchronize when rejoining the room
co-authored-by: Max <max@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla Maki 2fe5bf419b Add proto fields for repository entry maintenance 2023-05-08 14:33:59 -07:00
Antonio Scandurra 643381ce0c Make UpdateDiffBase a Foreground message to prevent reordering 2023-04-11 08:50:26 +02:00
Antonio ScandurraandMax Brunsfeld bca1acf6d3 Leave room on quit
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-03-13 17:52:10 +01:00
Antonio Scandurra eca6115e4b Ensure proto::UpdateWorktree::removed_entries doesn't exceed chunk size
This was causing the database to panic because we were trying to remove too
many entries at once.
2023-01-26 17:26:31 +01: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
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
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 05e99eb67e Introduce an epoch to ConnectionId and PeerId 2022-12-14 15:55:56 +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
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 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 5bb2edca8b Added absolute path info to remote worktrees (updated protocol version) 2022-10-17 15:27:46 -07:00
Antonio Scandurra afaacba41f Merge remote-tracking branch 'origin/main' into room 2022-10-10 15:43:38 +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
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
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
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
ForLoveOfCatsandMikayla 8ba2f77148 One big cleanup pass of clippy lints
Co-authored-by: Mikayla <mikayla@zed.dev>
2022-08-10 16:51:01 -07:00
ForLoveOfCats 5149c15329 Add "go to type definition" action 2022-07-29 11:41:08 -04:00
Antonio Scandurra d3b9eca791 Merge branch 'main' into user-timeline 2022-07-04 09:23:16 +02:00
Antonio Scandurra 484af8c7c4 Split worktree updates when a peer joins an already-shared project 2022-06-30 16:49:56 +02:00