Nathan Sobo
5839c594d8
Fix formatting
2023-04-06 15:54:44 -06:00
Nathan Sobo
d937660683
Merge MutableAppContext into AppContext
...
There may have been a good reason for the difference at some point, or I was
still learning Rust. But now it's just &mut AppContext vs &AppContext.
2023-04-06 15:49:03 -06:00
Max Brunsfeld
1b86129ae2
Close remote project windows when leaving a call
2023-03-15 15:24:58 -07:00
Max Brunsfeld and Antonio Scandurra
9342332495
Fix failure to see screenshare tracks that were started prior to joining a call
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev >
2023-03-13 11:15:22 -07:00
Antonio Scandurra and Max Brunsfeld
3c81933fbc
Leave room on quit
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2023-03-13 17:52:10 +01:00
Julia and Antonio Scandurra
c86117f852
Increase reconnect timeout
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2023-03-03 13:10:08 -08:00
Julia
aae083923c
Differentiate between follow state on a per-project basis
2023-02-24 00:07:17 -05:00
Antonio Scandurra
7a0c129ad6
Avoid trying to reconnect to a room if client is signed out
2023-02-23 14:53:10 +01:00
Julia
8946fbd17d
Highlight face pile which local user is following
2023-02-22 11:22:37 -05:00
Julia
fa56590cd7
Following face piles finally take their first breath
2023-02-22 11:21:23 -05:00
Julia
988f9c1266
Abuse a closure instead of abusing options/iterators quite so much
2023-02-22 11:21:23 -05:00
Julia
3d9742d272
Absolute pain of the iterator kind (start laying out a user's followers)
2023-02-22 11:21:23 -05:00
Julia and Antonio Scandurra
a3d474af23
Begin tracking follow states on collab server
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2023-02-22 11:21:23 -05:00
Julia and Petros Amoiridis
fe1c6df418
Tell project when it has been unshared
...
Co-Authored-By: Petros Amoiridis <petros@zed.dev >
2023-02-22 11:21:23 -05:00
Julia
e13d10cdb5
Move share button and support unsharing
2023-02-22 11:21:23 -05:00
Antonio Scandurra
c656fa9e61
Avoid creating more than one room when inviting multiple people at once
...
Previously, when initiating a call by calling multiple people, only
the first person would get the call while all the others would briefly
show a "pending" status but never get the call.
This would happen because `ActiveCall` was trying to a create a different
room for each person called, because the original room creation hadn't finished
and so a `ModelHandle<Room>` wasn't being store in the active call.
With this commit, only one room can be created at any given time and further
invites have to wait until that room creation is done.
2023-02-14 12:03:30 +01:00
Kay Simmons
b9419d9523
Move sharing status indicator out of the call crate and into collab_ui in order so that the model doesn't depend on the view
2023-02-03 11:17:50 -08:00
Kay Simmons
632074c2c8
Add setting to disable the call icon
2023-02-01 16:21:53 -08:00
Kay Simmons
431a74bb3a
Add call status indicator to the status bar
2023-01-31 15:00:49 -08: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
Antonio Scandurra
2aedbfec7a
Couple worktree sharing with project metadata updates
2023-01-06 10:31:36 -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
Max Brunsfeld
fb1f3b5c4d
Clean up projects when leaving a room
2022-12-20 16:44:57 -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
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
Max Brunsfeld
36d40f44ac
WIP - Retain hosts' project state when they disconnect
2022-12-19 11:38:08 -08: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
f7070792a9
Introduce an epoch to ConnectionId and PeerId
2022-12-14 15:55:56 +01:00
Antonio Scandurra
58a552dd2f
Add more logging to Room
2022-12-14 11:43:12 +01:00
Antonio Scandurra
7f9c82f759
Allow server to see client disconnection before giving up on reconnecting
2022-12-13 12:17:21 +01:00
Antonio Scandurra
eb27691bc1
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
d96ef3d256
Delete stale rooms/participants after RECONNECT_TIMEOUT
2022-12-13 11:32:37 +01:00
Antonio Scandurra
21aacbb216
Allow re-joining room after server restarts
2022-12-12 16:03:21 +01:00
Antonio Scandurra
bfec91b3ba
Introduce random reconnections in the randomized test
2022-12-12 11:43:08 +01:00
Antonio Scandurra
7b91966883
Re-join room when client temporarily loses connection
2022-12-12 11:43:08 +01:00
Antonio Scandurra
7b26fceb7b
Remove version from Room
...
We won't need it once we add the per-room lock.
2022-11-18 20:18:48 +01:00
Antonio Scandurra and Nathan Sobo
bf3e4936b5
Always use strings to represent paths over the wire
...
Previously, the protocol used a mix of strings and bytes without any consistency.
When we go to multiple platforms, we won't be able to mix encodings of paths anyway.
We don't know this is the right approach, but it at least makes things consistent
and easy to read in the database, on the wire, etc. Really, we should be using entry
ids etc to refer to entries on the wire anyway, but there's a chance this is the
wrong decision.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-11-15 16:46:17 +01:00
Antonio Scandurra
75dcc65ac9
Skip applying room updates if they're older than the local room state
2022-11-14 15:35:39 +01:00
Antonio Scandurra
05b8ba4fd0
Wait for acknowledgment before sending the next project update
2022-11-14 15:32:49 +01:00
Antonio Scandurra
1f0709bbef
Leave room when connection is dropped
2022-11-14 10:13:36 +01:00
Antonio Scandurra
6406495a37
Remove calls table and use just room_participants
2022-11-11 15:22:04 +01:00
Antonio Scandurra
01127d8733
Start moving Store state into the database
2022-11-11 12:06:43 +01:00
Antonio Scandurra
e12739a29c
Show a Calling indicator right away when initiating a call
2022-10-25 11:05:57 +02:00
Antonio Scandurra
a63f6b99d8
Set location on ActiveCall even before there's a room
...
We will automatically call `Room::set_location` once a room has been
assigned.
2022-10-24 15:07:25 +02:00
Antonio Scandurra
493bc28cc6
Simplify room events
2022-10-24 10:53:44 +02:00
Antonio Scandurra
8325be5b10
Show shared screen as a pane item
2022-10-24 10:04:08 +02:00
Antonio Scandurra
03b5a26fd6
Leave Zed room when LiveKit room disconnects
2022-10-21 14:21:45 +02:00