Task
dig-chainsource-interface 0.3.1 — the latest published version — ships INTERNALLY SPLIT across two
chia lines, and it is the single root blocking every consumer's chia-0.36 convergence.
Verified directly against the crates.io index:
chia-bls ^0.36.1 chia-sdk-driver ^0.34
chia-protocol ^0.36.1 chia-sdk-test ^0.34
chia-puzzle-types ^0.36.1 chia-sdk-types ^0.34
chia-traits ^0.36.1
chia-puzzles ^0.20
Publish 0.3.2 with the chia-sdk-* trio on 0.36, matching the rest.
Why this is the blocker rather than one crate's untidiness
dig-app's own declarations are already on 0.36 — §2.4b swept them — and its lock still carries a
0.34 line. cargo tree -i traces all four splits to this one root. The consumer cannot fix it: the
versions are semver-incompatible, so no cargo update collapses them, and the only in-repo remedies are a
[patch] or a two-version shim — both forbidden by §4.1 as the byte-drift class.
So a lane did the right thing and stopped, reporting the shape (dig-app PR#282). Every other consumer
will hit exactly this wall until 0.3.2 exists.
The pattern this is the fourth instance of
A crate shipping split across two chia lines has now happened four times in this ecosystem —
dig-gossip 0.29.0, dig-nat 0.19.0, digstore-crypto, and this. Every one compiled cleanly, because
its consumers were also stale, and each was found only when a consumer tried to converge.
The check that catches it is not an enumerated list of crate names — both earlier splits passed gates
whose invariant was written as a list that omitted chia-bls. Ask whether any chia type reaches a
PUBLIC signature, and from how many lines.
And cargo tree -d is not the gate: chia-bls alone resolves to six lines on an unmodified tree,
mostly rooted upstream in clvmr/chialisp and reaching no public DIG signature. Trace each duplicate to
its root.
Scope
- Move
chia-sdk-driver, chia-sdk-test, chia-sdk-types to ^0.36; publish 0.3.2.
- Verify from the RESOLVED LOCK, not the carets —
.claude/scripts/lock-family-scan.sh <lock>, run
unpiped. Note it was itself blind to a first-party edge on an allowlisted family until 45bfed4, so
use a current checkout of it.
- Adapting a call site to a moved type is correct; bridging two versions with a shim is never correct.
If the delta does not line up, report the shape and stop rather than adapting around it.
- Where any
chia type reaches a public signature, say so explicitly in the PR — that is the surface a
consumer inherits.
Then unblock the consumers
dig-app#274 resumes the moment 0.3.2 publishes. Check for other consumers on 0.3.1 and say which they
are; do not open their adoption PRs from this ticket — file or hand off, so this one stays closable.
Context
Done condition
dig-chainsource-interface 0.3.2 is live on crates.io with one chia line per family, confirmed on the
index with the required User-Agent header.
Effort
Low — a manifest change and a publish, unless a moved type reaches a public signature.
Task
dig-chainsource-interface 0.3.1— the latest published version — ships INTERNALLY SPLIT across twochia lines, and it is the single root blocking every consumer's chia-0.36 convergence.
Verified directly against the crates.io index:
Publish 0.3.2 with the
chia-sdk-*trio on 0.36, matching the rest.Why this is the blocker rather than one crate's untidiness
dig-app's own declarations are already on 0.36 — §2.4b swept them — and its lock still carries a0.34 line.
cargo tree -itraces all four splits to this one root. The consumer cannot fix it: theversions are semver-incompatible, so no
cargo updatecollapses them, and the only in-repo remedies are a[patch]or a two-version shim — both forbidden by §4.1 as the byte-drift class.So a lane did the right thing and stopped, reporting the shape (dig-app PR#282). Every other consumer
will hit exactly this wall until 0.3.2 exists.
The pattern this is the fourth instance of
A crate shipping split across two chia lines has now happened four times in this ecosystem —
dig-gossip 0.29.0,dig-nat 0.19.0,digstore-crypto, and this. Every one compiled cleanly, becauseits consumers were also stale, and each was found only when a consumer tried to converge.
The check that catches it is not an enumerated list of crate names — both earlier splits passed gates
whose invariant was written as a list that omitted
chia-bls. Ask whether anychiatype reaches aPUBLIC signature, and from how many lines.
And
cargo tree -dis not the gate:chia-blsalone resolves to six lines on an unmodified tree,mostly rooted upstream in
clvmr/chialispand reaching no public DIG signature. Trace each duplicate toits root.
Scope
chia-sdk-driver,chia-sdk-test,chia-sdk-typesto^0.36; publish 0.3.2..claude/scripts/lock-family-scan.sh <lock>, rununpiped. Note it was itself blind to a first-party edge on an allowlisted family until
45bfed4, souse a current checkout of it.
If the delta does not line up, report the shape and stop rather than adapting around it.
chiatype reaches a public signature, say so explicitly in the PR — that is the surface aconsumer inherits.
Then unblock the consumers
dig-app#274 resumes the moment 0.3.2 publishes. Check for other consumers on 0.3.1 and say which theyare; do not open their adoption PRs from this ticket — file or hand off, so this one stays closable.
Context
https://github.com/DIG-Network/dig_ecosystem/issues/3161
dig-ipc-protocol,dig-capsule, and the five-cratedig-natcascade areall on 0.36.1 with golden BLS vectors reproduced unmodified
Done condition
dig-chainsource-interface0.3.2 is live on crates.io with one chia line per family, confirmed on theindex with the required
User-Agentheader.Effort
Low — a manifest change and a publish, unless a moved type reaches a public signature.