Skip to content

adopt dig-node-control-interface 0.32.x and serve control.wallet.resetCoinDb #559

Description

@MichaelTaylor3d

Task

Bring this workspace's dig-node-control-interface declaration from "0.31" to the current 0.32.1, and serve whatever the new line declares.

Split out of #557 under §2.4b's own scope limit — "if the bumps genuinely dwarf the original change, say so and split, but file the split as a named child, never as later." It is filed rather than folded in because it is not a version-number change: 0.31 -> 0.32 crosses a 0.x minor, which is semver-INCOMPATIBLE, and the delta declares a new control method.

Context

Measured on origin/main (c0e3597):

  • crates/dig-wallet/Cargo.toml:81dig-node-control-interface = "0.31"
  • crates/dig-node-service/Cargo.toml:95dig-node-control-interface = "0.31"
  • Cargo.lock resolves one line, 0.31.0. Latest published: 0.32.1.

Two declarations, one resolved line, so the bump must move both in the same PR or the lock splits.

What the delta actually is

v0.31.0..v0.32.1 upstream:

A declared control method that nothing serves is the failure mode to avoid here. This ecosystem has shipped that before — four methods declared and served by nobody. So the deliverable is not the caret edit: it is the bump plus dig-node actually serving control.wallet.resetCoinDb, or an explicit statement of why it does not and what a caller sees when it asks.

Verify, do not assume, whether this is source-breaking. If the interface exposes the method set as an enum that dig-node-service matches exhaustively, a new variant is a compile error and the bump forces the implementation; if it does not, the bump compiles clean and silently leaves the method unserved — which is the worse outcome, because nothing goes red.

Scope

  • Both declarations to 0.32.1, one lock line, verified from Cargo.lock.
  • control.wallet.resetCoinDb served, or its absence stated with the caller-visible behaviour named.
  • §2.4b for the crates touched; the chia family does not move.
  • A test that fails without the change.

Failure direction to state in the PR

resetCoinDb discards a cached coin database. That is a destructive local operation on the surface a wallet reads its money from, so the PR must say what happens to an in-flight read, to a coin reservation, and to a balance shown to the user while the cache is empty — an emptied cache that reads as "no coins" rather than as "not yet known" is a surface lying about money.

Related

Closable

Done when both manifests declare the current line, Cargo.lock resolves it once, control.wallet.resetCoinDb is either served or its non-service is documented, and cargo test --workspace --all-targets --all-features --locked is green.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:maintenancereal work that changes nothing a user can perceive

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions