diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index 444393f17c204e08c6eeae4b432a5ba8a51b5874..f4eaed531225854815a8ab217e28ca415fe2966c 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -8457,11 +8457,13 @@ impl Project { OpenBuffer::Weak(_) => {} }, hash_map::Entry::Vacant(e) => { - assert!( - is_remote, - "received buffer update from {:?}", - envelope.original_sender_id - ); + if !is_remote { + debug_panic!( + "received buffer update from {:?}", + envelope.original_sender_id + ); + return Err(anyhow!("received buffer update for non-remote project")); + } e.insert(OpenBuffer::Operations(ops)); } } diff --git a/crates/workspace/src/pane.rs b/crates/workspace/src/pane.rs index c9027f2c9083a1970b5373261f7af4ae3b44dcd5..65fabe02cac491b9fbda4d7b9fe6edc7efae6ceb 100644 --- a/crates/workspace/src/pane.rs +++ b/crates/workspace/src/pane.rs @@ -1887,6 +1887,24 @@ impl Pane { let mut to_pane = cx.view().clone(); let mut split_direction = self.drag_split_direction; let paths = paths.paths().to_vec(); + let is_remote = self + .workspace + .update(cx, |workspace, cx| { + if workspace.project().read(cx).is_remote() { + workspace.show_error( + &anyhow::anyhow!("Cannot drop files on a remote project"), + cx, + ); + true + } else { + false + } + }) + .unwrap_or(true); + if is_remote { + return; + } + self.workspace .update(cx, |workspace, cx| { let fs = Arc::clone(workspace.project().read(cx).fs());