Antonio Scandurra and Nathan Sobo
1ac1bd1838
Share new worktrees when resharing project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-01-06 12:58:19 -07:00
Antonio Scandurra and Nathan Sobo
d436aae4ae
Match guest's reported buffers on host when synchronizing after reconnect
...
If the host thinks a guest has a buffer that they don't have, the host won't
send it to them when they attempt to open it the next time. This can happen
if the guest disconnected before they received the host's response to an
initial open buffer request.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-01-06 11:48:34 -07:00
Antonio Scandurra
41e381c23b
Only share worktrees when UpdateProject succeeded
2023-01-06 10:41:11 -07:00
Antonio Scandurra
2aedbfec7a
Couple worktree sharing with project metadata updates
2023-01-06 10:31:36 -07:00
Antonio Scandurra
e2c0fa6254
Ensure initial project metadata is sent when first sharing a project
2023-01-06 10:18:26 -07:00
Nathan Sobo
c2ae4edc20
Avoid holding project handle on a call that could hang
...
This fixes a leaked handle error.
2023-01-05 21:01:27 -07:00
Nathan Sobo
09064d29df
Wait for incomplete buffers when handling incoming buffer file updates
2023-01-05 13:50:25 -07:00
c28230fd21
Re-request incomplete remote buffers when syncing buffers
...
Any buffers we requested but that haven't been fully sent will cause
outstainding open requests to hang. If we re-request them, any
waiting open requests will resume when the requested buffers finish
being created.
Co-authored-by: Max Brunsfeld <max@zed.dev >
Co-authored-by: Mikayla Maki <mikayla@zed.dev >
2023-01-04 16:00:43 -07:00
Nathan Sobo
e3b9adc8f6
Update buffer files when synchronizing buffers
...
It's possible that the host was disconnected when attempting to notify
guests of a file save, so we need to transmit this in order to correctly
update the file's mtime.
Next failing seed OPERATIONS=200 SEED=6894
2023-01-04 12:33:48 -07:00
Nathan Sobo
01d051d43d
Introduce completed_scan_id to worktree
...
We need to know the most recent scan id we have actually completed. This is to
handle the case where a guest disconnects when we're in the middle of streaming
worktree entries to them. When they reconnect, they need to report a scan_id
from before we started streaming the entries, because we have no record of when
the stream was interrupted.
Next failure:
SEED=5051 ITERATIONS=1 OPERATIONS=200 cargo test --release --package=collab random -- --nocapture
2023-01-03 18:26:57 -07:00
Nathan Sobo
e527caa26d
WIP
2023-01-03 13:30:14 -07:00
Nathan Sobo
fe90759634
Track open buffers when handling sync requests
...
When a host sends a buffer to a guest for the first time, they record that
they have done so in a set tied to that guest's peer id. When the guest
reconnects and syncs buffers, they do so under a different peer id, so we
need to be sure we track which buffers we have sent them to avoid sending
them the same buffer twice, which violates the guest's assumptions.
2023-01-02 20:27:59 -07:00
Nathan Sobo
b512c661c9
Remove printlns, found a failure
...
Failing seed:
SEED=416 MAX_PEERS=2 ITERATIONS=5000 OPERATIONS=159 cargo +beta test --package=collab random -- --nocapture
2022-12-27 17:01:31 -07:00
Antonio Scandurra
649e7d2eab
WIP: failing randomized test
...
SEED=175 MAX_PEERS=2 ITERATIONS=1 OPERATIONS=159 cargo test --package=collab random -- --nocapture
2022-12-23 15:02:06 +01:00
Antonio Scandurra
5f13eeb06e
Avoid hanging waiting for operations when buffer has none
2022-12-23 12:26:48 +01:00
Max Brunsfeld and Antonio Scandurra
a0c1217bbc
Handle file and diff updates to incomplete buffers
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev >
2022-12-21 15:39:57 -08:00
Max Brunsfeld and Nathan Sobo
c07f90cb54
Assert that buffers' file state matches in randomized collab test
...
Co-authored-by: Nathan Sobo <nathan@zed.dev >
2022-12-21 15:38:44 -08:00
Antonio Scandurra
55c5989abc
Synchronize buffers when either the host or a guest reconnects
2022-12-21 14:20:56 +01:00
Antonio Scandurra
91d2b79aff
Remove unused JoinProjectError
2022-12-21 13:10:07 +01:00
Antonio Scandurra
224e642828
Verify removing worktrees while host is offline
2022-12-21 11:47:01 +01:00
Antonio Scandurra
bd34a3b262
Handle proto::UpdateProjectCollaborator message in Project
2022-12-21 11:09:27 +01:00
Max Brunsfeld
0f88f651df
💄 Reorder private Project method
2022-12-20 17:32:42 -08:00
Max Brunsfeld and Julia Risley
2dd709e002
Implement rejoining projects as guest when rejoining a room
...
Co-authored-by: Julia Risley <julia@zed.dev >
2022-12-20 15:02:26 -08:00
Max Brunsfeld and Antonio Scandurra
3470889fb2
Handle unshared projects when rejoining a room
...
Also, construct remote projects via the room, to guarantee
that the room can manage the projects' sharing lifecycle.
Co-authored-by: Antonio Scandurra <antonio@zed.dev >
2022-12-20 11:10:46 -08:00
Antonio Scandurra
fcf2102f6e
Remove unused import
2022-12-20 17:47:22 +01:00
Antonio Scandurra
e2c8a2cb63
Support adding worktrees to project while host is offline
2022-12-20 17:42:08 +01:00
Antonio Scandurra
458b07bc3a
Make host reconnection test pass when mutating worktree while offline
2022-12-20 17:30:58 +01:00
Antonio Scandurra
97e3f2da09
Fix project reconnection test to ensure rooms actually reconnects
2022-12-20 14:51:46 +01:00
Max Brunsfeld and Nathan Sobo
c9fa0ff03f
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
a94ecfa4e6
💄
2022-12-19 16:17:27 +01:00
Antonio Scandurra
f4762f379d
Stop counting extensions in worktree
2022-12-19 16:05:22 +01:00
Antonio Scandurra
f7070792a9
Introduce an epoch to ConnectionId and PeerId
2022-12-14 15:55:56 +01:00
Mikayla Maki
5ace676783
WIP
2022-12-08 20:21:00 -08:00
Mikayla Maki
ee2013b8ec
WIP
2022-12-08 20:21:00 -08:00
Mikayla Maki
33fca2f334
Rearrange the terminal code to not have a cyclic dependency with the project
2022-12-08 20:21:00 -08:00
Mikayla Maki
14efea9aa8
WIP - move terminal to project as pre-prep for collaboration
2022-12-08 20:21:00 -08:00
Antonio Scandurra
b5ede1d2d9
Merge branch 'main' into reconnections-2
2022-12-05 19:18:40 +01:00
Antonio Scandurra
55447288ed
Send diagnostic summaries synchronously
2022-12-05 19:07:06 +01:00
Kay Simmons and Mikayla Maki
ff5f2cbed7
Dock persistence working!
...
Co-Authored-By: Mikayla Maki <mikayla@zed.dev >
2022-12-03 16:06:01 -08:00
Mikayla Maki and
6c0a41919b
Distributed database pattern built.
...
Co-Authored-By: kay@zed.dev
2022-12-03 16:06:01 -08:00
Mikayla Maki
e097f1f598
Done first draft of strongly typed migrations
2022-12-03 16:05:25 -08:00
Antonio Scandurra
3fac823050
Merge branch 'main' into reconnections-2
2022-12-02 19:09:33 +01:00
Antonio Scandurra
3c4a8b6c01
Error if project is disconnected after getting completions response
2022-11-28 19:19:24 +01:00
Antonio Scandurra
ccc0539843
Return error when waiting on a worktree snapshot after disconnecting
2022-11-28 17:43:40 +01:00
Antonio Scandurra
655567c0ab
Error if project is disconnected after getting code actions response
2022-11-28 15:05:34 +01:00
Antonio Scandurra
8a734a408c
After completing LSP request, return an error if guest is disconnected
2022-11-28 14:39:27 +01:00
Julia and Max Brunsfeld
52be58fcb9
Collapse proto Point into the one kind of use case, utf-16 coords
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2022-11-23 13:28:44 -05:00
Julia and Max Brunsfeld
dde8f8e781
Clip diagnostic range before and during empty range expansion
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2022-11-23 13:21:05 -05:00
Julia
06895033f3
Fixup compile errors
2022-11-22 02:49:47 -05:00
Julia
475e37d4cf
Wrap a bunch of traits for Unclipped<T>
2022-11-21 15:58:44 -05:00