From 5ad8684c8ed25d676380257335de535e8449eb0a Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 31 Mar 2026 06:41:53 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20hydrate=20download=20uses=201-indexed=20?= =?UTF-8?q?release=20assets=20=E2=86=92=200-indexed=20local=20paths?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GitHub release assets: shard-01.bgz7 through shard-04.bgz7 (1-indexed) Local storage + manifest SHA256: shard-00.bgz7 through shard-03.bgz7 (0-indexed) Verified: qwen35-9b-base + qwen35-9b-distilled, all 8 shards SHA256 OK. https://claude.ai/code/session_01Y69Vnw751w75iVSBRws7o7 --- crates/bgz-tensor/src/hydrate.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/crates/bgz-tensor/src/hydrate.rs b/crates/bgz-tensor/src/hydrate.rs index 9d72bb0e..37158731 100644 --- a/crates/bgz-tensor/src/hydrate.rs +++ b/crates/bgz-tensor/src/hydrate.rs @@ -115,17 +115,18 @@ fn cmd_download(manifest: &manifest::Manifest, model: &str) { let tag = &entry.release_tag; for shard in 0..entry.shards { - let filename = format!("shard-{shard:02}.bgz7"); - let dest = dir.join(&filename); + let local_filename = format!("shard-{shard:02}.bgz7"); // 0-indexed local + let release_shard = shard + 1; // 1-indexed in GitHub releases + let dest = dir.join(&local_filename); if dest.exists() && fs::metadata(&dest).map(|m| m.len() > 0).unwrap_or(false) { - println!(" {filename}: already present, skipping"); + println!(" {local_filename}: already present, skipping"); continue; } - let asset_name = format!("{model}--{filename}"); + let asset_name = format!("{model}--shard-{release_shard:02}.bgz7"); let url = format!("https://github.com/{repo}/releases/download/{tag}/{asset_name}"); - println!(" Downloading {filename} from release {tag}..."); + println!(" Downloading {local_filename} (from {asset_name})..."); let status = process::Command::new("curl") .args(["-fSL", "--retry", "4", "--retry-delay", "2", @@ -134,7 +135,7 @@ fn cmd_download(manifest: &manifest::Manifest, model: &str) { .expect("curl not found"); if !status.success() { - eprintln!(" FAILED to download {filename}"); + eprintln!(" FAILED to download {local_filename}"); // Clean up partial file let _ = fs::remove_file(&dest); process::exit(1);