Julia
05e9615507
Highlight face pile which local user is following
2023-02-22 11:22:37 -05:00
Julia
4513c40993
Following face piles finally take their first breath
2023-02-22 11:21:23 -05:00
Julia
33c265d3cf
Abuse a closure instead of abusing options/iterators quite so much
2023-02-22 11:21:23 -05:00
Julia
58c41778e7
Absolute pain of the iterator kind (start laying out a user's followers)
2023-02-22 11:21:23 -05:00
Julia
d6462c611c
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
f68eda97fb
Tell project when it has been unshared
...
Co-Authored-By: Petros Amoiridis <petros@zed.dev>
2023-02-22 11:21:23 -05:00
Julia
e96d52f35a
Move share button and support unsharing
2023-02-22 11:21:23 -05:00
Antonio Scandurra
7be868e372
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
303216291b
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
a50f0181fb
Add setting to disable the call icon
2023-02-01 16:21:53 -08:00
Kay Simmons
460dc62888
start adding setting for the screen sharing status indicator
2023-01-31 15:17:16 -08:00
Kay Simmons
e35db69dbd
Add call status indicator to the status bar
2023-01-31 15:00:49 -08:00
Mikayla Maki
d060114f00
Added complete scripts for generating third party license files
2023-01-23 12:47:12 -08:00
Antonio Scandurra
8487ae77e7
Share new worktrees when resharing project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-01-06 12:58:19 -07:00
Antonio Scandurra
8c5a0ca3a4
Couple worktree sharing with project metadata updates
2023-01-06 10:31:36 -07:00
Nathan Sobo
1dd085fc92
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
bb00134f5f
Clean up projects when leaving a room
2022-12-20 16:44:57 -08:00
Max Brunsfeld
55ebfe8321
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
52babc51a0
Make host reconnection test pass when mutating worktree while offline
2022-12-20 17:30:58 +01:00
Antonio Scandurra
1a3940a12e
Fix project reconnection test to ensure rooms actually reconnects
2022-12-20 14:51:46 +01:00
Max Brunsfeld
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
af85db9ea5
WIP - Retain hosts' project state when they disconnect
2022-12-19 11:38:08 -08:00
Antonio Scandurra
aa44de3d16
Fix test ensuring room is left when disconnected from LiveKit
2022-12-16 10:52:32 +01:00
Max Brunsfeld
ad37034960
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
05e99eb67e
Introduce an epoch to ConnectionId
and PeerId
2022-12-14 15:55:56 +01:00
Antonio Scandurra
553585b9a1
Add more logging to Room
2022-12-14 11:43:12 +01:00
Antonio Scandurra
f1884d608b
Allow server to see client disconnection before giving up on reconnecting
2022-12-13 12:17:21 +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
6a6a032f1f
Delete stale rooms/participants after RECONNECT_TIMEOUT
2022-12-13 11:32:37 +01:00
Antonio Scandurra
beea9b68ff
Allow re-joining room after server restarts
2022-12-12 16:03:21 +01:00
Antonio Scandurra
895c365485
Introduce random reconnections in the randomized test
2022-12-12 11:43:08 +01:00
Antonio Scandurra
aca3f02590
Re-join room when client temporarily loses connection
2022-12-12 11:43:08 +01:00
Antonio Scandurra
4c1b4953c1
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
4b1dcf2d55
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
d7369ace6a
Skip applying room updates if they're older than the local room state
2022-11-14 15:35:39 +01:00
Antonio Scandurra
40073f6100
Wait for acknowledgment before sending the next project update
2022-11-14 15:32:49 +01:00
Antonio Scandurra
9902211af1
Leave room when connection is dropped
2022-11-14 10:13:36 +01:00
Antonio Scandurra
c213c98ea4
Remove calls
table and use just room_participants
2022-11-11 15:22:04 +01:00
Antonio Scandurra
6871bbbc71
Start moving Store
state into the database
2022-11-11 12:06:43 +01:00
Antonio Scandurra
2a3773240d
Show a Calling
indicator right away when initiating a call
2022-10-25 11:05:57 +02:00
Antonio Scandurra
9860dbbbea
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
a8bd234aa4
Simplify room events
2022-10-24 10:53:44 +02:00
Antonio Scandurra
476020ae84
Show shared screen as a pane item
2022-10-24 10:04:08 +02:00
Antonio Scandurra
1bbb7dd126
Leave Zed room when LiveKit room disconnects
2022-10-21 14:21:45 +02:00
Antonio Scandurra
ae44a38285
Remove unused LKDisplays
API
2022-10-21 10:12:24 +02:00
Antonio Scandurra
db8b8ef66b
WIP
2022-10-20 20:17:54 +02:00
Antonio Scandurra
99aa1219d2
Simplify renderer interface for live-kit-client
2022-10-20 09:51:55 +02:00
Nathan Sobo
723fa83909
Use fake LiveKit server to test we can send frames when screen sharing
2022-10-19 19:14:55 -06:00
Antonio Scandurra
fb5c6493cf
WIP: Start on a fake implementation of live-kit
2022-10-19 13:53:40 +02:00
Antonio Scandurra
3160d07b9c
Model pending screen share in Room
2022-10-19 11:38:24 +02:00
Antonio Scandurra
e49fc9f4b1
Prevent Room
from screen-sharing twice
2022-10-19 10:45:51 +02:00
Antonio Scandurra
773f569385
Add control to toggle screen-sharing
2022-10-19 10:19:20 +02:00
Antonio Scandurra
219793afcc
Merge remote-tracking branch 'origin/main' into screen-sharing
2022-10-19 10:04:56 +02:00
Antonio Scandurra
0c3c1e1f68
WIP
2022-10-18 19:30:45 +02:00
Antonio Scandurra
9cf39b1da6
Disconnect from live-kit Room
on drop
2022-10-18 14:50:03 +02:00
Antonio Scandurra
46635956f4
Emit Frame
event when new frames are generated for a remote track
2022-10-18 12:18:49 +02:00
Antonio Scandurra
8c6de99159
Use participant identity and track sid everywhere
2022-10-18 12:05:59 +02:00
Nathan Sobo
59fab0bb2d
WIP
2022-10-17 23:47:55 -06:00
Nathan Sobo
c73e2c2d0f
Get test_app running without crashing
2022-10-17 23:38:43 -06:00
Nathan Sobo
8c1c98a0bf
WIP
2022-10-17 23:25:04 -06:00
Mikayla Maki
5bb2edca8b
Added absolute path info to remote worktrees (updated protocol version)
2022-10-17 15:27:46 -07:00
Antonio Scandurra
499b8f5f55
WIP
2022-10-17 18:00:54 +02:00
Antonio Scandurra
81d83841ab
WIP: Start integrating screen-sharing
2022-10-17 14:50:05 +02:00
Antonio Scandurra
c9225bb87c
WIP: Start integrating with LiveKit when creating/joining rooms
2022-10-17 12:20:55 +02:00
Antonio Scandurra
b8bc5a282e
Allow inviting users to a project that was shared by someone else
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-10-13 18:48:14 +02:00
Max Brunsfeld
1f0a9ce418
Proceed with share while project state uploads
...
Co-authored-by: Antonio Scandurra <as-cii@zed.dev>
2022-10-11 10:17:20 -07:00
Antonio Scandurra
4504b36c8f
Show a different message when participant is active on unshared project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-10-11 15:24:31 +02:00
Antonio Scandurra
feb17c29ec
Show participant projects in contacts popover
2022-10-11 12:23:15 +02:00
Antonio Scandurra
0a306808da
Dismiss project shared notifications when a project was unshared
2022-10-11 11:44:31 +02:00
Antonio Scandurra
bf488f2027
Show project root names when displaying incoming call notification
2022-10-11 10:59:36 +02:00
Nathan Sobo
b8c2acf0f2
Show worktree root names when sharing additional projects on a call
...
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2022-10-10 17:56:03 -06:00
Antonio Scandurra
79748803a9
Add leave button on active call header
2022-10-10 10:30:51 +02:00
Antonio Scandurra
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
560d8a8004
Don't leave the room if there's a pending room update
2022-10-07 14:52:39 +02:00
Antonio Scandurra
251e06c50f
💄
2022-10-07 14:51:04 +02:00
Antonio Scandurra
6fb5901d69
Ensure sharing the same project twice is idempotent
2022-10-07 14:47:06 +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
e82320cde8
Never set a room on active call if it is offline
2022-10-07 12:00:23 +02:00
Antonio Scandurra
669406d5af
Leave room when client is the only participant
2022-10-07 11:58:49 +02:00
Antonio Scandurra
b479c8c8ba
Move project sharing into Room
2022-10-07 10:14:17 +02:00
Antonio Scandurra
3d467a9491
Unset room on active call when disconnecting
2022-10-07 09:23:25 +02:00
Antonio Scandurra
95e08edbb8
Always include room id in protos
...
This is redundant, but it futures-proof the ability to talk about
multiple rooms at any given time and feels safer in terms of race
conditions.
2022-10-06 15:20:49 +02:00
Antonio Scandurra
4cb306fbf3
Implement call cancellation
2022-10-06 15:12:27 +02:00
Antonio Scandurra
7763acbdd5
Move IncomingCall
into call
crate
2022-10-06 09:52:03 +02:00
Antonio Scandurra
55cc142319
Move incoming calls into ActiveCall
2022-10-06 09:50:26 +02:00
Antonio Scandurra
78e3370c1e
Set room only after project has been shared to avoid flicker
2022-10-05 11:19:44 +02:00
Antonio Scandurra
087760dba0
Use AppContext instead of MutableAppContext for ActiveCall::global
2022-10-05 10:51:51 +02:00
Antonio Scandurra
fceba6814f
Automatically share project when creating the room
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-10-04 19:25:48 +02:00
Antonio Scandurra
ebee2168fc
Re-emit notifications and events from ActiveCall
...
This lets us only observe and subscribe to the active call without
needing to track the underlying `Room` if it changes, which implies
writing the same boilerplate over and over.
2022-10-04 18:15:56 +02:00
Antonio Scandurra
de917c4678
Use a different style for inactive participants
2022-10-04 15:06:20 +02:00
Antonio Scandurra
456dde200c
Implement Room::set_location
2022-10-04 11:46:01 +02:00
Antonio Scandurra
1e45198b9f
Emit event on Room
when a user shares a new project
2022-10-03 17:12:07 +02:00
Antonio Scandurra
ad323d6e3b
Automatically fetch remote participant users in Room
2022-10-03 16:09:49 +02:00
Antonio Scandurra
6426037653
Adapt integration tests to always pass a room id to Project::share
...
Randomized test is failing, so we'll look into that next.
2022-10-03 15:44:11 +02:00
Antonio Scandurra
964a5d2db7
WIP: require sharing projects on a given Room
2022-09-30 18:21:47 +02:00
Antonio Scandurra
1898e813f5
Encapsulate Room
interaction within ActiveCall
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-29 17:39:53 +02:00
Antonio Scandurra
e0db62173a
Rename room
crate to call
...
Also, rename `client::Call` to `client::IncomingCall`.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-29 17:24:31 +02:00