authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-09-30 03:27:17-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-09-30 03:27:23-07:00
log9ffccbbee0705d77fefa54a2cc1670a25a3dab7a
tree033bc77b8e2a3de23722fa344b52d893efd7226c
parent354f001dec3d731a4d1a6fac0a25d9e28550d781
signature Signed by SSH key SHA256:52mNGHRsVFBDED9IAX5pe+LRWUefqTbxEReunq21QvU

fix(update): accept an archive of exactly its published size

ureq refuses a body that reaches its read limit, so every update download failed as unreachable. Assisted-by: claude-opus-5.5

1 files changed, 8 insertions(+), 1 deletions(-)

crates/snowbound/src/update.rs+8-1
...@@ -348,7 +348,14 @@ fn download(path: &str, limit: u64) -> Result<Vec<u8>, String> {...@@ -348,7 +348,14 @@ fn download(path: &str, limit: u64) -> Result<Vec<u8>, String> {
348 agent348 agent
349 .get(&format!("{BASE}{path}"))349 .get(&format!("{BASE}{path}"))
350 .call()350 .call()
351 .and_then(|mut response| response.body_mut().with_config().limit(limit).read_to_vec())351 .and_then(|mut response| {
352 // ureq refuses a body that reaches its limit, so an exact size needs one byte more.
353 response
354 .body_mut()
355 .with_config()
356 .limit(limit + 1)
357 .read_to_vec()
358 })
352 .map_err(|error| error.to_string())359 .map_err(|error| error.to_string())
353}360}
354361