Fix remote extension syncing (#42918)

Closes #40906
Closes #39729

SFTP uploads weren't quoting the install directory which was causing
extension syncing to fail. We were also only running `install_extension`
once per remote-connection instead of once per project (thx @feeiyu for
pointing this out) so extension weren't being loaded in subsequently
opened remote projects.

Release Notes:

- N/A

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
This commit is contained in:
Julia Ryan
2025-11-17 16:13:58 -06:00
committed by GitHub
co-authored by Conrad Irwin
parent 98a83b47e6
commit 98da1ea169
3 changed files with 35 additions and 26 deletions
+1 -1
View File
@@ -304,7 +304,7 @@ impl RemoteConnection for SshRemoteConnection {
let mut child = sftp_command.spawn()?;
if let Some(mut stdin) = child.stdin.take() {
use futures::AsyncWriteExt;
let sftp_batch = format!("put -r {src_path_display} {dest_path_str}\n");
let sftp_batch = format!("put -r \"{src_path_display}\" \"{dest_path_str}\"\n");
stdin.write_all(sftp_batch.as_bytes()).await?;
stdin.flush().await?;
}