Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 12 additions & 12 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ exclude = ["crates/digstore-prover/guest", "crates/dig-client-wasm"]

[workspace.package]
edition = "2021"
version = "0.29.9"
version = "0.30.0"
license = "GPL-2.0-only"

[workspace.dependencies]
Expand All @@ -28,17 +28,17 @@ license = "GPL-2.0-only"
# The version MUST equal `[workspace.package].version`, because every member inherits
# that value. `scripts/check-workspace-dep-versions.sh` enforces it in CI, so a release
# bump can never silently leave a published crate pointing at the previous version.
digstore-core = { path = "crates/digstore-core", version = "0.29.9" }
digstore-chain = { path = "crates/digstore-chain", version = "0.29.9" }
digstore-chunker = { path = "crates/digstore-chunker", version = "0.29.9" }
digstore-crypto = { path = "crates/digstore-crypto", version = "0.29.9" }
digstore-store = { path = "crates/digstore-store", version = "0.29.9" }
digstore-prover = { path = "crates/digstore-prover", version = "0.29.9" }
digstore-host = { path = "crates/digstore-host", version = "0.29.9" }
digstore-stage = { path = "crates/digstore-stage", version = "0.29.9" }
digstore-remote = { path = "crates/digstore-remote", version = "0.29.9" }
digstore-cli = { path = "crates/digstore-cli", version = "0.29.9" }
digstore-subscription = { path = "crates/digstore-subscription", version = "0.29.9" }
digstore-core = { path = "crates/digstore-core", version = "0.30.0" }
digstore-chain = { path = "crates/digstore-chain", version = "0.30.0" }
digstore-chunker = { path = "crates/digstore-chunker", version = "0.30.0" }
digstore-crypto = { path = "crates/digstore-crypto", version = "0.30.0" }
digstore-store = { path = "crates/digstore-store", version = "0.30.0" }
digstore-prover = { path = "crates/digstore-prover", version = "0.30.0" }
digstore-host = { path = "crates/digstore-host", version = "0.30.0" }
digstore-stage = { path = "crates/digstore-stage", version = "0.30.0" }
digstore-remote = { path = "crates/digstore-remote", version = "0.30.0" }
digstore-cli = { path = "crates/digstore-cli", version = "0.30.0" }
digstore-subscription = { path = "crates/digstore-subscription", version = "0.30.0" }

sha2 = "0.10"
proptest = "1"
Expand Down
8 changes: 7 additions & 1 deletion crates/digstore-cli/src/ops/remote_ops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -385,9 +385,15 @@ pub async fn clone_from(
// corrupted module therefore fails closed instead of being installed and
// executed. Publisher authorization of the head is checked separately below.
let pb = ui.progress_bar(0, "Downloading");
// Pin the download to the head `fetch` just resolved (SPEC digstore-remote
// §4.7): the server refuses (before this closure or the progress callback
// ever runs) any generation but `remote_root`, so a head that advances
// between `fetch` and this call surfaces as a clean error instead of
// silently installing a newer generation than the one reported above.
let (etag_root, module) = client
.clone_store(
.clone_store_at(
&store_id,
Some(&remote_root),
|bytes, served_root| {
let id = digstore_compiler::verify_module_root(bytes, &store_id)
.map_err(|e| format!("module identity verification failed: {e:?}"))?;
Expand Down
Loading
Loading