Nathan Sobo
ce223e88fe
Fix tests that failed due to defaulting the grouping interval to zero in tests
2023-01-06 17:56:21 -07:00
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
Nathan Sobo
80cc0ba9dc
Update scan_id on worktree entries when there is a conflict
...
Forgetting to do this meant we were unable to sync changes with reconnecting
guests in some cases.
2023-01-04 13:59:16 -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
fdb51a78b9
Record failing seed
2023-01-02 21:12:39 -07:00
Nathan Sobo
b3387b31ac
Set transaction group interval to ZERO by default in tests
...
We were seeing non-deterministic behavior in randomized tests when
generating backtraces took enough time to cause transactions to group
in some cases, but not group in others.
Tests will need to explicitly opt into grouping if they want it by
setting the interval explicitly. We have tests in the text module that
currently test the history grouping explicitly, but I'm not sure
it's needed elsewhere.
2022-12-27 16:47:28 -07:00
Max Brunsfeld
ad007a836e
WIP - Panic immediately when detecting non-determinism via a change to the execution trace
2022-12-23 17:34:13 -08:00
Max Brunsfeld and Antonio Scandurra
a7b871abcd
Excluded deleted entries when initially sending worktrees to guests
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev >
2022-12-22 11:18:10 -08:00
Antonio Scandurra
5f5b420221
WIP: failing test
...
SEED=882 RUST_LOG=collab::tests::randomized_integration_tests=info MAX_PEERS=2 ITERATIONS=1 OPERATIONS=49 cargo test --package=collab random -- --nocapture
2022-12-22 18:32:21 +01:00
Antonio Scandurra
d4fd5df990
Restructure randomized test to be a bit clearer and test more stuff
2022-12-22 17:54:25 +01: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
Max Brunsfeld and Nathan Sobo
7fdb0c1234
In randomized test, open remote projects via the room
...
Co-authored-by: Nathan Sobo <nathan@zed.dev >
2022-12-21 14:13:43 -08:00
Max Brunsfeld
370c08ec41
💄 Avoid referring to all clients as guests in random integration test
2022-12-21 11:37:18 -08:00
Max Brunsfeld
3bd050e983
Move randomized integration test into its own file
2022-12-21 11:26:24 -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
b1a12cd671
Add failing test for buffer synchronization after disconnecting
2022-12-21 11:56:15 +01:00
Antonio Scandurra
224e642828
Verify removing worktrees while host is offline
2022-12-21 11:47:01 +01:00
Max Brunsfeld
6e377aa2d9
Refresh project collaborator connection id for rejoined projects
2022-12-20 18:03:33 -08:00
Max Brunsfeld
57960beb41
Delete stale projects after cleanup interval, via server foreign key cascade
2022-12-20 17:27:42 -08:00
Max Brunsfeld
4a47b56a72
💄 Avoid repeated sql condition in rejoin_room
2022-12-20 17:23:52 -08:00
Max Brunsfeld
ea7214b0e4
💄 Reduce indentation in Database::rejoin_room
2022-12-20 17:16:56 -08:00
Max Brunsfeld
c7c947dca2
Remove unnecessary UnshareProject message sent to clients leaving a project
2022-12-20 16:58:44 -08:00
Max Brunsfeld
fb1f3b5c4d
Clean up projects when leaving a room
2022-12-20 16:44:57 -08:00
Max Brunsfeld
8f2c51abec
Merge branch 'main' into project-reconnection
2022-12-20 15:50:09 -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
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
Antonio Scandurra
75346960db
Sketch out project reconnection routine on the server
2022-12-20 12:03:43 +01:00
Max Brunsfeld
36d40f44ac
WIP - Retain hosts' project state when they disconnect
2022-12-19 11:38:08 -08:00
Max Brunsfeld
99d806fde4
Add failing integration test for resharing projects on reconnect
2022-12-19 11:37:28 -08:00
Max Brunsfeld
c557f17751
collab 0.4.2
2022-12-19 11:29:22 -08:00
Antonio Scandurra
70f1e81296
WIP
2022-12-19 20:05:00 +01:00
Julia
6fb3bad2e8
Merge pull request #1983 from zed-industries/multi-buffer-git-gutter
...
Multi buffer git gutter
2022-12-19 10:53:42 -05:00
Antonio Scandurra
e183b2682c
collab 0.4.1
2022-12-16 12:02:03 +01:00
Antonio Scandurra
1c7d888e94
Fix test ensuring room is left when disconnected from LiveKit
2022-12-16 10:52:32 +01:00
Max Brunsfeld
e5718bced7
Identify LiveKit room participants by user id, not peer id
...
This way, their participant id can remain the same when they reconnect.
2022-12-15 17:19:32 -08:00
Antonio Scandurra
86c8818915
collab 0.4.0
2022-12-15 19:37:53 +01:00
Antonio Scandurra
15b96a0531
Minor stylistic change
2022-12-15 16:40:16 +01:00
Antonio Scandurra
e65429a22b
💄
2022-12-15 16:34:59 +01:00
Antonio Scandurra
7c312a10d9
Merge branch 'main' into fix-reconnects-after-deploy
2022-12-15 15:32:05 +01:00
Antonio Scandurra
656a8b3217
collab 0.3.14
2022-12-15 11:31:51 +01:00
Antonio Scandurra
7ad68a05d7
Allow nulls in projects.host_connection_{id,server_id}
...
The server version on stable won't be able to fill values for those
columns when we deploy the migration to preview.
With this commit we're also dropping the unused `worktree_extensions`
and `project_activity_periods` tables. The last version of the server
on stable (0.2.6) doesn't contain any code that accesses those tables.
2022-12-15 11:30:51 +01:00
Antonio Scandurra
6d307e42c2
collab 0.3.13
2022-12-15 10:53:17 +01:00
Antonio Scandurra
62c95778b1
Avoid logging an error when user who hasn't joined any room disconnects
2022-12-15 10:45:03 +01:00
Antonio Scandurra
b4a4b40623
Use "id" nomenclature more consistently
2022-12-15 10:15:59 +01:00
Antonio Scandurra
21a1f1881d
Re-add server_id indices for room_participants/project_collaborators
2022-12-15 09:58:25 +01:00