proto: Fix cloned errors losing all context (#43393) (cherry-pick to preview) (#43395)

Cherry-pick of #43393 to preview

----
Release Notes:

- N/A *or* Added/Fixed/Improved ...

Co-authored-by: Lukas Wirth <lukas@zed.dev>
This commit is contained in:
zed-zippy[bot]
2025-11-24 12:42:49 +00:00
committed by GitHub
parent 425901cf73
commit 325c857409
3 changed files with 6 additions and 4 deletions

View File

@@ -126,7 +126,7 @@ impl ErrorExt for anyhow::Error {
if let Some(rpc_error) = self.downcast_ref::<RpcError>() {
rpc_error.cloned()
} else {
anyhow::anyhow!("{self}")
anyhow::anyhow!("{self:#}")
}
}
}

View File

@@ -1327,7 +1327,7 @@ fn build_command(
let working_dir = RemotePathBuf::new(working_dir, ssh_path_style).to_string();
// shlex will wrap the command in single quotes (''), disabling ~ expansion,
// replace with with something that works
// replace with something that works
const TILDE_PREFIX: &'static str = "~/";
if working_dir.starts_with(TILDE_PREFIX) {
let working_dir = working_dir.trim_start_matches("~").trim_start_matches("/");

View File

@@ -251,11 +251,13 @@ impl WslRemoteConnection {
let mkdir = self.shell_kind.prepend_command_prefix("mkdir");
self.run_wsl_command(&mkdir, &["-p", &parent])
.await
.map_err(|e| anyhow!("Failed to create directory when uploading file: {}", e))?;
.context("Failed to create directory when uploading file")?;
}
let t0 = Instant::now();
let src_stat = fs::metadata(&src_path).await?;
let src_stat = fs::metadata(&src_path)
.await
.with_context(|| format!("source path does not exist: {}", src_path.display()))?;
let size = src_stat.len();
log::info!(
"uploading remote server to WSL {:?} ({}kb)",