From 8a3ce34209df6e351f437bff4439db28708d9afc Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Thu, 19 Mar 2026 15:58:50 -0400 Subject: [PATCH] Fix upgrade command failing with "No such file or directory" The release tarball nests the binary in a subdirectory (fabro-{triple}/fabro), but the upgrade code expected it at the tarball root. Use the correct nested path matching the tarball structure. Co-Authored-By: Claude Opus 4.6 (1M context) --- lib/crates/fabro-cli/src/upgrade.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/crates/fabro-cli/src/upgrade.rs b/lib/crates/fabro-cli/src/upgrade.rs index f3c9e98bb..38abfeb7f 100644 --- a/lib/crates/fabro-cli/src/upgrade.rs +++ b/lib/crates/fabro-cli/src/upgrade.rs @@ -330,7 +330,7 @@ pub async fn run_upgrade(args: UpgradeArgs) -> Result<()> { } // Atomic binary replacement - let extracted_binary = tmp_dir.path().join("fabro"); + let extracted_binary = tmp_dir.path().join(format!("fabro-{triple}")).join("fabro"); let backup = exe_dir.join(".fabro-upgrade-backup"); fs::rename(¤t_exe, &backup).context("failed to move current binary to backup")?; if let Err(e) = fs::rename(&extracted_binary, ¤t_exe) {