diff --git a/zed-rpc/proto/zed.proto b/zed-rpc/proto/zed.proto index 879c9766cce8ba4a22a2d2e99a5b00b22738d064..d07f639044c2b45d38ad1daf9cb830e2fd792910 100644 --- a/zed-rpc/proto/zed.proto +++ b/zed-rpc/proto/zed.proto @@ -43,7 +43,7 @@ message OpenWorktree { message OpenWorktreeResponse { Worktree worktree = 1; - uint32 replica_id = 2; + optional uint32 replica_id = 2; } message AddGuest { diff --git a/zed/src/workspace.rs b/zed/src/workspace.rs index 04819a09e62644671b0f460f3d1dd917fd74c14b..6ae6f43229840c4536d84bd616d0f91819faf1ca 100644 --- a/zed/src/workspace.rs +++ b/zed/src/workspace.rs @@ -766,12 +766,21 @@ impl Workspace { let worktree = open_worktree_response .worktree .ok_or_else(|| anyhow!("empty worktree"))?; - let replica_id = open_worktree_response.replica_id as ReplicaId; + let replica_id = open_worktree_response + .replica_id + .ok_or_else(|| anyhow!("empty replica id"))?; let worktree_id = worktree_id.try_into().unwrap(); this.update(&mut cx, |workspace, cx| { let worktree = cx.add_model(|cx| { - Worktree::remote(worktree_id, worktree, rpc, connection_id, replica_id, cx) + Worktree::remote( + worktree_id, + worktree, + rpc, + connection_id, + replica_id as ReplicaId, + cx, + ) }); cx.observe_model(&worktree, |_, _, cx| cx.notify()); workspace.worktrees.insert(worktree);