Deferred from: #417 (step 6 of #412)
Task
crates/dig-node-service declares roughly 30 dig-* and chia-* crates. PR#417 audited and
bumped only the mirror family — the crates it was already touching — and deferred the rest.
That deferral is correct for that PR's radius (§2.4b limits an audit to the crate you are already
touching, and says to split with a named child rather than let the bumps dwarf the change). This
is that child.
What to do
Bring every dig-* and chia-* declaration in dig-node-service to its latest published version,
and take the cascade where one is owed.
Three checks that are easy to get wrong
-
Query the index, never memory or a manifest comment.
curl -sH 'User-Agent: dig-loop' https://index.crates.io/<a>/<b>/<crate> — the User-Agent header
is required or crates.io answers something that reads exactly like "not published".
-
chia-* crates move as a SET, never individually. Bumping one while its siblings lag ships the
crate internally split across two chia lines. That shipped twice on 2026-08-22. Note the
ceiling here: chia-sdk-driver and chia-sdk-types top out at 0.36.0, so the other chia
crates having a 0.48.0 is not a reason to move them. dig-node is on the 0.36 line and should
stay coherent on it.
-
A git-sourced dependency is invisible to the index check. dig-gossip is pinned by git rev
and is not on crates.io at all (404) — a documented, permanent carve-out tracked as
https://github.com/DIG-Network/dig_ecosystem/issues/2647. For that one, compare the pinned rev
against DIG-Network/dig-gossip's main; the registry check reports it as fine forever, however
far it has drifted. "No drift" and "no measurement" look identical here.
What a bump that breaks the build means
Information, not an obstacle. Adapting a call site to a new type is correct work. Bridging two
versions with a shim is never correct — that is the byte-drift class §4.1 exists to prevent. If the
delta does not line up, report the shape and stop.
Also verify from the resolved lock, not the caret: a caret-compatible transitive can silently keep
an old line alive through a re-resolve that cheerfully reports success.
Acceptance
Every dig-*/chia-* declaration in dig-node-service at its latest published version, chia-*
coherent on a single line verified from the lock, and any cascade either taken or reported with the
blocking dependency named. The dig-gossip carve-out stated explicitly rather than silently skipped.
Deferred from: #417 (step 6 of #412)
Task
crates/dig-node-servicedeclares roughly 30dig-*andchia-*crates. PR#417 audited andbumped only the mirror family — the crates it was already touching — and deferred the rest.
That deferral is correct for that PR's radius (§2.4b limits an audit to the crate you are already
touching, and says to split with a named child rather than let the bumps dwarf the change). This
is that child.
What to do
Bring every
dig-*andchia-*declaration indig-node-serviceto its latest published version,and take the cascade where one is owed.
Three checks that are easy to get wrong
Query the index, never memory or a manifest comment.
curl -sH 'User-Agent: dig-loop' https://index.crates.io/<a>/<b>/<crate>— theUser-Agentheaderis required or crates.io answers something that reads exactly like "not published".
chia-*crates move as a SET, never individually. Bumping one while its siblings lag ships thecrate internally split across two chia lines. That shipped twice on 2026-08-22. Note the
ceiling here:
chia-sdk-driverandchia-sdk-typestop out at 0.36.0, so the other chiacrates having a 0.48.0 is not a reason to move them. dig-node is on the 0.36 line and should
stay coherent on it.
A git-sourced dependency is invisible to the index check.
dig-gossipis pinned by git revand is not on crates.io at all (404) — a documented, permanent carve-out tracked as
https://github.com/DIG-Network/dig_ecosystem/issues/2647. For that one, compare the pinned rev
against
DIG-Network/dig-gossip'smain; the registry check reports it as fine forever, howeverfar it has drifted. "No drift" and "no measurement" look identical here.
What a bump that breaks the build means
Information, not an obstacle. Adapting a call site to a new type is correct work. Bridging two
versions with a shim is never correct — that is the byte-drift class §4.1 exists to prevent. If the
delta does not line up, report the shape and stop.
Also verify from the resolved lock, not the caret: a caret-compatible transitive can silently keep
an old line alive through a re-resolve that cheerfully reports success.
Acceptance
Every
dig-*/chia-*declaration indig-node-serviceat its latest published version,chia-*coherent on a single line verified from the lock, and any cascade either taken or reported with the
blocking dependency named. The
dig-gossipcarve-out stated explicitly rather than silently skipped.