Skip to content

deps(dig-wallet): four semver-incompatible steps outstanding — chia-query 0.6.2→0.16 may force the chia umbrella migration (#308) #357

Description

@MichaelTaylor3d

Task

dig-wallet has four semver-incompatible dep steps outstanding, split out of PR #354 rather than
shimmed:

dep declared latest
chia-query 0.6.2 0.16.0
dig-node-control-interface 0.19 0.21
dig-offers 0.2 0.3
dig-clvm 0.2 0.3

All four are semver-incompatible, so nothing picks them up incidentally and no cargo update resolves
them.

The one that decides the shape

chia-query 0.16.0 almost certainly carries the chia 0.36 line, and dig-wallet is stranded on
chia 0.26 because the chia umbrella crate has no 0.36 release at all — its versions step from
the 0.26 line straight to 0.44+. That is tracked as dig-node#308, and it means every chia::* import
must be rewritten onto facade crates (measured previously at 68 call sites across 20 files, with
chia::bls::SecretKey at 11 sites the exact place a partial rewrite splits the crate internally).

So determine first whether chia-query 0.16 forces the umbrella migration. If it does, this ticket is
blocked on dig-node#308 and should say so rather than half-migrating. If it does not — if 0.16's
chia-* deps can coexist with what dig-wallet declares — the other three may be independently movable.

Do not bridge two chia lines with a conversion shim. That is the §4.1 byte-drift class and it is never
the fix. If the delta does not line up, report the shape and stop — three lanes have done exactly that
this week and each time it was the right call.

Ordering note

dig-offers 0.3 is already published on chia-wallet-sdk ^0.36, along with the whole builder family
(dig-options 0.4, dig-tips 0.3, dig-cat 0.3, dig-merkle 0.9, dig-did 0.8, dig-nft 0.3) — that
cascade completed under eco#3158. So the upstream side is ready; what is unresolved is whether dig-wallet
can receive it.

Evidence

  • Verify from the RESOLVED Cargo.lock, not the caret declarations. One line per chia-* family
    among crates this ecosystem declares.
  • A caret-compatible transitive is invisible to cargo fetch — a sibling patch bump elsewhere rewrote
    190 lock lines and left two dig-nat and two dig-tls lines while printing success. Name every
    crate explicitly with cargo update -p <crate>.
  • cargo tree -d is NOT a usable gate herechia-bls alone resolves to four-plus lines whose roots
    are upstream (clvmr, chialisp, rue-lir), none reaching a public DIG signature. Trace a duplicate to
    its root and report the trace.
  • The real check: does any chia type reach a PUBLIC signature, and from how many lines? Do not check
    an enumerated list of crate names — two crates shipped internally split on 2026-08-22 precisely because
    the invariant was written as a list and chia-bls was not on it.
  • Read passed-counts, never ok; mutations assert their patch applied; parse the test result: line.

Repo hygiene

dig-node has live lanes. Work in your own worktree off origin/main, one cargo process at a time,
never the shared checkout — it is several minors behind and carries unrelated uncommitted modifications.

Release hazard: dig-node's cron cuts a stable tag at midnight UTC unattended, so main reaches
real users without a human. The merge gate is the last line of defence.

Provenance

Split out of DIG-Network/dig-node PR #354 (eco#2790, NC-12 registry), where §2.4b was measured and found
unsatisfiable in dig-wallet without this cascade. Measured and reported rather than shimmed.

Blocked-on candidate: #308

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions